summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/r600/r600_buffer.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2010-09-08 08:41:57 +1000
committerDave Airlie <airlied@redhat.com>2010-09-08 08:41:57 +1000
commitd42efb9e8df6ef872ab4f142e3daf1b6cb9eff11 (patch)
treebd6cd1754fdddb6a730ad4fe61478187419df78e /src/gallium/drivers/r600/r600_buffer.c
parent9ef1c51be16ea360481cf9f82ebb1e3eb01efb18 (diff)
r600g: add support for constants in memory buffers.
DX9 constants were in the constant file, and evergreen no longer support cfile. r600/700 can also use constants in memory buffers, so add the code (disabled for now) to enable that as precursor for evergreen.
Diffstat (limited to 'src/gallium/drivers/r600/r600_buffer.c')
-rw-r--r--src/gallium/drivers/r600/r600_buffer.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/gallium/drivers/r600/r600_buffer.c b/src/gallium/drivers/r600/r600_buffer.c
index 7829a479c2..d8188ae656 100644
--- a/src/gallium/drivers/r600/r600_buffer.c
+++ b/src/gallium/drivers/r600/r600_buffer.c
@@ -56,6 +56,9 @@ u32 r600_domain_from_usage(unsigned usage)
if (usage & PIPE_BIND_INDEX_BUFFER) {
domain |= RADEON_GEM_DOMAIN_GTT;
}
+ if (usage & PIPE_BIND_CONSTANT_BUFFER) {
+ domain |= RADEON_GEM_DOMAIN_VRAM;
+ }
return domain;
}
@@ -79,7 +82,7 @@ struct pipe_resource *r600_buffer_create(struct pipe_screen *screen,
rbuffer->base.b.screen = screen;
rbuffer->base.vtbl = &r600_buffer_vtbl;
- if (rbuffer->base.b.bind & PIPE_BIND_CONSTANT_BUFFER) {
+ if ((rscreen->use_mem_constant == FALSE) && (rbuffer->base.b.bind & PIPE_BIND_CONSTANT_BUFFER)) {
desc.alignment = alignment;
desc.usage = rbuffer->base.b.bind;
rbuffer->pb = pb_malloc_buffer_create(rbuffer->base.b.width0,