radeonsi: Always leave poly_offset in a valid state
authorZachary Michaels <zmichaels@oblong.com>
Thu, 19 Jan 2017 09:50:16 +0000 (10:50 +0100)
committerNicolai Hähnle <nicolai.haehnle@amd.com>
Thu, 19 Jan 2017 09:50:16 +0000 (10:50 +0100)
This commit makes si_update_poly_offset set poly_offset to NULL if
uses_poly_offset is false. This way poly_offset either points into the
currently queued rasterizer, or it is NULL.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99451
Cc: "13.0 17.0" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
src/gallium/drivers/radeonsi/si_state.c

index f60a499..0ec34f9 100644 (file)
@@ -717,8 +717,10 @@ static void si_update_poly_offset_state(struct si_context *sctx)
 {
        struct si_state_rasterizer *rs = sctx->queued.named.rasterizer;
 
-       if (!rs || !rs->uses_poly_offset || !sctx->framebuffer.state.zsbuf)
+       if (!rs || !rs->uses_poly_offset || !sctx->framebuffer.state.zsbuf) {
+               si_pm4_bind_state(sctx, poly_offset, NULL);
                return;
+       }
 
        /* Use the user format, not db_render_format, so that the polygon
         * offset behaves as expected by applications.