gallium: use PIPE_CAP_CONSTBUF0_FLAGS
This commit is contained in:
@@ -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.
|
* Map a range of a resource.
|
||||||
* \param offset start of region, in bytes
|
* \param offset start of region, in bytes
|
||||||
|
@@ -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
|
* 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... */
|
/* 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->screen,
|
||||||
PIPE_BIND_CONSTANT_BUFFER,
|
PIPE_BIND_CONSTANT_BUFFER,
|
||||||
|
@@ -587,7 +587,7 @@ static void si_test_vmfault(struct si_screen *sscreen)
|
|||||||
struct pipe_context *ctx = sscreen->aux_context;
|
struct pipe_context *ctx = sscreen->aux_context;
|
||||||
struct si_context *sctx = (struct si_context *)ctx;
|
struct si_context *sctx = (struct si_context *)ctx;
|
||||||
struct pipe_resource *buf =
|
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) {
|
if (!buf) {
|
||||||
puts("Buffer allocation failed.");
|
puts("Buffer allocation failed.");
|
||||||
|
@@ -393,9 +393,10 @@ renderer_set_constants(struct xa_context *r,
|
|||||||
&r->fs_const_buffer;
|
&r->fs_const_buffer;
|
||||||
|
|
||||||
pipe_resource_reference(cbuf, NULL);
|
pipe_resource_reference(cbuf, NULL);
|
||||||
*cbuf = pipe_buffer_create(r->pipe->screen,
|
*cbuf = pipe_buffer_create_const0(r->pipe->screen,
|
||||||
PIPE_BIND_CONSTANT_BUFFER, PIPE_USAGE_DEFAULT,
|
PIPE_BIND_CONSTANT_BUFFER,
|
||||||
param_bytes);
|
PIPE_USAGE_DEFAULT,
|
||||||
|
param_bytes);
|
||||||
|
|
||||||
if (*cbuf) {
|
if (*cbuf) {
|
||||||
pipe_buffer_write(r->pipe, *cbuf, 0, param_bytes, params);
|
pipe_buffer_write(r->pipe, *cbuf, 0, param_bytes, params);
|
||||||
|
Reference in New Issue
Block a user