From 674452faf98d6f107c42bcb0c56a2a6ac6890023 Mon Sep 17 00:00:00 2001 From: Jerome Glisse Date: Mon, 4 Oct 2010 10:37:32 -0400 Subject: r600g: use r600_bo for relocation argument, simplify code Signed-off-by: Jerome Glisse --- src/gallium/winsys/r600/drm/r600_priv.h | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'src/gallium/winsys/r600/drm/r600_priv.h') diff --git a/src/gallium/winsys/r600/drm/r600_priv.h b/src/gallium/winsys/r600/drm/r600_priv.h index 4bd2c278bc..5c954ea621 100644 --- a/src/gallium/winsys/r600/drm/r600_priv.h +++ b/src/gallium/winsys/r600/drm/r600_priv.h @@ -68,6 +68,7 @@ struct radeon_bo { struct r600_bo { struct pipe_reference reference; struct pb_buffer *pb; + unsigned size; }; @@ -78,8 +79,6 @@ unsigned radeon_family_from_device(unsigned device); struct radeon *radeon_decref(struct radeon *radeon); /* radeon_bo.c */ -struct radeon_bo *radeon_bo_pb_get_bo(struct pb_buffer *_buf); -void r600_context_bo_reloc(struct r600_context *ctx, u32 *pm4, struct radeon_bo *bo); struct radeon_bo *radeon_bo(struct radeon *radeon, unsigned handle, unsigned size, unsigned alignment, void *ptr); void radeon_bo_reference(struct radeon *radeon, struct radeon_bo **dst, @@ -89,13 +88,23 @@ int radeon_bo_busy(struct radeon *radeon, struct radeon_bo *bo, uint32_t *domain void radeon_bo_pbmgr_flush_maps(struct pb_manager *_mgr); /* radeon_bo_pb.c */ +struct radeon_bo *radeon_bo_pb_get_bo(struct pb_buffer *_buf); struct pb_manager *radeon_bo_pbmgr_create(struct radeon *radeon); struct pb_buffer *radeon_bo_pb_create_buffer_from_handle(struct pb_manager *_mgr, uint32_t handle); +/* r600_hw_context.c */ +void r600_context_bo_reloc(struct r600_context *ctx, u32 *pm4, struct r600_bo *rbo); +struct r600_bo *r600_context_reg_bo(struct r600_context *ctx, unsigned offset); +int r600_context_add_block(struct r600_context *ctx, const struct r600_reg *reg, unsigned nreg); + /* r600_bo.c */ unsigned r600_bo_get_handle(struct r600_bo *bo); unsigned r600_bo_get_size(struct r600_bo *bo); +static INLINE struct radeon_bo *r600_bo_get_bo(struct r600_bo *bo) +{ + return radeon_bo_pb_get_bo(bo->pb); +} #define CTX_RANGE_ID(ctx, offset) (((offset) >> (ctx)->hash_shift) & 255) #define CTX_BLOCK_ID(ctx, offset) ((offset) & ((1 << (ctx)->hash_shift) - 1)) @@ -122,18 +131,16 @@ static void inline r600_context_reg(struct r600_context *ctx, static inline void r600_context_block_emit_dirty(struct r600_context *ctx, struct r600_block *block) { - struct radeon_bo *bo; int id; for (int j = 0; j < block->nreg; j++) { if (block->pm4_bo_index[j]) { /* find relocation */ id = block->pm4_bo_index[j]; - bo = radeon_bo_pb_get_bo(block->reloc[id].bo->pb); for (int k = 0; k < block->reloc[id].nreloc; k++) { r600_context_bo_reloc(ctx, &block->pm4[block->reloc[id].bo_pm4_index[k]], - bo); + block->reloc[id].bo); } } } -- cgit v1.2.3