summaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorTimothy Arceri <[email protected]>2019-09-16 19:39:40 +1000
committerTimothy Arceri <[email protected]>2019-09-16 10:14:48 +0000
commit741cff91d3fbf920cc196d2607090d1350cb1ab6 (patch)
tree06b14f429b3e735a423b3db61fdd2453366ba3bb /src/gallium
parentc5010e72b6305d11b17c607a8fc1425c0b4c57f5 (diff)
radeonsi/nir: fix number of used samplers
Commit f3e978db incorrectly assumed the maximum number of samplers was equal to the max number of defined samplers e.g. where bindings skip slots. This fixes an assert in si_nir_load_sampler_desc() for an enemy territory quake wars shader. And fixes potential bugs with incorrect bounds limiting in the same code for production builds of mesa. Fixes: f3e978db ("radeonsi/nir: Remove uniform variable scanning") Reviewed-by: Connor Abbott <[email protected]>
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/drivers/radeonsi/si_shader_nir.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/gallium/drivers/radeonsi/si_shader_nir.c b/src/gallium/drivers/radeonsi/si_shader_nir.c
index 4970b01fd73..85cf53848e6 100644
--- a/src/gallium/drivers/radeonsi/si_shader_nir.c
+++ b/src/gallium/drivers/radeonsi/si_shader_nir.c
@@ -783,7 +783,7 @@ void si_nir_scan_shader(const struct nir_shader *nir,
if (nir->num_uniforms > 0)
info->const_buffers_declared |= 1;
info->images_declared = u_bit_consecutive(0, nir->info.num_images);
- info->samplers_declared = u_bit_consecutive(0, nir->info.num_textures);
+ info->samplers_declared = nir->info.textures_used;
info->num_written_clipdistance = nir->info.clip_distance_array_size;
info->num_written_culldistance = nir->info.cull_distance_array_size;