radeonsi: pass shader stage to si_disable_shader_image
authorNicolai Hähnle <nicolai.haehnle@amd.com>
Fri, 3 Jun 2016 13:36:45 +0000 (15:36 +0200)
committerNicolai Hähnle <nicolai.haehnle@amd.com>
Tue, 7 Jun 2016 13:18:05 +0000 (15:18 +0200)
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/gallium/drivers/radeonsi/si_descriptors.c

index 23e98f7a56124b4d1eb22017ec9688b524f0060d..f8748d6db1b4982a58e0c026d3ec7e095ec75013 100644 (file)
@@ -502,15 +502,19 @@ si_image_views_begin_new_cs(struct si_context *sctx, struct si_images_info *imag
 }
 
 static void
-si_disable_shader_image(struct si_images_info *images, unsigned slot)
+si_disable_shader_image(struct si_context *ctx, unsigned shader, unsigned slot)
 {
+       struct si_images_info *images = &ctx->images[shader];
+
        if (images->enabled_mask & (1u << slot)) {
+               struct si_descriptors *descs = &images->desc;
+
                pipe_resource_reference(&images->views[slot].resource, NULL);
                images->compressed_colortex_mask &= ~(1 << slot);
 
-               memcpy(images->desc.list + slot*8, null_image_descriptor, 8*4);
+               memcpy(descs->list + slot*8, null_image_descriptor, 8*4);
                images->enabled_mask &= ~(1u << slot);
-               images->desc.dirty_mask |= 1u << slot;
+               descs->dirty_mask |= 1u << slot;
        }
 }
 
@@ -541,7 +545,7 @@ static void si_set_shader_image(struct si_context *ctx,
        struct r600_resource *res;
 
        if (!view || !view->resource) {
-               si_disable_shader_image(images, slot);
+               si_disable_shader_image(ctx, shader, slot);
                return;
        }