radeonsi: Properly handle NULL sampler views.
authorMichel Dänzer <michel.daenzer@amd.com>
Wed, 12 Sep 2012 13:53:51 +0000 (15:53 +0200)
committerMichel Dänzer <michel@daenzer.net>
Wed, 12 Sep 2012 13:53:51 +0000 (15:53 +0200)
Fixes piglit shaders/glsl-fs-uniform-sampler-array and many other similar
tests.

In fact, I just completed a piglit quick-driver.tests run without any GPU
lockups or even VM protection faults. Yay!

Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
src/gallium/drivers/radeonsi/si_state.c

index 80da068729d072bc3595dbf6306d5778bee3e671..1a5ed2fa3d90a6f9c5901956e315a5a297e02f7c 100644 (file)
@@ -2268,10 +2268,10 @@ static void si_set_ps_sampler_view(struct pipe_context *ctx, unsigned count,
                        struct r600_resource_texture *tex = (void *)resource[i]->base.texture;
 
                        si_pm4_add_bo(pm4, &tex->resource, RADEON_USAGE_READ);
+               }
 
-                       for (j = 0; j < Elements(resource[i]->state); ++j) {
-                               si_pm4_sh_data_add(pm4, resource[i]->state[j]);
-                       }
+               for (j = 0; j < Elements(resource[i]->state); ++j) {
+                       si_pm4_sh_data_add(pm4, resource[i] ? resource[i]->state[j] : 0);
                }
        }