Emulator Issues #12791
openHybrid Ubershaders not working (Adreno, OpenGL ES)
0%
Description
What's the problem? Describe what went wrong.
It is not possible to play with the Hybrid Ubershaders option enabled.
What steps will reproduce the problem?
With the Hybrid Ubershaders option enabled I start playing a game that compiles shaders and during the "Shader Compilation" process two things can happen: either the compilation process stops or it continues to the end and exits the game. So it is impossible to play with the Hybrid Ubershaders option enabled.
Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.
Yes, 5.0-15741
Is the issue present in the latest stable version?
No, 5.0-15445
If the issue isn't present in the latest stable version, which is the first broken version?
5.0.15676
What are your PC specifications? (CPU, GPU, Operating System, more)
Model: Poco F3 [M2012K11AG (alioth_global)]
OS: Android 11 RKQ1.200826.002
Chipset: Qualcomm SM8250-AC Snapdragon 870 5G (7 nm)
CPU: Octa-core (1x3.2 GHz Kryo 585 & 3x2.42 GHz Kryo 585 & 4x1.80 GHz Kryo 585)
GPU: Adreno 650
Is there anything else that can help developers narrow down the issue? (e.g. logs, screenshots,
configuration files, savefiles, savestates)
A video where you can see the problem.
https://mega.nz/file/w1URBajS#OKq_BJm4Y5NJLyKvm4SFSm6Nni4P-N2BAWyTu-cBefo
Updated by JosJuice almost 3 years ago
- Has duplicate Emulator Issues #12778: Ubershaders are broken on certain Adreno devices added
Updated by JosJuice almost 3 years ago
- Milestone set to Current
- Regression changed from No to Yes
- Regression start set to 5.0-15676
- Operating system Android added
- Operating system deleted (
N/A)
Updated by Cobalt almost 3 years ago
Can confirm the same thing happens on a OnePlus 6 (Snapdragon 845, Adreno 630, Android 11).
One thing to note is that this issue only affects OpenGL, while it launches just fine on Vulkan.
Updated by JosJuice over 2 years ago
Let's try to keep track of driver versions, since that probably affects whether the issue happens.
Me (cannot reproduce): OpenGL ES 3.2 V@0494.0 (GIT@7854b52, I85c7417cbb, 1595954679) (Date:07/28/20)
Cobalt (can reproduce): OpenGL ES 3.2 V@0502.0 (GIT@835405b, I57aaec3440, 1621601959) (Date:05/21/21)
I started attempting to fix this issue in https://github.com/dolphin-emu/dolphin/pull/10485, but couldn't get all the way. If anyone wants to try their hand at it, details are available there.
Updated by JosJuice almost 2 years ago
Guess I should write this down explicitly instead of just keeping it in PMs: JMC told me that someone else said that this was caused by the combination of conditional discard, depth writes, and dual source outputting a second color.
I tried making it emulate dual source using fbfetch instead of the normal way, but it didn't fix the crash... But when testing this I didn't get rid of the line #extension GL_EXT_blend_func_extended : enable
that shows up early in the shader (because the way Dolphin was emitting it made it difficult to skip emitting it for shaders that use fbfetch logic ops but still emit it for other shaders). Not sure if that matters.
Updated by JosJuice over 1 year ago
- Subject changed from Hybrid Ubershaders not working (Android) to Hybrid Ubershaders not working (Adreno, OpenGL ES)