<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dolphin/Source/Core/VideoCommon/TextureCacheBase.cpp, branch release-prep-2603a</title>
<subtitle>GameCube and Wii emulator</subtitle>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/'/>
<entry>
<title>VideoCommon: Defer creating TextureInfo</title>
<updated>2026-01-18T12:04:06+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2026-01-18T11:59:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=fb07406f102eaa2d237c95c35e8853680d902b6a'/>
<id>fb07406f102eaa2d237c95c35e8853680d902b6a</id>
<content type='text'>
TextureCacheBase::LoadImpl has a hot path where the passed-in
TextureInfo never gets used. Instead of passing in a TextureInfo, let's
pass in the stage and create the TextureInfo from the stage if needed.

This unlocks somewhere above an additional 4% performance boost in the
Hoth level of Rogue Squadron 2 on my PC. Performance varies, making it
difficult for me to measure, so treat this as a very approximate number.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
TextureCacheBase::LoadImpl has a hot path where the passed-in
TextureInfo never gets used. Instead of passing in a TextureInfo, let's
pass in the stage and create the TextureInfo from the stage if needed.

This unlocks somewhere above an additional 4% performance boost in the
Hoth level of Rogue Squadron 2 on my PC. Performance varies, making it
difficult for me to measure, so treat this as a very approximate number.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #14289 from Sintendo/typos</title>
<updated>2026-01-18T00:10:50+00:00</updated>
<author>
<name>JMC47</name>
<email>JMC4789@gmail.com</email>
</author>
<published>2026-01-18T00:10:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=035bcffc63ecc803abeb6987f66a5b2f78f5f0bc'/>
<id>035bcffc63ecc803abeb6987f66a5b2f78f5f0bc</id>
<content type='text'>
Fix various typos and spelling mistakes</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix various typos and spelling mistakes</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #14268 from JoshuaVandaele/std-tounderlying</title>
<updated>2026-01-17T22:49:57+00:00</updated>
<author>
<name>iwubcode</name>
<email>iwubcode@users.noreply.github.com</email>
</author>
<published>2026-01-17T22:49:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=b556bd99d72d996364f423b663af5d02a9610c4f'/>
<id>b556bd99d72d996364f423b663af5d02a9610c4f</id>
<content type='text'>
c++23: Replace Common::ToUnderlying with std::to_underlying</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
c++23: Replace Common::ToUnderlying with std::to_underlying</pre>
</div>
</content>
</entry>
<entry>
<title>Fix various typos and spelling mistakes</title>
<updated>2026-01-17T19:11:38+00:00</updated>
<author>
<name>Sintendo</name>
<email>3380580+Sintendo@users.noreply.github.com</email>
</author>
<published>2026-01-17T18:02:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=1e0473e44f5e21558d75b0121bd935bb50825c26'/>
<id>1e0473e44f5e21558d75b0121bd935bb50825c26</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>VideoCommon: Don't create mipmap vector in TextureInfo</title>
<updated>2026-01-17T16:57:07+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2026-01-17T16:43:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=f7b4d2738be26b233510577bd4e972da298dc578'/>
<id>f7b4d2738be26b233510577bd4e972da298dc578</id>
<content type='text'>
The TextureInfo constructor creates a vector of MipLevels. This could be
good for performance if MipLevels are accessed very often for each
TextureInfo, but that's not the case. Dolphin creates thousands of
TextureInfos per second that it never accesses the mipmap levels of
because there's a hit in the texture cache, and in the uncommon case of
a texture cache miss, the mipmap levels only get looped through once.

To make the common case of texture cache hits as fast as possible, let's
not create a vector in the TextureInfo constructor. This commit
implements a custom iterator for MipLevels instead.

In my testing on the Death Star level of Rogue Squadron 2, this speeds
up TextureInfo::FromStage by 200%, giving an overall emulation speedup
of a bit over 1%. Results on the Hoth level are even better, with
TextureInfo::FromStage being close to 300% faster and overall emulation
being over 4% faster. (Single core, no GPU texture decoding.)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The TextureInfo constructor creates a vector of MipLevels. This could be
good for performance if MipLevels are accessed very often for each
TextureInfo, but that's not the case. Dolphin creates thousands of
TextureInfos per second that it never accesses the mipmap levels of
because there's a hit in the texture cache, and in the uncommon case of
a texture cache miss, the mipmap levels only get looped through once.

To make the common case of texture cache hits as fast as possible, let's
not create a vector in the TextureInfo constructor. This commit
implements a custom iterator for MipLevels instead.

In my testing on the Death Star level of Rogue Squadron 2, this speeds
up TextureInfo::FromStage by 200%, giving an overall emulation speedup
of a bit over 1%. Results on the Hoth level are even better, with
TextureInfo::FromStage being close to 300% faster and overall emulation
being over 4% faster. (Single core, no GPU texture decoding.)
</pre>
</div>
</content>
</entry>
<entry>
<title>c++23: Replace Common::ToUnderlying with std::to_underlying</title>
<updated>2026-01-09T22:49:10+00:00</updated>
<author>
<name>Joshua Vandaële</name>
<email>joshua@vandaele.software</email>
</author>
<published>2026-01-09T22:49:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=55f0715ad4edf4485bc7b35e49fbd883ce760e47'/>
<id>55f0715ad4edf4485bc7b35e49fbd883ce760e47</id>
<content type='text'>
Requires at least GCC 11, Clang 13, MSVC 19.30 (VS2022 17.0), or AppleClang 13.1.6 (XCode 13.3).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Requires at least GCC 11, Clang 13, MSVC 19.30 (VS2022 17.0), or AppleClang 13.1.6 (XCode 13.3).
</pre>
</div>
</content>
</entry>
<entry>
<title>VideoCommon: separate the concept of a 'resource' from an 'asset'.  A resource is potentially multiple assets that are chained together but represent one type of data to the rest of the system.  An example is a 'material'.  A 'material' is a collection of textures, a custom shader, and some metadata that all comes together to form what the concept of the material is.  There will be a 'material' resource.  For now, start small by introducing the interface and change our texture loading which used assets from the old resource manager, to an actual resource.</title>
<updated>2025-11-23T17:04:24+00:00</updated>
<author>
<name>iwubcode</name>
<email>iwubcode@users.noreply.github.com</email>
</author>
<published>2025-10-29T06:21:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=2d21a9920577b8c827d056d9a5e03dcf026ae6e1'/>
<id>2d21a9920577b8c827d056d9a5e03dcf026ae6e1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>VideoCommon: rename 'IsAnisostropicEnhancementSafe' to 'IsAnisotropicEnhancementSafe' in TextureCacheBase</title>
<updated>2025-11-23T17:04:24+00:00</updated>
<author>
<name>iwubcode</name>
<email>iwubcode@users.noreply.github.com</email>
</author>
<published>2025-11-08T05:17:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=59d9c1772a0b27ea38fff28ac6c15bba824227be'/>
<id>59d9c1772a0b27ea38fff28ac6c15bba824227be</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>VideoCommon: Fix render to texture in wrong layout</title>
<updated>2025-10-31T01:50:17+00:00</updated>
<author>
<name>TellowKrinkle</name>
<email>tellowkrinkle@gmail.com</email>
</author>
<published>2025-10-31T01:44:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=21ac489d575662091be107fab0d807392b1e9fdf'/>
<id>21ac489d575662091be107fab0d807392b1e9fdf</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #13780 from jordan-woyak/fix-text-filter-nearest</title>
<updated>2025-08-01T19:59:04+00:00</updated>
<author>
<name>Admiral H. Curtiss</name>
<email>pikachu025@gmail.com</email>
</author>
<published>2025-08-01T19:59:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=3fb80bec9b947ae9690776bc0a0589ff2b36d1c1'/>
<id>3fb80bec9b947ae9690776bc0a0589ff2b36d1c1</id>
<content type='text'>
VideoCommon: Fix "Force Nearest" texture filter setting.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
VideoCommon: Fix "Force Nearest" texture filter setting.</pre>
</div>
</content>
</entry>
</feed>
