mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 05:08:08 +02:00
zink: store bindless var when creating it to avoid creating it again
When bindless variables are created they get used directly and never
stored anywhere so if another bindless instruction is encountered
duplicate variables are created.
Fixes: fe2ba184d8 ("zink: use descriptor indices in compiler")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25591>
This commit is contained in:
parent
9b0960cfe3
commit
3a33e59596
1 changed files with 6 additions and 1 deletions
|
|
@ -4228,8 +4228,13 @@ lower_bindless_instr(nir_builder *b, nir_instr *in, void *data)
|
|||
return false;
|
||||
|
||||
nir_variable *var = tex->sampler_dim == GLSL_SAMPLER_DIM_BUF ? bindless->bindless[1] : bindless->bindless[0];
|
||||
if (!var)
|
||||
if (!var) {
|
||||
var = create_bindless_texture(b->shader, tex, bindless->bindless_set);
|
||||
if (tex->sampler_dim == GLSL_SAMPLER_DIM_BUF)
|
||||
bindless->bindless[1] = var;
|
||||
else
|
||||
bindless->bindless[0] = var;
|
||||
}
|
||||
b->cursor = nir_before_instr(in);
|
||||
nir_deref_instr *deref = nir_build_deref_var(b, var);
|
||||
if (glsl_type_is_array(var->type))
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue