Module: Mesa Branch: main Commit: 7673697256b29574471e2e128033d6f775f5365f URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7673697256b29574471e2e128033d6f775f5365f
Author: Boris Brezillon <[email protected]> Date: Wed Apr 6 01:24:33 2022 -0700 microsoft/spirv_to_dxil: Add a draw_id field to vertex_runtime_data So we can support the draw_id system value. Reviewed-by: Jesse Natalie <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15912> --- src/microsoft/spirv_to_dxil/spirv_to_dxil.c | 6 ++++++ src/microsoft/spirv_to_dxil/spirv_to_dxil.h | 1 + 2 files changed, 7 insertions(+) diff --git a/src/microsoft/spirv_to_dxil/spirv_to_dxil.c b/src/microsoft/spirv_to_dxil/spirv_to_dxil.c index 7539678072b..36a6e99f2f4 100644 --- a/src/microsoft/spirv_to_dxil/spirv_to_dxil.c +++ b/src/microsoft/spirv_to_dxil/spirv_to_dxil.c @@ -103,6 +103,9 @@ lower_shader_system_values(struct nir_builder *builder, nir_instr *instr, case nir_intrinsic_load_base_instance: offset = offsetof(struct dxil_spirv_vertex_runtime_data, base_instance); break; + case nir_intrinsic_load_draw_id: + offset = offsetof(struct dxil_spirv_vertex_runtime_data, draw_id); + break; default: return false; } @@ -527,6 +530,9 @@ spirv_to_dxil(const uint32_t *words, size_t word_count, return false; struct spirv_to_nir_options spirv_opts = { + .caps = { + .draw_parameters = true, + }, .ubo_addr_format = nir_address_format_32bit_index_offset, .ssbo_addr_format = nir_address_format_32bit_index_offset, .shared_addr_format = nir_address_format_32bit_offset_as_64bit, diff --git a/src/microsoft/spirv_to_dxil/spirv_to_dxil.h b/src/microsoft/spirv_to_dxil/spirv_to_dxil.h index cad69ef425c..8cb6ab9de48 100644 --- a/src/microsoft/spirv_to_dxil/spirv_to_dxil.h +++ b/src/microsoft/spirv_to_dxil/spirv_to_dxil.h @@ -109,6 +109,7 @@ struct dxil_spirv_vertex_runtime_data { uint16_t z_flip_mask; }; }; + uint32_t draw_id; }; enum dxil_spirv_yz_flip_mode {
