summaryrefslogtreecommitdiff
path: root/src/gallium/winsys/r600/drm/r600_priv.h
diff options
context:
space:
mode:
authorJerome Glisse <jglisse@redhat.com>2010-10-05 15:23:07 -0400
committerJerome Glisse <jglisse@redhat.com>2010-10-05 15:23:07 -0400
commit2cf3199ee3b0014bc426bc3163dfa279c00eabb3 (patch)
tree44c77c596395483ee1d01883b0a420be9eae7650 /src/gallium/winsys/r600/drm/r600_priv.h
parentac8a1ebe55b08180945ffaebcff6b3bed336c9ec (diff)
r600g: simplify block relocation
Since flush rework there could be only one relocation per register in a block. Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Diffstat (limited to 'src/gallium/winsys/r600/drm/r600_priv.h')
-rw-r--r--src/gallium/winsys/r600/drm/r600_priv.h14
1 files changed, 6 insertions, 8 deletions
diff --git a/src/gallium/winsys/r600/drm/r600_priv.h b/src/gallium/winsys/r600/drm/r600_priv.h
index 9a38cc51f7..ea2cf34778 100644
--- a/src/gallium/winsys/r600/drm/r600_priv.h
+++ b/src/gallium/winsys/r600/drm/r600_priv.h
@@ -149,15 +149,13 @@ static inline void r600_context_block_emit_dirty(struct r600_context *ctx, struc
if (block->pm4_bo_index[j]) {
/* find relocation */
id = block->pm4_bo_index[j];
- for (int k = 0; k < block->reloc[id].nreloc; k++) {
- r600_context_bo_reloc(ctx,
- &block->pm4[block->reloc[id].bo_pm4_index[k]],
+ r600_context_bo_reloc(ctx,
+ &block->pm4[block->reloc[id].bo_pm4_index],
+ block->reloc[id].bo);
+ r600_context_bo_flush(ctx,
+ block->reloc[id].flush_flags,
+ block->reloc[id].flush_mask,
block->reloc[id].bo);
- r600_context_bo_flush(ctx,
- block->reloc[id].flush_flags,
- block->reloc[id].flush_mask,
- block->reloc[id].bo);
- }
}
}
memcpy(&ctx->pm4[ctx->pm4_cdwords], block->pm4, block->pm4_ndwords * 4);