[Mesa-dev] [PATCH 08/11] i965: Move _NEW_PROGRAM dirty bit from gen7_sf_state to gen7_sbe_state.

Kenneth Graunke kenneth at whitecape.org
Sun Jan 8 14:43:57 PST 2012


According to a comment in gen6_sf_state.c, calls to get_attr_override
need both _NEW_PROGRAM and _NEW_LIGHT.  Since Gen7 reuses the same
function, the same dirty bits should apply.

When I performed the SF/SBE split, I partitioned the bits incorrectly:
3DSTATE_SBE (which contains the attribute setup) was missing _NEW_PROGRAM,
while 3DSTATE_SF was listing it as a dependency for no reason.

NOTE: This is a candidate for the 7.11 branch.

Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
---
 src/mesa/drivers/dri/i965/gen7_sf_state.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/gen7_sf_state.c b/src/mesa/drivers/dri/i965/gen7_sf_state.c
index 11b2480..abcfa99 100644
--- a/src/mesa/drivers/dri/i965/gen7_sf_state.c
+++ b/src/mesa/drivers/dri/i965/gen7_sf_state.c
@@ -105,6 +105,7 @@ upload_sbe_state(struct brw_context *brw)
        */
       assert(input_index < 16 || attr == input_index);
 
+      /* _NEW_LIGHT | _NEW_PROGRAM */
       attr_overrides[input_index++] =
          get_attr_override(&vue_map, urb_entry_read_offset, attr,
                            ctx->VertexProgram._TwoSideEnabled);
@@ -133,6 +134,7 @@ const struct brw_tracked_state gen7_sbe_state = {
    .dirty = {
       .mesa  = (_NEW_LIGHT |
 		_NEW_POINT |
+		_NEW_PROGRAM |
 		_NEW_TRANSFORM),
       .brw   = (BRW_NEW_CONTEXT |
 		BRW_NEW_BATCH |
@@ -280,7 +282,6 @@ upload_sf_state(struct brw_context *brw)
 const struct brw_tracked_state gen7_sf_state = {
    .dirty = {
       .mesa  = (_NEW_LIGHT |
-		_NEW_PROGRAM |
 		_NEW_POLYGON |
 		_NEW_LINE |
 		_NEW_SCISSOR |
-- 
1.7.7.5



More information about the mesa-dev mailing list