From: Eric Anholt Date: Fri, 4 Oct 2013 23:13:00 +0000 (-0700) Subject: i965: Fix texture buffer rendering after a whole buffer replacement. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c0a9436d191d24d9aea18fcca7a79674af3a782e;p=mesa.git i965: Fix texture buffer rendering after a whole buffer replacement. If glBufferData(), glBufferSubData(0, obj->Size), or similar happens, we get a new drm_intel_bo for the buffer object, and thus need to re-upload texture buffer state so we point at the new data. Fixes the new piglit GL_ARB_texture_buffer_object/data-sync Cc: "9.2" Reviewed-by: Jordan Justen --- 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 e1b5cfccf11..c7a0be59750 100644 --- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c +++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c @@ -261,6 +261,7 @@ brw_update_texture_surface(struct gl_context *ctx, struct gl_sampler_object *sampler = _mesa_get_samplerobj(ctx, unit); uint32_t *surf; + /* BRW_NEW_UNIFORM_BUFFER */ if (tObj->Target == GL_TEXTURE_BUFFER) { brw_update_buffer_texture_surface(ctx, unit, surf_offset); return; @@ -787,6 +788,7 @@ const struct brw_tracked_state brw_texture_surfaces = { .dirty = { .mesa = _NEW_TEXTURE, .brw = BRW_NEW_BATCH | + BRW_NEW_UNIFORM_BUFFER | BRW_NEW_VERTEX_PROGRAM | BRW_NEW_GEOMETRY_PROGRAM | BRW_NEW_FRAGMENT_PROGRAM,