summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/i965
diff options
context:
space:
mode:
authorKenneth Graunke <kenneth@whitecape.org>2016-08-25 23:00:13 -0700
committerKenneth Graunke <kenneth@whitecape.org>2016-08-31 11:50:15 -0700
commitcd19db4ee61b6182b31ef8dfa1981ea59cfa34c4 (patch)
treea087d71b055b1d4aae3e7abb408c3031111992cb /src/mesa/drivers/dri/i965
parent3df8615dcd67af4cbe1a65bcb15231320202f4e8 (diff)
downloadexternal_mesa3d-cd19db4ee61b6182b31ef8dfa1981ea59cfa34c4.zip
external_mesa3d-cd19db4ee61b6182b31ef8dfa1981ea59cfa34c4.tar.gz
external_mesa3d-cd19db4ee61b6182b31ef8dfa1981ea59cfa34c4.tar.bz2
i965: Fix missing dirty bits related to is_drawing_points/lines.
calculate_attr_overrides() uses is_drawing_points(), which depends on tessellation and geometry program state, as well as polygon state. v2: Add missing _NEW_POLYGON as well. Caught by Iago Toral. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Diffstat (limited to 'src/mesa/drivers/dri/i965')
-rw-r--r--src/mesa/drivers/dri/i965/gen6_clip_state.c5
-rw-r--r--src/mesa/drivers/dri/i965/gen7_sf_state.c14
-rw-r--r--src/mesa/drivers/dri/i965/gen8_sf_state.c9
3 files changed, 23 insertions, 5 deletions
diff --git a/src/mesa/drivers/dri/i965/gen6_clip_state.c b/src/mesa/drivers/dri/i965/gen6_clip_state.c
index 4a3f7f9..8a3d05a 100644
--- a/src/mesa/drivers/dri/i965/gen6_clip_state.c
+++ b/src/mesa/drivers/dri/i965/gen6_clip_state.c
@@ -230,6 +230,9 @@ upload_clip_state(struct brw_context *brw)
else
enable = GEN6_CLIP_ENABLE;
+ /* _NEW_POLYGON,
+ * BRW_NEW_GEOMETRY_PROGRAM | BRW_NEW_TES_PROG_DATA | BRW_NEW_PRIMITIVE
+ */
if (!brw_is_drawing_points(brw) && !brw_is_drawing_lines(brw))
dw2 |= GEN6_CLIP_XY_TEST;
@@ -255,6 +258,7 @@ const struct brw_tracked_state gen6_clip_state = {
.dirty = {
.mesa = _NEW_BUFFERS |
_NEW_LIGHT |
+ _NEW_POLYGON |
_NEW_TRANSFORM,
.brw = BRW_NEW_BLORP |
BRW_NEW_CONTEXT |
@@ -281,6 +285,7 @@ const struct brw_tracked_state gen7_clip_state = {
BRW_NEW_META_IN_PROGRESS |
BRW_NEW_PRIMITIVE |
BRW_NEW_RASTERIZER_DISCARD |
+ BRW_NEW_TES_PROG_DATA |
BRW_NEW_VUE_MAP_GEOM_OUT,
},
.emit = upload_clip_state,
diff --git a/src/mesa/drivers/dri/i965/gen7_sf_state.c b/src/mesa/drivers/dri/i965/gen7_sf_state.c
index ba0592a..8727bf8 100644
--- a/src/mesa/drivers/dri/i965/gen7_sf_state.c
+++ b/src/mesa/drivers/dri/i965/gen7_sf_state.c
@@ -59,8 +59,10 @@ upload_sbe_state(struct brw_context *brw)
}
dw1 |= point_sprite_origin;
- /* BRW_NEW_VUE_MAP_GEOM_OUT | BRW_NEW_FRAGMENT_PROGRAM
- * _NEW_POINT | _NEW_LIGHT | _NEW_PROGRAM | BRW_NEW_FS_PROG_DATA
+ /* _NEW_POINT | _NEW_LIGHT | _NEW_PROGRAM,
+ * BRW_NEW_FS_PROG_DATA | BRW_NEW_FRAGMENT_PROGRAM |
+ * BRW_NEW_GEOMETRY_PROGRAM | BRW_NEW_PRIMITIVE | BRW_NEW_TES_PROG_DATA |
+ * BRW_NEW_VUE_MAP_GEOM_OUT
*/
uint32_t urb_entry_read_length;
uint32_t urb_entry_read_offset;
@@ -90,12 +92,14 @@ const struct brw_tracked_state gen7_sbe_state = {
.mesa = _NEW_BUFFERS |
_NEW_LIGHT |
_NEW_POINT |
+ _NEW_POLYGON |
_NEW_PROGRAM,
.brw = BRW_NEW_BLORP |
BRW_NEW_CONTEXT |
BRW_NEW_FRAGMENT_PROGRAM |
BRW_NEW_FS_PROG_DATA |
BRW_NEW_GEOMETRY_PROGRAM |
+ BRW_NEW_TES_PROG_DATA |
BRW_NEW_PRIMITIVE |
BRW_NEW_VUE_MAP_GEOM_OUT,
},
@@ -187,7 +191,9 @@ upload_sf_state(struct brw_context *brw)
dw2 |= GEN6_SF_CULL_NONE;
}
- /* _NEW_SCISSOR _NEW_POLYGON BRW_NEW_GEOMETRY_PROGRAM BRW_NEW_PRIMITIVE */
+ /* _NEW_SCISSOR | _NEW_POLYGON,
+ * BRW_NEW_GEOMETRY_PROGRAM | BRW_NEW_PRIMITIVE | BRW_NEW_TES_PROG_DATA
+ */
if (ctx->Scissor.EnableFlags ||
brw_is_drawing_points(brw) || brw_is_drawing_lines(brw))
dw2 |= GEN6_SF_SCISSOR_ENABLE;
@@ -256,7 +262,9 @@ const struct brw_tracked_state gen7_sf_state = {
_NEW_SCISSOR,
.brw = BRW_NEW_BLORP |
BRW_NEW_CONTEXT |
+ BRW_NEW_GEOMETRY_PROGRAM |
BRW_NEW_PRIMITIVE |
+ BRW_NEW_TES_PROG_DATA |
BRW_NEW_VUE_MAP_GEOM_OUT,
},
.emit = upload_sf_state,
diff --git a/src/mesa/drivers/dri/i965/gen8_sf_state.c b/src/mesa/drivers/dri/i965/gen8_sf_state.c
index 0c4f1df..93c77f7 100644
--- a/src/mesa/drivers/dri/i965/gen8_sf_state.c
+++ b/src/mesa/drivers/dri/i965/gen8_sf_state.c
@@ -60,8 +60,10 @@ upload_sbe(struct brw_context *brw)
else
dw1 |= GEN6_SF_POINT_SPRITE_UPPERLEFT;
- /* BRW_NEW_VUE_MAP_GEOM_OUT | BRW_NEW_FRAGMENT_PROGRAM |
- * _NEW_POINT | _NEW_LIGHT | _NEW_PROGRAM | BRW_NEW_FS_PROG_DATA
+ /* _NEW_POINT | _NEW_LIGHT | _NEW_PROGRAM,
+ * BRW_NEW_FS_PROG_DATA | BRW_NEW_FRAGMENT_PROGRAM |
+ * BRW_NEW_GEOMETRY_PROGRAM | BRW_NEW_PRIMITIVE | BRW_NEW_TES_PROG_DATA |
+ * BRW_NEW_VUE_MAP_GEOM_OUT
*/
calculate_attr_overrides(brw, attr_overrides,
&point_sprite_enables,
@@ -132,11 +134,14 @@ const struct brw_tracked_state gen8_sbe_state = {
.mesa = _NEW_BUFFERS |
_NEW_LIGHT |
_NEW_POINT |
+ _NEW_POLYGON |
_NEW_PROGRAM,
.brw = BRW_NEW_BLORP |
BRW_NEW_CONTEXT |
BRW_NEW_FRAGMENT_PROGRAM |
BRW_NEW_FS_PROG_DATA |
+ BRW_NEW_GEOMETRY_PROGRAM |
+ BRW_NEW_TES_PROG_DATA |
BRW_NEW_VUE_MAP_GEOM_OUT,
},
.emit = upload_sbe,