diff --git a/src/gallium/drivers/d3d12/d3d12_compute_transforms.cpp b/src/gallium/drivers/d3d12/d3d12_compute_transforms.cpp index 35e678c9175..8c27c10db8b 100644 --- a/src/gallium/drivers/d3d12/d3d12_compute_transforms.cpp +++ b/src/gallium/drivers/d3d12/d3d12_compute_transforms.cpp @@ -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) diff --git a/src/gallium/drivers/d3d12/d3d12_context.cpp b/src/gallium/drivers/d3d12/d3d12_context.cpp index 86230d04de2..aec5501d721 100644 --- a/src/gallium/drivers/d3d12/d3d12_context.cpp +++ b/src/gallium/drivers/d3d12/d3d12_context.cpp @@ -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; diff --git a/src/gallium/drivers/d3d12/d3d12_draw.cpp b/src/gallium/drivers/d3d12/d3d12_draw.cpp index 8316974a021..58b6365e229 100644 --- a/src/gallium/drivers/d3d12/d3d12_draw.cpp +++ b/src/gallium/drivers/d3d12/d3d12_draw.cpp @@ -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];