radeonsi/nir: get correct type for images inside structs
authorTimothy Arceri <tarceri@itsqueeze.com>
Wed, 9 Jan 2019 03:53:52 +0000 (14:53 +1100)
committerTimothy Arceri <tarceri@itsqueeze.com>
Wed, 16 Jan 2019 23:35:36 +0000 (10:35 +1100)
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/gallium/drivers/radeonsi/si_shader_nir.c

index a1bc4cb..c89a1e6 100644 (file)
@@ -163,11 +163,12 @@ static void scan_instruction(struct tgsi_shader_info *info,
                        break;
                }
                case nir_intrinsic_image_deref_store: {
+                       const nir_deref_instr *image_deref = nir_instr_as_deref(intr->src[0].ssa->parent_instr);
                        nir_variable *var = intrinsic_get_var(intr);
                        if (var->data.bindless) {
                                info->uses_bindless_images = true;
 
-                               if (glsl_get_sampler_dim(var->type) == GLSL_SAMPLER_DIM_BUF)
+                               if (glsl_get_sampler_dim(image_deref->type) == GLSL_SAMPLER_DIM_BUF)
                                        info->uses_bindless_buffer_store = true;
                                else
                                        info->uses_bindless_image_store = true;