diff options
author | Kenneth Graunke <kenneth@whitecape.org> | 2014-05-20 14:52:40 -0700 |
---|---|---|
committer | Ian Romanick <ian.d.romanick@intel.com> | 2014-05-23 09:54:41 -0700 |
commit | 7cf3a674ea23e4a3a0beed7faf51c2a930f52264 (patch) | |
tree | e34e5f08711f57f97a47f09b39af654dbd408403 | |
parent | d2521a44af66af5c99090eb30487798f8b6dde1c (diff) |
i965: Listen to BRW_NEW_FRAGMENT_PROGRAM for 3DSTATE_PS_BLEND.
brw_color_buffer_write_enabled depends on brw->fragment_program, which
means we have to listen to BRW_NEW_FRAGMENT_PROGRAM.
On most generations, this was only called from a function that already
subscribed. However, on Broadwell, we failed to listen to the necessary
event in the atom that emits 3DSTATE_PS_BLEND.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Cc: "10.2" <mesa-stable@lists.freedesktop.org>
(cherry picked from commit 746921cbb474f2df85232a8f0c10cde8df3349e9)
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_wm_state.c | 1 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/gen8_blend_state.c | 4 |
2 files changed, 3 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_wm_state.c b/src/mesa/drivers/dri/i965/brw_wm_state.c index fbd605c4343..98b5185f22a 100644 --- a/src/mesa/drivers/dri/i965/brw_wm_state.c +++ b/src/mesa/drivers/dri/i965/brw_wm_state.c @@ -45,6 +45,7 @@ bool brw_color_buffer_write_enabled(struct brw_context *brw) { struct gl_context *ctx = &brw->ctx; + /* BRW_NEW_FRAGMENT_PROGRAM */ const struct gl_fragment_program *fp = brw->fragment_program; int i; diff --git a/src/mesa/drivers/dri/i965/gen8_blend_state.c b/src/mesa/drivers/dri/i965/gen8_blend_state.c index a02b765c06b..9c5eedbf1b4 100644 --- a/src/mesa/drivers/dri/i965/gen8_blend_state.c +++ b/src/mesa/drivers/dri/i965/gen8_blend_state.c @@ -215,7 +215,7 @@ gen8_upload_ps_blend(struct brw_context *brw) /* _NEW_BUFFERS */ struct gl_renderbuffer *rb = ctx->DrawBuffer->_ColorDrawBuffers[0]; - /* _NEW_BUFFERS | _NEW_COLOR */ + /* BRW_NEW_FRAGMENT_PROGRAM | _NEW_BUFFERS | _NEW_COLOR */ if (brw_color_buffer_write_enabled(brw)) dw1 |= GEN8_PS_BLEND_HAS_WRITEABLE_RT; @@ -290,7 +290,7 @@ gen8_upload_ps_blend(struct brw_context *brw) const struct brw_tracked_state gen8_ps_blend = { .dirty = { .mesa = _NEW_BUFFERS | _NEW_COLOR | _NEW_MULTISAMPLE, - .brw = BRW_NEW_CONTEXT, + .brw = BRW_NEW_CONTEXT | BRW_NEW_FRAGMENT_PROGRAM, .cache = 0, }, .emit = gen8_upload_ps_blend |