diff options
author | Kenneth Graunke <[email protected]> | 2013-11-01 20:05:27 -0700 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2013-11-05 17:59:53 -0800 |
commit | 39ebb72e52779b2975bfea3f08b91b7409f4a95c (patch) | |
tree | 2560f6a877421796014d17e117fafc4e3891399c /src/mesa/drivers/dri/i965 | |
parent | 7a974a645e8b5c6a9aca3cc935a5a95cd9f33af8 (diff) |
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 <[email protected]>
Reviewed-by: Paul Berry <[email protected]>
Diffstat (limited to 'src/mesa/drivers/dri/i965')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_context.h | 3 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_wm_surface_state.c | 2 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/gen7_wm_surface_state.c | 40 |
3 files changed, 5 insertions, 40 deletions
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 @@ -268,44 +268,6 @@ gen7_emit_buffer_surface_state(struct brw_context *brw, } 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, uint32_t *surf_offset, @@ -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; } |