Mesa (master): i965: Update gen6 SF state on fragment program change too.

Eric Anholt anholt at kemper.freedesktop.org
Sun Dec 5 00:29:23 UTC 2010


Module: Mesa
Branch: master
Commit: 8f23039f0014eafec8b9d3fa06ce5fcba655a39b
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=8f23039f0014eafec8b9d3fa06ce5fcba655a39b

Author: Eric Anholt <eric at anholt.net>
Date:   Fri Dec  3 18:20:42 2010 -0800

i965: Update gen6 SF state on fragment program change too.

SF state depends on what inputs there are to the fragment program, not
just the outputs of the VS.

---

 src/mesa/drivers/dri/i965/gen6_sf_state.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/gen6_sf_state.c b/src/mesa/drivers/dri/i965/gen6_sf_state.c
index 06ac5d4..476bf53 100644
--- a/src/mesa/drivers/dri/i965/gen6_sf_state.c
+++ b/src/mesa/drivers/dri/i965/gen6_sf_state.c
@@ -67,6 +67,7 @@ upload_sf_state(struct brw_context *brw)
    struct gl_context *ctx = &intel->ctx;
    /* CACHE_NEW_VS_PROG */
    uint32_t num_inputs = brw_count_bits(brw->vs.prog_data->outputs_written);
+   /* BRW_NEW_FRAGMENT_PROGRAM */
    uint32_t num_outputs = brw_count_bits(brw->fragment_program->Base.InputsRead);
    uint32_t dw1, dw2, dw3, dw4, dw16;
    int i;
@@ -247,7 +248,8 @@ const struct brw_tracked_state gen6_sf_state = {
 		_NEW_BUFFERS |
 		_NEW_POINT |
 		_NEW_TRANSFORM),
-      .brw   = BRW_NEW_CONTEXT,
+      .brw   = (BRW_NEW_CONTEXT |
+		BRW_NEW_FRAGMENT_PROGRAM),
       .cache = CACHE_NEW_VS_PROG
    },
    .emit = upload_sf_state,




More information about the mesa-commit mailing list