summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Olšák <maraeo@gmail.com>2011-02-08 15:20:11 +0100
committerMarek Olšák <maraeo@gmail.com>2011-02-08 15:20:11 +0100
commit1ee71bdc8a8471357cee6a1cf2fbaac6a70bb86c (patch)
treee8175d89d846ae2f7e9f7ed2831a3da72d99e3a8
parent7628c4ecb6e87dbe900d1d68feca33626c8fbfc0 (diff)
u_vbuf_mgr: add a way to specify the BIND flag for the upload buffer
-rw-r--r--src/gallium/auxiliary/util/u_vbuf_mgr.c3
-rw-r--r--src/gallium/auxiliary/util/u_vbuf_mgr.h1
-rw-r--r--src/gallium/drivers/r300/r300_context.c1
-rw-r--r--src/gallium/drivers/r600/r600_pipe.c1
4 files changed, 5 insertions, 1 deletions
diff --git a/src/gallium/auxiliary/util/u_vbuf_mgr.c b/src/gallium/auxiliary/util/u_vbuf_mgr.c
index 7ebea7e99c..ca3b4dc4c4 100644
--- a/src/gallium/auxiliary/util/u_vbuf_mgr.c
+++ b/src/gallium/auxiliary/util/u_vbuf_mgr.c
@@ -114,6 +114,7 @@ struct u_vbuf_mgr *
u_vbuf_mgr_create(struct pipe_context *pipe,
unsigned upload_buffer_size,
unsigned upload_buffer_alignment,
+ unsigned upload_buffer_bind,
enum u_fetch_alignment fetch_alignment)
{
struct u_vbuf_mgr_priv *mgr = CALLOC_STRUCT(u_vbuf_mgr_priv);
@@ -123,7 +124,7 @@ u_vbuf_mgr_create(struct pipe_context *pipe,
mgr->b.uploader = u_upload_create(pipe, upload_buffer_size,
upload_buffer_alignment,
- PIPE_BIND_VERTEX_BUFFER);
+ upload_buffer_bind);
mgr->caps.fetch_dword_unaligned =
fetch_alignment == U_VERTEX_FETCH_BYTE_ALIGNED;
diff --git a/src/gallium/auxiliary/util/u_vbuf_mgr.h b/src/gallium/auxiliary/util/u_vbuf_mgr.h
index 068459af4c..8b241854c8 100644
--- a/src/gallium/auxiliary/util/u_vbuf_mgr.h
+++ b/src/gallium/auxiliary/util/u_vbuf_mgr.h
@@ -83,6 +83,7 @@ struct u_vbuf_mgr *
u_vbuf_mgr_create(struct pipe_context *pipe,
unsigned upload_buffer_size,
unsigned upload_buffer_alignment,
+ unsigned upload_buffer_bind,
enum u_fetch_alignment fetch_alignment);
void u_vbuf_mgr_destroy(struct u_vbuf_mgr *mgr);
diff --git a/src/gallium/drivers/r300/r300_context.c b/src/gallium/drivers/r300/r300_context.c
index b8b7afa9c2..7e0c068ff3 100644
--- a/src/gallium/drivers/r300/r300_context.c
+++ b/src/gallium/drivers/r300/r300_context.c
@@ -434,6 +434,7 @@ struct pipe_context* r300_create_context(struct pipe_screen* screen,
r300_init_resource_functions(r300);
r300->vbuf_mgr = u_vbuf_mgr_create(&r300->context, 1024 * 1024, 16,
+ PIPE_BIND_VERTEX_BUFFER,
U_VERTEX_FETCH_DWORD_ALIGNED);
if (!r300->vbuf_mgr)
goto fail;
diff --git a/src/gallium/drivers/r600/r600_pipe.c b/src/gallium/drivers/r600/r600_pipe.c
index ad609fbdfa..9826bf42ac 100644
--- a/src/gallium/drivers/r600/r600_pipe.c
+++ b/src/gallium/drivers/r600/r600_pipe.c
@@ -166,6 +166,7 @@ static struct pipe_context *r600_create_context(struct pipe_screen *screen, void
}
rctx->vbuf_mgr = u_vbuf_mgr_create(&rctx->context, 1024 * 1024, 16,
+ PIPE_BIND_VERTEX_BUFFER,
U_VERTEX_FETCH_BYTE_ALIGNED);
if (!rctx->vbuf_mgr) {
r600_destroy_context(&rctx->context);