Skip to content

Fix uniform names upstream#16

Open
jeske wants to merge 3 commits into
ppy:masterfrom
jeske:fix-uniform-names-upstream
Open

Fix uniform names upstream#16
jeske wants to merge 3 commits into
ppy:masterfrom
jeske:fix-uniform-names-upstream

Conversation

@jeske

@jeske jeske commented Mar 10, 2026

Copy link
Copy Markdown

This is cherry pick of 2bd808e against my fork of ppy/veldrid-spirv

This fixes: veldrid#8

In order to use precompiled GLSL shaders, uniform names must be preserved into GLSL shader cross compiles, because the veldrid GLSL path uses name lookups to bind GLSL uniforms.

Prior to this fix glsl uniform names were renamed during debug shader compilation and lost during non-debug shader compilation.

This patch fixes both issues, by:

preserving symbols in non-debug SPIRV for GLSL cross output (this does not affect optimization level)
preserving the uniform name in translation to GLSL
adding a new GLSL test uniform preservation test to make sure this doesn't happen again
Test summary: total: 85, failed: 0, succeeded: 85, skipped: 0, duration: 36.9s

As far as I can tell, Veldrid:OpenGL only worked if you were willing to ship Veldrid.SPIRV into your runtime and use it to compile vulkan->SPIRV->glsl at runtime. There is no binary for SPIRV for mobile arm, and it's pretty unnecessary. It's also important to support precompiled shader users.

I found this bug while building a Veldrid backend for SilkyNvg that precompiles shaders to avoid shipping Veldrid.SPIRV, both because i dont want a SPIRV compiler dependency for a 2d vector drawling library, and because we run on android-vulkan, (and soon android-gles, and ios-metal)

@bdach

bdach commented Mar 11, 2026

Copy link
Copy Markdown

What's the deal with this existing next to #15? Like I'm not even sure what I'm looking at here. This one seems to be the exact same diff plus a submodule update?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Uniform names changed

2 participants