Project

General

Profile

Actions

Emulator Issues #12791

open

Hybrid Ubershaders not working (Adreno, OpenGL ES)

Added by Thomas over 2 years ago. Updated about 1 year ago.

Status:
New
Priority:
Normal
Assignee:
-
% Done:

0%

Operating system:
Android
Issue type:
Bug
Milestone:
Current
Regression:
Yes
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
5.0-15676
Fixed in:

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


Related issues 1 (0 open1 closed)

Has duplicate Emulator - Emulator Issues #12778: Ubershaders are broken on certain Adreno devicesDuplicate

Actions
Actions #1

Updated by JosJuice over 2 years ago

Actions #2

Updated by JosJuice over 2 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)
Actions #3

Updated by Cobalt about 2 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.

Actions #4

Updated by JosJuice about 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.

Actions #5

Updated by JosJuice over 1 year 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.

Actions #6

Updated by JosJuice about 1 year ago

  • Subject changed from Hybrid Ubershaders not working (Android) to Hybrid Ubershaders not working (Adreno, OpenGL ES)
Actions

Also available in: Atom PDF