r600g: TODO domain management
authorDave Airlie <airlied@redhat.com>
Mon, 4 Oct 2010 06:41:49 +0000 (16:41 +1000)
committerDave Airlie <airlied@redhat.com>
Mon, 4 Oct 2010 06:41:49 +0000 (16:41 +1000)
no wonder it was slow, the code is deliberately forcing stuff into GTT,
we used to have domain management but it seems to have disappeared.

src/gallium/winsys/r600/drm/r600_hw_context.c

index c67c93541a3b573ad9f113bc34c1689cf209e74d..0a1b3a9419045f82e16675bd89899f4bb19f9280 100644 (file)
@@ -725,8 +725,8 @@ void r600_context_bo_reloc(struct r600_context *ctx, u32 *pm4, struct radeon_bo
                }
                reloc_id = ctx->creloc * sizeof(struct r600_reloc) / 4;
                ctx->reloc[ctx->creloc].handle = bo->handle;
-               ctx->reloc[ctx->creloc].read_domain = RADEON_GEM_DOMAIN_GTT;
-               ctx->reloc[ctx->creloc].write_domain = RADEON_GEM_DOMAIN_GTT;
+               ctx->reloc[ctx->creloc].read_domain = RADEON_GEM_DOMAIN_GTT | RADEON_GEM_DOMAIN_VRAM;
+               ctx->reloc[ctx->creloc].write_domain = RADEON_GEM_DOMAIN_GTT | RADEON_GEM_DOMAIN_VRAM;
                ctx->reloc[ctx->creloc].flags = 0;
                radeon_bo_reference(ctx->radeon, &ctx->bo[ctx->creloc], bo);
                ctx->creloc++;