aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2018-01-27 02:05:23 +0100
committerMarek Olšák <[email protected]>2018-02-17 04:20:55 +0100
commit16be55da94ea5e68edc1da8b354402d85306ab20 (patch)
treed9e1b48f7fbaa40e019526a6b84c8e928aefc378 /src/gallium
parent8e7222f4e5d624313bf972637d22b49fc7200383 (diff)
gallium: use PIPE_CAP_CONSTBUF0_FLAGS
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/auxiliary/util/u_inlines.h21
-rw-r--r--src/gallium/auxiliary/vl/vl_compositor.c2
-rw-r--r--src/gallium/drivers/radeonsi/si_pipe.c2
-rw-r--r--src/gallium/state_trackers/xa/xa_renderer.c7
4 files changed, 27 insertions, 5 deletions
diff --git a/src/gallium/auxiliary/util/u_inlines.h b/src/gallium/auxiliary/util/u_inlines.h
index 4ba6ad72b62..4bd9b7e3c62 100644
--- a/src/gallium/auxiliary/util/u_inlines.h
+++ b/src/gallium/auxiliary/util/u_inlines.h
@@ -284,6 +284,27 @@ pipe_buffer_create( struct pipe_screen *screen,
}
+static inline struct pipe_resource *
+pipe_buffer_create_const0(struct pipe_screen *screen,
+ unsigned bind,
+ enum pipe_resource_usage usage,
+ unsigned size)
+{
+ struct pipe_resource buffer;
+ memset(&buffer, 0, sizeof buffer);
+ buffer.target = PIPE_BUFFER;
+ buffer.format = PIPE_FORMAT_R8_UNORM;
+ buffer.bind = bind;
+ buffer.usage = usage;
+ buffer.flags = screen->get_param(screen, PIPE_CAP_CONSTBUF0_FLAGS);
+ buffer.width0 = size;
+ buffer.height0 = 1;
+ buffer.depth0 = 1;
+ buffer.array_size = 1;
+ return screen->resource_create(screen, &buffer);
+}
+
+
/**
* Map a range of a resource.
* \param offset start of region, in bytes
diff --git a/src/gallium/auxiliary/vl/vl_compositor.c b/src/gallium/auxiliary/vl/vl_compositor.c
index 67ad7f5beea..725bfd9126e 100644
--- a/src/gallium/auxiliary/vl/vl_compositor.c
+++ b/src/gallium/auxiliary/vl/vl_compositor.c
@@ -1437,7 +1437,7 @@ vl_compositor_init_state(struct vl_compositor_state *s, struct pipe_context *pip
* Const buffer contains the color conversion matrix and bias vectors
*/
/* XXX: Create with IMMUTABLE/STATIC... although it does change every once in a long while... */
- s->csc_matrix = pipe_buffer_create
+ s->csc_matrix = pipe_buffer_create_const0
(
pipe->screen,
PIPE_BIND_CONSTANT_BUFFER,
diff --git a/src/gallium/drivers/radeonsi/si_pipe.c b/src/gallium/drivers/radeonsi/si_pipe.c
index 31805574842..11915453082 100644
--- a/src/gallium/drivers/radeonsi/si_pipe.c
+++ b/src/gallium/drivers/radeonsi/si_pipe.c
@@ -587,7 +587,7 @@ static void si_test_vmfault(struct si_screen *sscreen)
struct pipe_context *ctx = sscreen->aux_context;
struct si_context *sctx = (struct si_context *)ctx;
struct pipe_resource *buf =
- pipe_buffer_create(&sscreen->b, 0, PIPE_USAGE_DEFAULT, 64);
+ pipe_buffer_create_const0(&sscreen->b, 0, PIPE_USAGE_DEFAULT, 64);
if (!buf) {
puts("Buffer allocation failed.");
diff --git a/src/gallium/state_trackers/xa/xa_renderer.c b/src/gallium/state_trackers/xa/xa_renderer.c
index bc55f877c48..27497d3d659 100644
--- a/src/gallium/state_trackers/xa/xa_renderer.c
+++ b/src/gallium/state_trackers/xa/xa_renderer.c
@@ -393,9 +393,10 @@ renderer_set_constants(struct xa_context *r,
&r->fs_const_buffer;
pipe_resource_reference(cbuf, NULL);
- *cbuf = pipe_buffer_create(r->pipe->screen,
- PIPE_BIND_CONSTANT_BUFFER, PIPE_USAGE_DEFAULT,
- param_bytes);
+ *cbuf = pipe_buffer_create_const0(r->pipe->screen,
+ PIPE_BIND_CONSTANT_BUFFER,
+ PIPE_USAGE_DEFAULT,
+ param_bytes);
if (*cbuf) {
pipe_buffer_write(r->pipe, *cbuf, 0, param_bytes, params);