Quick answer: SPIR-V Cross output lacking NonUniform decoration on bindless texture access? The translator emits it only when the source SPIR-V is marked - add OpDecorate NonUniform in the GLSL or HLSL.
Bindless texture array sampled with a uniform-divergent index. Desktop works; mobile drivers fail with 'non-uniform indexing not supported'.
Mark in HLSL
NonUniformResourceIndex(texIdx)HLSL keyword tells the SPIR-V emitter to add the decoration. Without it, the SPIR-V claims the index is uniform and drivers may dispatch wrong code paths.
Or mark in GLSL
nonuniformEXT(texIdx) via GL_EXT_nonuniform_qualifier. Same effect; different shader source language.
Validate the SPIR-V
spirv-cross shader.spv --version 460Look for nonuniformEXT in the output. If absent, the decoration was lost upstream.
“Bindless resource indexing requires the NonUniform decoration. It doesn't infer.”
Test on Mali and Adreno specifically. The decoration requirement is least-obvious on these GPUs and they're a large mobile share.