<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dolphin/Source/Core/VideoCommon/PerformanceTracker.cpp, branch 2512</title>
<subtitle>GameCube and Wii emulator</subtitle>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/'/>
<entry>
<title>Core, VideoCommon: Fix crash at shutdown due to destructor ordering</title>
<updated>2025-04-28T04:11:53+00:00</updated>
<author>
<name>Mihai Brodschi</name>
<email>m.brodschi@gmail.com</email>
</author>
<published>2025-04-27T14:33:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=bad78cfed416d89ceb6b0acf6c134d3691b3d624'/>
<id>bad78cfed416d89ceb6b0acf6c134d3691b3d624</id>
<content type='text'>
Previously, PerformanceTracker registered a callback to be updated on
emulation state changes. PerformanceTrackers live in a global variable
(g_perf_metrics) within libvideocommon. The callback was stored in a
global variable in libcore. This created a race condition at shutdown
between these libraries, when the PerfTracker's destructor tried to
unregister the callback.
Notify the PerfTracker directly from libcore, without callbacks, since
Core.cpp already references g_perf_metrics explicitly. Also rename
Core::CallOnStateChangedCallbacks to NotifyStateChanged to better
reflect what it's doing.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, PerformanceTracker registered a callback to be updated on
emulation state changes. PerformanceTrackers live in a global variable
(g_perf_metrics) within libvideocommon. The callback was stored in a
global variable in libcore. This created a race condition at shutdown
between these libraries, when the PerfTracker's destructor tried to
unregister the callback.
Notify the PerfTracker directly from libcore, without callbacks, since
Core.cpp already references g_perf_metrics explicitly. Also rename
Core::CallOnStateChangedCallbacks to NotifyStateChanged to better
reflect what it's doing.
</pre>
</div>
</content>
</entry>
<entry>
<title>PerformanceTracker: Use SPSCQueue and atomic to eliminate need for a mutex. Clean up some math.</title>
<updated>2025-03-15T19:40:00+00:00</updated>
<author>
<name>Jordan Woyak</name>
<email>jordan.woyak@gmail.com</email>
</author>
<published>2025-03-05T09:26:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=46e0952e97bae2cfdecaeed88f7768d028718918'/>
<id>46e0952e97bae2cfdecaeed88f7768d028718918</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>PerformanceTracker: Use std::deque instead of hand-rolled circular</title>
<updated>2025-03-15T19:40:00+00:00</updated>
<author>
<name>Jordan Woyak</name>
<email>jordan.woyak@gmail.com</email>
</author>
<published>2025-03-05T08:06:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=c763961112f858732c1cad58e286d7a076ef7e5f'/>
<id>c763961112f858732c1cad58e286d7a076ef7e5f</id>
<content type='text'>
queue.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
queue.
</pre>
</div>
</content>
</entry>
<entry>
<title>PerformanceTracker: Pass chrono values instead of us s64.</title>
<updated>2025-03-15T19:40:00+00:00</updated>
<author>
<name>Jordan Woyak</name>
<email>jordan.woyak@gmail.com</email>
</author>
<published>2025-03-05T07:36:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=b2ce3fbefc34fac9449e5f88f15c7a4da0825fac'/>
<id>b2ce3fbefc34fac9449e5f88f15c7a4da0825fac</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>PerformanceTracker: Add ownership of m_log_name.</title>
<updated>2023-01-06T19:27:25+00:00</updated>
<author>
<name>Sam Belliveau</name>
<email>sam.belliveau@gmail.com</email>
</author>
<published>2022-12-30T19:56:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=588a72a4fc7eb46f161687d0828afd9703e618ee'/>
<id>588a72a4fc7eb46f161687d0828afd9703e618ee</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>PerformanceTracker: Use shared_mutex instead of mutex so multiple threads can read at the same time.</title>
<updated>2023-01-06T19:27:25+00:00</updated>
<author>
<name>Sam Belliveau</name>
<email>sam.belliveau@gmail.com</email>
</author>
<published>2022-12-30T19:56:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=bc46089ab0ca7963ca3b5507969a3df0f2afca6c'/>
<id>bc46089ab0ca7963ca3b5507969a3df0f2afca6c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>New FrameTime/VBlank Analyzer + Graph</title>
<updated>2022-12-24T00:52:53+00:00</updated>
<author>
<name>Sam Belliveau</name>
<email>sam.belliveau@gmail.com</email>
</author>
<published>2022-12-24T00:52:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=673f81c18a7ec5af6d243d5ac4e90b5778c69385'/>
<id>673f81c18a7ec5af6d243d5ac4e90b5778c69385</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
