glsl: fix regression in ubo cloning

Fixes KHR-GL46.layout_binding.block_layout_binding_block_VertexShader
with radeonsi.

Fixes: 2b2132d2ac ("nir: fix uniform cloning helper")

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34337>
(cherry picked from commit d8782db3a4)
This commit is contained in:
Timothy Arceri 2025-04-02 14:39:29 +11:00 committed by Eric Engestrom
parent e8ccf9bd1f
commit 6ae1a65ec5
2 changed files with 4 additions and 3 deletions

View file

@ -1874,7 +1874,7 @@
"description": "glsl: fix regression in ubo cloning",
"nominated": true,
"nomination_type": 2,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "2b2132d2acd1fc312de41813888b802aeda3a00a",
"notes": null

View file

@ -1172,8 +1172,9 @@ nir_clone_uniform_variable(nir_shader *nir, nir_variable *uniform, bool spirv)
if ((spirv && uniform->data.mode & nir_var_mem_ubo &&
v->data.binding == uniform->data.binding) ||
(!spirv &&
((!strcmp(uniform->name, v->name) && !uniform->data.explicit_binding && !v->data.explicit_binding) ||
(uniform->data.explicit_binding && v->data.explicit_binding && v->data.binding == uniform->data.binding)))) {
(!strcmp(uniform->name, v->name) &&
uniform->data.explicit_binding == v->data.explicit_binding &&
uniform->data.binding == v->data.binding))) {
new_var = v;
break;
}