Dolphin, the GameCube and Wii emulator - Forums

Full Version: Why does GPU texture decoding override arb mipmap detection instead of the opposite?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
GPU texture decoding is a secondary feature with little impact to most people.  However, arbitrary mipmap detection can make the difference between correct and incorrect emulation in the games that use it.  Dolphin already enforces arb MM detection on games that need, but if the user has enabled GPU texture decoding globally, they will not see the improvement, unless they disable GPU texture decoding for each game that uses arbitrary mipmaps.  Most users will not even know this is happening unless they are avid readers of the blog.

Shouldn't arbitrary mipmap detection override GPU texture decoding, thus ensuring unwary users get correct emulation on games with arbitrary mimaps?
I don't recall the exact reason. I'd assume that users who need GPU texture decoding lack the performance for CPU texture decoding. Therefore between poor performance and broken visuals, we catered toward the poor performance. Admittedly, arb mipmaps are so few, that it probably wouldn't hurt to do this (?) but that would be my guess as to the reason. If you want more details, you may need to go back and look at old PRs.
(02-11-2024, 05:28 AM)iwubcode Wrote: [ -> ]I don't recall the exact reason.  I'd assume that users who need GPU texture decoding lack the performance for CPU texture decoding.  Therefore between poor performance and broken visuals, we catered toward the poor performance.  Admittedly, arb mipmaps are so few, that it probably wouldn't hurt to do this (?) but that would be my guess as to the reason.  If you want more details, you may need to go back and look at old PRs.

Thank you.  I'll go back and check.  I've only always used GPU texture decoding on a Windows PC, where it hasn't made much difference for me, but I always keep it enabled just in case, and force it off in the ini file for each game that needs arbitrary mipmaps.  Perhaps users on other devices rely on GPU texture decoding for playability.
AFAIK the block is on the UI side, you'd have to check the code to see what actually happens when both are enabled (I recall reading the source at some point but I don't remember the behavior)...
I'm not sure I'd be able make heads or tails of the code, but the observed behavior is that if GPU tex dec is enabled globally or on game ini, it will override Arb Mip Det. To get around it, I simply keep the former enabled globally, and disable it for the games that need the latter. I'm sure this doesn't tell you anything you don't already know :-)).
(02-11-2024, 05:28 AM)iwubcode Wrote: [ -> ]I don't recall the exact reason.  I'd assume that users who need GPU texture decoding lack the performance for CPU texture decoding.  Therefore between poor performance and broken visuals, we catered toward the poor performance.  Admittedly, arb mipmaps are so few, that it probably wouldn't hurt to do this (?) but that would be my guess as to the reason.  If you want more details, you may need to go back and look at old PRs.

it actually helps.. thank you.!