aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
diff options
context:
space:
mode:
authorPaul Berry <[email protected]>2013-08-25 08:50:57 -0700
committerPaul Berry <[email protected]>2013-08-31 17:12:53 -0700
commit5a8033f142e86ed51511c695138cacaf4532e6cf (patch)
tree1b4c66f194c53c012566acbed96d7d647132402b /src/mesa/drivers/dri/i965/brw_wm_surface_state.c
parentf560ce4a38f1316586ad2650488f1a812cfab058 (diff)
i965: Modify signature to update_texture_surface functions.
Previously these functions would accept a pointer to the binding table and an index indicating which entry in the binding table should be updated. Now they merely take a pointer to the binding table entry to be updated. This will make it easier to generalize brw_texture_surfaces to support geometry shaders. Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_wm_surface_state.c')
-rw-r--r--src/mesa/drivers/dri/i965/brw_wm_surface_state.c20
1 files changed, 9 insertions, 11 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 9f84c93266e..862989ff4f6 100644
--- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
+++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
@@ -194,8 +194,7 @@ brw_get_texture_swizzle(const struct gl_context *ctx,
static void
brw_update_buffer_texture_surface(struct gl_context *ctx,
unsigned unit,
- uint32_t *binding_table,
- unsigned surf_index)
+ uint32_t *surf_offset)
{
struct brw_context *brw = brw_context(ctx);
struct gl_texture_object *tObj = ctx->Texture.Unit[unit]._Current;
@@ -213,7 +212,7 @@ brw_update_buffer_texture_surface(struct gl_context *ctx,
}
surf = brw_state_batch(brw, AUB_TRACE_SURFACE_STATE,
- 6 * 4, 32, &binding_table[surf_index]);
+ 6 * 4, 32, surf_offset);
surf[0] = (BRW_SURFACE_BUFFER << BRW_SURFACE_TYPE_SHIFT |
(brw_format_for_mesa_format(format) << BRW_SURFACE_FORMAT_SHIFT));
@@ -226,7 +225,7 @@ brw_update_buffer_texture_surface(struct gl_context *ctx,
/* Emit relocation to surface contents. */
drm_intel_bo_emit_reloc(brw->batch.bo,
- binding_table[surf_index] + 4,
+ *surf_offset + 4,
bo, 0, I915_GEM_DOMAIN_SAMPLER, 0);
int w = intel_obj->Base.Size / texel_size;
@@ -247,8 +246,7 @@ brw_update_buffer_texture_surface(struct gl_context *ctx,
static void
brw_update_texture_surface(struct gl_context *ctx,
unsigned unit,
- uint32_t *binding_table,
- unsigned surf_index)
+ uint32_t *surf_offset)
{
struct brw_context *brw = brw_context(ctx);
struct gl_texture_object *tObj = ctx->Texture.Unit[unit]._Current;
@@ -260,12 +258,12 @@ brw_update_texture_surface(struct gl_context *ctx,
uint32_t *surf;
if (tObj->Target == GL_TEXTURE_BUFFER) {
- brw_update_buffer_texture_surface(ctx, unit, binding_table, surf_index);
+ brw_update_buffer_texture_surface(ctx, unit, surf_offset);
return;
}
surf = brw_state_batch(brw, AUB_TRACE_SURFACE_STATE,
- 6 * 4, 32, &binding_table[surf_index]);
+ 6 * 4, 32, surf_offset);
surf[0] = (translate_tex_target(tObj->Target) << BRW_SURFACE_TYPE_SHIFT |
BRW_SURFACE_MIPMAPLAYOUT_BELOW << BRW_SURFACE_MIPLAYOUT_SHIFT |
@@ -293,7 +291,7 @@ brw_update_texture_surface(struct gl_context *ctx,
/* Emit relocation to surface contents */
drm_intel_bo_emit_reloc(brw->batch.bo,
- binding_table[surf_index] + 4,
+ *surf_offset + 4,
intelObj->mt->region->bo,
surf[1] - intelObj->mt->region->bo->offset,
I915_GEM_DOMAIN_SAMPLER, 0);
@@ -763,7 +761,7 @@ brw_update_texture_surfaces(struct brw_context *brw)
/* _NEW_TEXTURE */
if (ctx->Texture.Unit[unit]._ReallyEnabled) {
brw->vtbl.update_texture_surface(ctx, unit,
- brw->vs.base.surf_offset,
+ brw->vs.base.surf_offset +
SURF_INDEX_VEC4_TEXTURE(s));
}
}
@@ -774,7 +772,7 @@ brw_update_texture_surfaces(struct brw_context *brw)
/* _NEW_TEXTURE */
if (ctx->Texture.Unit[unit]._ReallyEnabled) {
brw->vtbl.update_texture_surface(ctx, unit,
- brw->wm.surf_offset,
+ brw->wm.surf_offset +
SURF_INDEX_TEXTURE(s));
}
}