diff --git a/src/gallium/drivers/radeonsi/si_shader.h b/src/gallium/drivers/radeonsi/si_shader.h index d4f7a2e8ca3..9a8dfb45e84 100644 --- a/src/gallium/drivers/radeonsi/si_shader.h +++ b/src/gallium/drivers/radeonsi/si_shader.h @@ -479,6 +479,7 @@ struct si_shader_info { bool uses_indirect_descriptor; bool has_divergent_loop; bool uses_sampleid; + bool has_non_uniform_tex_access; bool uses_vmem_sampler_or_bvh; bool uses_vmem_load_other; /* all other VMEM loads and atomics with return */ diff --git a/src/gallium/drivers/radeonsi/si_shader_info.c b/src/gallium/drivers/radeonsi/si_shader_info.c index 0e4a7a83a36..60e4a7edc55 100644 --- a/src/gallium/drivers/radeonsi/si_shader_info.c +++ b/src/gallium/drivers/radeonsi/si_shader_info.c @@ -426,6 +426,9 @@ static void scan_instruction(const struct nir_shader *nir, struct si_shader_info if (nir_deref_instr_has_indirect(nir_src_as_deref(*deref))) info->uses_indirect_descriptor = true; } + + info->has_non_uniform_tex_access = + tex->texture_non_uniform || tex->sampler_non_uniform; } else if (instr->type == nir_instr_type_intrinsic) { nir_intrinsic_instr *intr = nir_instr_as_intrinsic(instr); const char *intr_name = nir_intrinsic_infos[intr->intrinsic].name;