Mesa (10.4): i965: Add missing BRW_NEW_*_PROG_DATA to texture/ renderbuffer atoms.
Emil Velikov
evelikov at kemper.freedesktop.org
Sun Jan 4 22:07:03 UTC 2015
Module: Mesa
Branch: 10.4
Commit: 2b85ed72dbe1edbdb2b1a06467cdc11955b8a3a6
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2b85ed72dbe1edbdb2b1a06467cdc11955b8a3a6
Author: Kenneth Graunke <kenneth at whitecape.org>
Date: Wed Dec 24 00:18:42 2014 -0800
i965: Add missing BRW_NEW_*_PROG_DATA to texture/renderbuffer atoms.
This was probably missed when moving from a fixed binding table layout
to a dynamic one that changes based on the shader.
Fixes newly proposed Piglit test fbo-mrt-new-bind.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=87619
Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Chris Forbes <chrisf at ijw.co.nz>
Reviewed-by: Mike Stroyan <mike at LunarG.com>
Cc: "10.4 10.3" <mesa-stable at lists.freedesktop.org>
(cherry picked from commit 4616b2ef850cb2b3e33005809ed77a697afc4186)
---
src/mesa/drivers/dri/i965/brw_wm_surface_state.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
index ef46dd7..b38eba1 100644
--- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
+++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
@@ -535,6 +535,7 @@ brw_update_null_renderbuffer_surface(struct brw_context *brw, unsigned int unit)
drm_intel_bo *bo = NULL;
unsigned pitch_minus_1 = 0;
uint32_t multisampling_state = 0;
+ /* CACHE_NEW_WM_PROG */
uint32_t surf_index =
brw->wm.prog_data->binding_table.render_target_start + unit;
@@ -620,6 +621,7 @@ brw_update_renderbuffer_surface(struct brw_context *brw,
uint32_t format = 0;
/* _NEW_BUFFERS */
mesa_format rb_format = _mesa_get_render_format(ctx, intel_rb_format(irb));
+ /* CACHE_NEW_WM_PROG */
uint32_t surf_index =
brw->wm.prog_data->binding_table.render_target_start + unit;
@@ -737,7 +739,7 @@ const struct brw_tracked_state brw_renderbuffer_surfaces = {
.mesa = (_NEW_COLOR |
_NEW_BUFFERS),
.brw = BRW_NEW_BATCH,
- .cache = 0
+ .cache = CACHE_NEW_WM_PROG,
},
.emit = brw_update_renderbuffer_surfaces,
};
@@ -764,6 +766,8 @@ update_stage_texture_surfaces(struct brw_context *brw,
struct gl_context *ctx = &brw->ctx;
uint32_t *surf_offset = stage_state->surf_offset;
+
+ /* CACHE_NEW_*_PROG */
if (for_gather)
surf_offset += stage_state->prog_data->binding_table.gather_texture_start;
else
@@ -828,7 +832,7 @@ const struct brw_tracked_state brw_texture_surfaces = {
BRW_NEW_VERTEX_PROGRAM |
BRW_NEW_GEOMETRY_PROGRAM |
BRW_NEW_FRAGMENT_PROGRAM,
- .cache = 0
+ .cache = CACHE_NEW_VS_PROG | CACHE_NEW_GS_PROG | CACHE_NEW_WM_PROG,
},
.emit = brw_update_texture_surfaces,
};
More information about the mesa-commit
mailing list