radeonsi: Don't modify PA_SC_RASTER_CONFIG register value if rb_mask == 0
authorMichel Dänzer <michel.daenzer@amd.com>
Tue, 9 Dec 2014 08:00:32 +0000 (17:00 +0900)
committerMichel Dänzer <michel@daenzer.net>
Thu, 25 Dec 2014 03:06:22 +0000 (12:06 +0900)
E.g. this could happen on older kernels which don't support the
RADEON_INFO_SI_BACKEND_ENABLED_MASK query yet. The code in
si_write_harvested_raster_configs() doesn't deal with this correctly and
would probably mangle the value badly.

Cc: "10.4 10.3" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
src/gallium/drivers/radeonsi/si_state.c

index 097c31cc94349fb3e445034f12eef7407658e242..5a417b0211c54989e0cf1e5a5071334291b19eeb 100644 (file)
@@ -3032,8 +3032,10 @@ void si_init_config(struct si_context *sctx)
                        break;
                }
 
-               /* Always use the default config when all backends are enabled. */
-               if (rb_mask && util_bitcount(rb_mask) >= num_rb) {
+               /* Always use the default config when all backends are enabled
+                * (or when we failed to determine the enabled backends).
+                */
+               if (!rb_mask || util_bitcount(rb_mask) >= num_rb) {
                        si_pm4_set_reg(pm4, R_028350_PA_SC_RASTER_CONFIG,
                                       raster_config);
                } else {