From: Chris Forbes Date: Sat, 28 Feb 2015 06:57:20 +0000 (+1300) Subject: i965/gs: Check newly-generated GS-out VUE map against correct stage X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b51ff50a767cc78d678ed3d2c25995f5c4194fea;p=mesa.git i965/gs: Check newly-generated GS-out VUE map against correct stage Previously, we compared our new GS-out VUE map to the existing *VS*-out VUE map, which is bogus. This would mostly manifest as redundant dirty flagging where the GS is in use but the VS and GS output layouts differ; but there is a scary case where we would fail to flag a GS-out layout change if it happened to match the VS-out layout. Signed-off-by: Chris Forbes Cc: "10.5, 10.4" Reviewed-by: Matt Turner Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=88885 --- diff --git a/src/mesa/drivers/dri/i965/brw_gs.c b/src/mesa/drivers/dri/i965/brw_gs.c index 1fba76a68af..efcff090818 100644 --- a/src/mesa/drivers/dri/i965/brw_gs.c +++ b/src/mesa/drivers/dri/i965/brw_gs.c @@ -357,7 +357,7 @@ brw_upload_gs_prog(struct brw_context *brw) } brw->gs.base.prog_data = &brw->gs.prog_data->base.base; - if (memcmp(&brw->vs.prog_data->base.vue_map, &brw->vue_map_geom_out, + if (memcmp(&brw->gs.prog_data->base.vue_map, &brw->vue_map_geom_out, sizeof(brw->vue_map_geom_out)) != 0) { brw->vue_map_geom_out = brw->gs.prog_data->base.vue_map; brw->state.dirty.brw |= BRW_NEW_VUE_MAP_GEOM_OUT;