svga: Check rasterization state object before checking poly_stipple_enable
authorNeha Bhende <bhenden@vmware.com>
Mon, 22 Jan 2018 23:01:20 +0000 (15:01 -0800)
committerBrian Paul <brianp@vmware.com>
Tue, 30 Jan 2018 04:04:49 +0000 (21:04 -0700)
Sometimes rasterization state object could be empty. This is causing
segfault on hw8,9,10 for some traces.

This patch fixes enemy_territory_quake_wars_high,
enemy_territory_quake_wars_low, etqw-demo, lightsmark2008, quake1
glretrace crashes on hw 8,9,10.

Tested with mtt-glretrace and mtt-piglit.

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
src/gallium/drivers/svga/svga_state_tss.c

index 63f3c8c8583bfad38902ea6a8380710c44b63db5..d598d23c4eaed9da5484776f33fa50cff48ab50b 100644 (file)
@@ -256,7 +256,7 @@ svga_reemit_tss_bindings(struct svga_context *svga)
    }
 
    /* Polygon stipple */
-   if (svga->curr.rast->templ.poly_stipple_enable) {
+   if (svga->curr.rast && svga->curr.rast->templ.poly_stipple_enable) {
       const unsigned unit = svga->state.hw_draw.fs->pstipple_sampler_unit;
       struct svga_hw_view_state *view = &svga->state.hw_draw.views[unit];