d3d12: Compute transform UBO0 is actually binding 1

Since lower_uniforms_to_ubo will unconditionally increment UBO indices
from 0 to 1.

Reviewed-by: Sil Vilerino <sivileri@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14787>
This commit is contained in:
Jesse Natalie 2022-01-27 09:08:04 -08:00
parent 317c870f0f
commit 8875a2fb25
3 changed files with 5 additions and 5 deletions

View file

@ -314,8 +314,8 @@ d3d12_save_compute_transform_state(struct d3d12_context *ctx, d3d12_compute_tran
memset(save, 0, sizeof(*save));
save->cs = ctx->compute_state;
pipe_resource_reference(&save->cbuf0.buffer, ctx->cbufs[PIPE_SHADER_COMPUTE][0].buffer);
save->cbuf0 = ctx->cbufs[PIPE_SHADER_COMPUTE][0];
pipe_resource_reference(&save->cbuf0.buffer, ctx->cbufs[PIPE_SHADER_COMPUTE][1].buffer);
save->cbuf0 = ctx->cbufs[PIPE_SHADER_COMPUTE][1];
for (unsigned i = 0; i < ARRAY_SIZE(save->ssbos); ++i) {
pipe_resource_reference(&save->ssbos[i].buffer, ctx->ssbo_views[PIPE_SHADER_COMPUTE][i].buffer);
@ -328,7 +328,7 @@ d3d12_restore_compute_transform_state(struct d3d12_context *ctx, d3d12_compute_t
{
ctx->base.bind_compute_state(&ctx->base, save->cs);
ctx->base.set_constant_buffer(&ctx->base, PIPE_SHADER_COMPUTE, 0, true, &save->cbuf0);
ctx->base.set_constant_buffer(&ctx->base, PIPE_SHADER_COMPUTE, 1, true, &save->cbuf0);
ctx->base.set_shader_buffers(&ctx->base, PIPE_SHADER_COMPUTE, 0, ARRAY_SIZE(save->ssbos), save->ssbos, (1u << ARRAY_SIZE(save->ssbos)) - 1);
if (ctx->current_predication)

View file

@ -1878,7 +1878,7 @@ d3d12_disable_fake_so_buffers(struct d3d12_context *ctx)
cbuf.buffer = fake_target->fill_buffer;
cbuf.buffer_offset = fake_target->fill_buffer_offset;
cbuf.buffer_size = fake_target->fill_buffer->width0 - cbuf.buffer_offset;
ctx->base.set_constant_buffer(&ctx->base, PIPE_SHADER_COMPUTE, 0, true, &cbuf);
ctx->base.set_constant_buffer(&ctx->base, PIPE_SHADER_COMPUTE, 1, true, &cbuf);
grid.indirect = fake_target->fill_buffer;
grid.indirect_offset = fake_target->fill_buffer_offset + 4;

View file

@ -780,7 +780,7 @@ update_draw_indirect_with_sysvals(struct d3d12_context *ctx,
draw_count_cbuf.buffer_offset = indirect_in->indirect_draw_count_offset;
draw_count_cbuf.buffer_size = 4;
draw_count_cbuf.user_buffer = nullptr;
ctx->base.set_constant_buffer(&ctx->base, PIPE_SHADER_COMPUTE, 0, true, &draw_count_cbuf);
ctx->base.set_constant_buffer(&ctx->base, PIPE_SHADER_COMPUTE, 1, true, &draw_count_cbuf);
}
pipe_shader_buffer new_cs_ssbos[2];