Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use the same settings for the software renderer as other backends #11100

Merged
merged 4 commits into from Sep 29, 2022

Conversation

Pokechu22
Copy link
Contributor

This fixes https://bugs.dolphin-emu.org/issues/13051. For now, I haven't done anything special to disable options that don't work on the software renderer (though some still automatically disable themselves), as I think a decently large number technically do something even if it's not particularly useful. (I think the software renderer does use the normal texture cache, but only for texture dumping purposes, for instance.)

I also removed the existing options for the software renderer, as they were mostly not useful/redundant. This also led me to fixing a bug with dumping textures (and in particular mipmaps).

Texture dumping can already be done using VideoCommon's system (and in fact the same setting already enabled *both* of these). Dumping objects/TEV stages/texture fetches doesn't currently have an equivalent, but could be added to the FIFO player instead.
I think this is only used for texture dumping, but this resolves some failed assertions and glitchy results.
Thus, the software renderer uses the same settings as everything else, fixing https://bugs.dolphin-emu.org/issues/13051.
@lioncash lioncash merged commit 0c19a1d into dolphin-emu:master Sep 29, 2022
@LiquifiedPizzas
Copy link

Was it necessary to remove the SW renderer options? Most notably, it seemed to be the best way for me to view what the object the FIFO viewer is working on with a visual reference of objects dumped, and the dump TEV stages option was great for trying to understand what a 'shader' was doing with stage by stage granularity. I even tried using the old strings in GFX.ini to enable them, and dolphin loads them, but now it just does nothing with them. This is just me personally, but I feel that removing some niche debugging features from the software renderer isn't worth it when the software renderer is mostly for debugging.

@Pokechu22
Copy link
Contributor Author

The main issue I had with them was that they were only available in debug builds, which were too slow to be useful. Additionally, the way they were implemented was a bit jank.

"Dump objects" seems useful, but I remember it not matching the object numbering in the fifoplayer, though I'm not sure if that was always the case. It's something that might be worth reintroducing as a feature of the fifoplayer itself (applying to all backends).

"Dump TEV stages" also seems useful sometimes, but I don't know what the purpose of "Dump Texture Fetches" was (compared to dump regular texture dumping). If there's a case where it's useful, it can probably be re-added, but I'm not sure if it's possible to add it to backends other than the software renderer. (I think it might be possible to add an option to the fifoplayer to override the number of TEV stages, which would allow doing the same thing interactively).

I don't think there's any value in re-adding the "Drawn Object Range" functionality; that's entirely redundant with the fifoplayer's range. Let me know if you see a use for it.

That said, the settings being loaded is odd. It looks like I only removed the code responsible for loading SWDrawStart/SWDrawEnd, not SWDumpObjects/SWDumpTevStages/SWDumpTevTexFetches, despite removing the code that uses all of those. I'm not sure why I did that.

@Pokechu22
Copy link
Contributor Author

Here's a really jank implementation of setting the max number of TEV stages in the fifoplayer: https://github.com/Pokechu22/dolphin/tree/fifoplayer-max-tev-stages (https://github.com/Pokechu22/dolphin/tree/archive/fifoplayer-max-tev-stages-1)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
3 participants