radeonsi: fix gnome-shell crash
authorMarek Olšák <marek.olsak@amd.com>
Thu, 18 Oct 2018 21:54:24 +0000 (17:54 -0400)
committerMarek Olšák <marek.olsak@amd.com>
Thu, 18 Oct 2018 21:55:44 +0000 (17:55 -0400)
I wasn't expecting to get viewports with the center having
negative coordinates.

Broken by: 6cc79e4411f

src/gallium/drivers/radeonsi/si_state_viewport.c

index b7fcd5bdb8282e5f24e054e856ef430a7bf4e4e9..808eb366bdeef07dd08f897d1365a5a8cdc3b562 100644 (file)
@@ -184,8 +184,8 @@ static void si_emit_guardband(struct si_context *ctx)
        const unsigned hw_screen_offset_alignment =
                ctx->chip_class >= VI ? 16 : MAX2(ctx->screen->se_tile_repeat, 16);
 
-       hw_screen_offset_x = MIN2(hw_screen_offset_x, hw_screen_offset_max);
-       hw_screen_offset_y = MIN2(hw_screen_offset_y, hw_screen_offset_max);
+       hw_screen_offset_x = CLAMP(hw_screen_offset_x, 0, hw_screen_offset_max);
+       hw_screen_offset_y = CLAMP(hw_screen_offset_y, 0, hw_screen_offset_max);
 
        /* Align the screen offset by dropping the low 4 bits. */
        hw_screen_offset_x &= ~(hw_screen_offset_alignment - 1);