i965/gs: Set GS prog_data to NULL if there is no GS program.
authorPaul Berry <stereotype441@gmail.com>
Mon, 25 Nov 2013 15:49:15 +0000 (07:49 -0800)
committerPaul Berry <stereotype441@gmail.com>
Tue, 26 Nov 2013 21:22:23 +0000 (13:22 -0800)
The previous commit fixes a bug wherein we would incorrectly refer to
stale geometry shader prog_data when no geometry shader was active.

This patch reduces the likelihood of that sort of bug occurring in the
future by setting prog_data to NULL whenever there is no GS program.

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/brw_vec4_gs.c

index b52d646aa00d6e43f7b4218fabfa81c45090d613..018b0b674611e1b08525ea0833ca6cdff6f101c9 100644 (file)
@@ -259,6 +259,13 @@ brw_upload_gs_prog(struct brw_context *brw)
          brw->vue_map_geom_out = brw->vue_map_vs;
          brw->state.dirty.brw |= BRW_NEW_VUE_MAP_GEOM_OUT;
       }
+
+      /* Other state atoms had better not try to access prog_data, since
+       * there's no GS program.
+       */
+      brw->gs.prog_data = NULL;
+      brw->gs.base.prog_data = NULL;
+
       return;
    }