From: Kenneth Graunke Date: Sat, 2 Nov 2013 03:05:27 +0000 (-0700) Subject: i965: Combine {brw,gen7}_update_texture_buffer_surface() functions. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=39ebb72e52779b2975bfea3f08b91b7409f4a95c;p=mesa.git i965: Combine {brw,gen7}_update_texture_buffer_surface() functions. Now that brw_update_texture_buffer_surface() uses the virtual emit_buffer_surface_state() function, it works for Gen7+ too. Signed-off-by: Kenneth Graunke Reviewed-by: Paul Berry --- diff --git a/src/mesa/drivers/dri/i965/brw_context.h b/src/mesa/drivers/dri/i965/brw_context.h index c15f8a41798..ffbfcaa0a58 100644 --- a/src/mesa/drivers/dri/i965/brw_context.h +++ b/src/mesa/drivers/dri/i965/brw_context.h @@ -1577,6 +1577,9 @@ void brw_create_constant_surface(struct brw_context *brw, uint32_t size, uint32_t *out_offset, bool dword_pitch); +void brw_update_buffer_texture_surface(struct gl_context *ctx, + unsigned unit, + uint32_t *surf_offset); void brw_update_sol_surface(struct brw_context *brw, struct gl_buffer_object *buffer_obj, 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 5a60a6bfe0b..20886888ef4 100644 --- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c +++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c @@ -226,7 +226,7 @@ gen4_emit_buffer_surface_state(struct brw_context *brw, } } -static void +void brw_update_buffer_texture_surface(struct gl_context *ctx, unsigned unit, uint32_t *surf_offset) diff --git a/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c b/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c index c52e12dd508..3f4817d9ff3 100644 --- a/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c +++ b/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c @@ -267,44 +267,6 @@ gen7_emit_buffer_surface_state(struct brw_context *brw, gen7_check_surface_setup(surf, false /* is_render_target */); } -static void -gen7_update_buffer_texture_surface(struct gl_context *ctx, - unsigned unit, - uint32_t *surf_offset) -{ - struct brw_context *brw = brw_context(ctx); - struct gl_texture_object *tObj = ctx->Texture.Unit[unit]._Current; - struct intel_buffer_object *intel_obj = - intel_buffer_object(tObj->BufferObject); - uint32_t size = tObj->BufferSize; - drm_intel_bo *bo = NULL; - - if (intel_obj) { - size = MIN2(size, intel_obj->Base.Size); - bo = intel_bufferobj_buffer(brw, intel_obj, tObj->BufferOffset, size); - } - - gl_format format = tObj->_BufferObjectFormat; - - uint32_t surface_format = brw_format_for_mesa_format(format); - if (surface_format == 0 && format != MESA_FORMAT_RGBA_FLOAT32) { - _mesa_problem(NULL, "bad format %s for texture buffer\n", - _mesa_get_format_name(format)); - } - - int texel_size = _mesa_get_format_bytes(format); - - gen7_emit_buffer_surface_state(brw, - surf_offset, - bo, - tObj->BufferOffset, - surface_format, - size / texel_size, - texel_size, - 0 /* mocs */, - false /* rw */); -} - static void gen7_update_texture_surface(struct gl_context *ctx, unsigned unit, @@ -319,7 +281,7 @@ gen7_update_texture_surface(struct gl_context *ctx, struct gl_sampler_object *sampler = _mesa_get_samplerobj(ctx, unit); if (tObj->Target == GL_TEXTURE_BUFFER) { - gen7_update_buffer_texture_surface(ctx, unit, surf_offset); + brw_update_buffer_texture_surface(ctx, unit, surf_offset); return; }