<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dolphin/Source/Core/VideoCommon/PerformanceTracker.h, branch master</title>
<subtitle>GameCube and Wii emulator</subtitle>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/'/>
<entry>
<title>Improve usage of std::move and const references parameters</title>
<updated>2026-04-17T10:39:46+00:00</updated>
<author>
<name>Martino Fontana</name>
<email>tinozzo123@gmail.com</email>
</author>
<published>2026-04-06T09:37:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=95dec132030e72b74da6bc46966e4fe5e4e239c0'/>
<id>95dec132030e72b74da6bc46966e4fe5e4e239c0</id>
<content type='text'>
Accomplished using `run-clang-tidy` with `performance-move-const-arg,performance-unnecessary-value-param,modernize-pass-by-value`.

Changed arguments to const references, removed them where inappropriate (e.g. sink parameters). Same with std::move.

Manually reviewed each change to make sure that it makes sense, and do something more appropriate if possible.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Accomplished using `run-clang-tidy` with `performance-move-const-arg,performance-unnecessary-value-param,modernize-pass-by-value`.

Changed arguments to const references, removed them where inappropriate (e.g. sink parameters). Same with std::move.

Manually reviewed each change to make sure that it makes sense, and do something more appropriate if possible.
</pre>
</div>
</content>
</entry>
<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>Common: SPSCQueue cleanups and improvements.</title>
<updated>2025-04-23T04:49:32+00:00</updated>
<author>
<name>Jordan Woyak</name>
<email>jordan.woyak@gmail.com</email>
</author>
<published>2025-03-12T08:21:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=af960651e81edf9fd57aba8e19857a5aa48ca184'/>
<id>af960651e81edf9fd57aba8e19857a5aa48ca184</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 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>Remove Redundant Access Specifiers</title>
<updated>2022-12-24T01:13:01+00:00</updated>
<author>
<name>Sam Belliveau</name>
<email>sam.belliveau@gmail.com</email>
</author>
<published>2022-12-24T01:13:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=e1d078ada6c92c5619bbf11f654df855e0ca04ff'/>
<id>e1d078ada6c92c5619bbf11f654df855e0ca04ff</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>
