r600: clear compressed flags in image state on unbind.
authorDave Airlie <airlied@redhat.com>
Tue, 19 Dec 2017 05:36:53 +0000 (05:36 +0000)
committerDave Airlie <airlied@redhat.com>
Tue, 19 Dec 2017 05:38:12 +0000 (05:38 +0000)
If we aren't binding an image, clear the compressed flags.

This fixes a segfault seen with an apitrace.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104331
Signed-off-by: Dave Airlie <airlied@redhat.com>
src/gallium/drivers/r600/evergreen_state.c

index f64d6150037ccf7ac8c7254dee0e1f19a9b1f47a..0da665f634052817337846671827a15cc9b87790 100644 (file)
@@ -4071,6 +4071,8 @@ static void evergreen_set_shader_images(struct pipe_context *ctx,
                if (!images || !images[idx].resource) {
                        pipe_resource_reference((struct pipe_resource **)&rview->base.resource, NULL);
                        istate->enabled_mask &= ~(1 << i);
+                       istate->compressed_colortex_mask &= ~(1 << i);
+                       istate->compressed_depthtex_mask &= ~(1 << i);
                        continue;
                }