From 31aaf92b7df644515a9a6051549cd25fc4aba056 Mon Sep 17 00:00:00 2001 From: Jesse Natalie Date: Thu, 27 Jan 2022 07:58:46 -0800 Subject: [PATCH] d3d12: Fix compute transform for multi-draw indirect with dynamic count + state vars NIR validation will complain on the UBO range not being set. Fixes: 3a8c8d25 ("d3d12: Add a compute transformation to handle indirect draws that need draw params") Reviewed-by: Sil Vilerino Part-of: --- src/gallium/drivers/d3d12/d3d12_compute_transforms.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/d3d12/d3d12_compute_transforms.cpp b/src/gallium/drivers/d3d12/d3d12_compute_transforms.cpp index 69eb5771f49..19a97bcbf2b 100644 --- a/src/gallium/drivers/d3d12/d3d12_compute_transforms.cpp +++ b/src/gallium/drivers/d3d12/d3d12_compute_transforms.cpp @@ -52,7 +52,8 @@ get_indirect_draw_base_vertex_transform(const d3d12_compute_transform_key *args) nir_ssa_def *draw_id = nir_channel(&b, nir_load_global_invocation_id(&b, 32), 0); if (args->base_vertex.dynamic_count) { - nir_ssa_def *count = nir_load_ubo(&b, 1, 32, nir_imm_int(&b, 1), nir_imm_int(&b, 0)); + nir_ssa_def *count = nir_load_ubo(&b, 1, 32, nir_imm_int(&b, 1), nir_imm_int(&b, 0), + (gl_access_qualifier)0, 4, 0, 0, 4); nir_push_if(&b, nir_ilt(&b, draw_id, count)); }