Emulator Issues #6456
openProperly implement InitBackendInfo in OpenGL
0%
Description
What went wrong?
OGL::InitBackendInfo doesn't consider the device's actual capabilities when filling out things like bSupportsFormatReinterpretation. This way, the user will enable format change emulation (expecting things to work) but it will silently not do anthing on unsupported hardware. Similar oddities occur for MSAA and possibly other things.
What did you expect to happen?
Instead of being able to enable format change emulation, the option should be greyed out when an unsupported GPU is detected. Similar logic should be applied for MSAA and possibly other things.
What steps will reproduce the problem?
- Install a GPU/driver combination which supports only GLSL 1.20 but not 1.30 ( = format change emulation not supported)
- Uncheck "Ignore format changes" in the Hacks tab of the graphics configuration.
- Try running a game which relies on format change emulation (e.g. Mario Kart Wii, cf. issue 2063)
Any other relevant information or links to logs:
Proper device capability detection will require creating a temporary GL context in InitBackendInfo (as it's currently done in D3D11 and kinda in D3D9).
Updated by degasus over 11 years ago
True, but as reported on irc, some drivers may crash on creating two contexts. So should this be moved after 4.0?
Updated by NeoBrainX over 11 years ago
Likely. As a workaround it should be verified that we output some warning logs when unsupported features are enabled, though. Also, it should be verified that we force the settings to be disabled if they're unsupported as things are going to be buggy or even crash otherwise.
Updated by NeoBrainX over 11 years ago
Also, note that it shouldn't actually be necessary to create a second context - one can re-use the existing context when emulation is running and one can safely create a temporary context if it's not running.
Updated by delroth about 11 years ago
- Milestone deleted (
Current) - Issue type set to Task
- Operating system N/A added
Fixed enough for 4.0 in 40a1cb5dfed6. Removing milestone.
Updated by Helios over 6 years ago
- Blocks deleted (Emulator Issues #6631: [Feature Request] Add 16x MSAA + 8x SSAA option to OpenGL)