Skip to content

Add workaround for Vulkan pipeline compilation errors on Adreno 660.#120363

Merged
Repiteo merged 1 commit into
godotengine:masterfrom
blueskythlikesclouds:adreno-660-ubershader-workaround
Jun 17, 2026
Merged

Add workaround for Vulkan pipeline compilation errors on Adreno 660.#120363
Repiteo merged 1 commit into
godotengine:masterfrom
blueskythlikesclouds:adreno-660-ubershader-workaround

Conversation

@blueskythlikesclouds

@blueskythlikesclouds blueskythlikesclouds commented Jun 17, 2026

Copy link
Copy Markdown
Member

What problem(s) does this PR solve?

Additional information

The first problem in the linked issue specifically occurs with an ubershader. We don't know the underlying reason yet. So, similar to #119639, we can "skip" the ubershader and force a fallback to the specialized shader.

Unlike #119639, the driver returns an error code from vkCreateGraphicsPipelines instead of crashing outright, so we don't have to go as far as disabling all ubershaders. Instead, we can ignore the failed ubershader and retry the specialized shader, waiting for it to compile to avoid pop-in. This will still introduce some pipeline compilation stutter, but significantly less than #119639, since any ubershaders that compile successfully will continue to be used.

This approach is global so it'll work on all devices, but it will still produce harmless error logs. To address that, I added a specific workaround to mute error messages on Adreno 660, since we expect this behavior on it.

Comment thread drivers/vulkan/rendering_device_driver_vulkan.cpp Outdated
@blueskythlikesclouds blueskythlikesclouds force-pushed the adreno-660-ubershader-workaround branch from cdc0383 to 823e2db Compare June 17, 2026 12:39
@Repiteo Repiteo requested a review from bruvzg June 17, 2026 15:38

@bruvzg bruvzg left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code looks good. Since I do not have hardware to reproduce this part of issue, I have only tested it to not break anything in combination with #120344.

@Repiteo Repiteo merged commit feeea39 into godotengine:master Jun 17, 2026
20 checks passed
@Repiteo

Repiteo commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Thanks!

@blueskythlikesclouds blueskythlikesclouds deleted the adreno-660-ubershader-workaround branch June 18, 2026 08:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment