diff options
Diffstat (limited to 'src/gallium/auxiliary/util')
-rw-r--r-- | src/gallium/auxiliary/util/u_threaded_context.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/gallium/auxiliary/util/u_threaded_context.c b/src/gallium/auxiliary/util/u_threaded_context.c index bd2c8f57a10..fc448908564 100644 --- a/src/gallium/auxiliary/util/u_threaded_context.c +++ b/src/gallium/auxiliary/util/u_threaded_context.c @@ -890,6 +890,7 @@ tc_set_shader_images(struct pipe_context *_pipe, struct tc_shader_buffers { ubyte shader, start, count; bool unbind; + unsigned writable_bitmask; struct pipe_shader_buffer slot[0]; /* more will be allocated if needed */ }; @@ -900,11 +901,12 @@ tc_call_set_shader_buffers(struct pipe_context *pipe, union tc_payload *payload) unsigned count = p->count; if (p->unbind) { - pipe->set_shader_buffers(pipe, p->shader, p->start, p->count, NULL); + pipe->set_shader_buffers(pipe, p->shader, p->start, p->count, NULL, 0); return; } - pipe->set_shader_buffers(pipe, p->shader, p->start, p->count, p->slot); + pipe->set_shader_buffers(pipe, p->shader, p->start, p->count, p->slot, + p->writable_bitmask); for (unsigned i = 0; i < count; i++) pipe_resource_reference(&p->slot[i].buffer, NULL); @@ -914,7 +916,8 @@ static void tc_set_shader_buffers(struct pipe_context *_pipe, enum pipe_shader_type shader, unsigned start, unsigned count, - const struct pipe_shader_buffer *buffers) + const struct pipe_shader_buffer *buffers, + unsigned writable_bitmask) { if (!count) return; @@ -928,6 +931,7 @@ tc_set_shader_buffers(struct pipe_context *_pipe, p->start = start; p->count = count; p->unbind = buffers == NULL; + p->writable_bitmask = writable_bitmask; if (buffers) { for (unsigned i = 0; i < count; i++) { |