mesa/src/microsoft/compiler
Jesse Natalie 128caf94ca microsoft/compiler: Put holes in driver_location based on I/O variable sizes
DXIL requires that each I/O variable has a unique semantic name, but when
dealing with semantics that take up multiple slots, that variable implicitly
takes up multiple names. So when assigning driver_location, we need to do
the same.

That means also updating outputs and patch constants to have a mapping from
driver_location to a compacted index, since the metadata arrays *can't* have
holes.

This would be simpler if we could hang it off the nir_variable but there's
not really any free fields to be able to do that. We only need this compacted
mapping inside the DXIL backend anyway so we can just store the array in the
module.

Tested-by: Benjamin Otte <otte@gnome.org>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12128
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32047>
2024-12-02 22:40:39 +00:00
..
dxcapi.h
dxil_buffer.c
dxil_buffer.h
dxil_buffer_test.c
dxil_container.c microsoft/compiler: Disable GS streams workaround for validator 1.8 2024-03-25 19:11:35 +00:00
dxil_container.h
dxil_dump.c microsoft/compiler: Fix printf formatting string issues 2023-09-22 10:47:33 -07:00
dxil_dump.h
dxil_dump_decls.h
dxil_enums.c microsoft/compiler: Simplify I/O component type enum handling 2024-04-04 20:29:10 +00:00
dxil_enums.h microsoft/compiler: Simplify I/O component type enum handling 2024-04-04 20:29:10 +00:00
dxil_function.c microsoft/compiler: Handle base vertex/instance sysvals as DXIL intrinsics 2024-04-05 00:25:41 +00:00
dxil_function.h
dxil_internal.h microsoft/compiler: Support vec/struct const vals 2023-06-13 00:43:36 +00:00
dxil_module.c d3d12: Fix leak dxil_module::serialized_dependency_table 2024-04-03 14:50:28 +00:00
dxil_module.h microsoft/compiler: Put holes in driver_location based on I/O variable sizes 2024-12-02 22:40:39 +00:00
dxil_nir.c microsoft/compiler: Put holes in driver_location based on I/O variable sizes 2024-12-02 22:40:39 +00:00
dxil_nir.h microsoft/compiler: Add a fractional var mask for variable sorting 2024-04-04 20:29:11 +00:00
dxil_nir_algebraic.py microsoft: Stop claiming dot_4x8_sat support 2023-12-06 23:15:33 +00:00
dxil_nir_lower_int_cubemaps.c nir: replace use of nir_src_copy() 2023-09-08 03:01:39 +00:00
dxil_nir_lower_int_cubemaps.h
dxil_nir_lower_int_samplers.c micosoft: define enum dxil_tex_wrap to avoid the usage of enum pipe_tex_wrap 2023-11-04 00:02:59 +00:00
dxil_nir_lower_int_samplers.h micosoft: define enum dxil_tex_wrap to avoid the usage of enum pipe_tex_wrap 2023-11-04 00:02:59 +00:00
dxil_nir_lower_vs_vertex_conversion.c nir: Drop nir_dest 2023-08-14 21:22:53 +00:00
dxil_nir_tess.c treewide: use nir_break_if 2024-06-26 19:07:35 +00:00
dxil_signature.c microsoft/compiler: Put holes in driver_location based on I/O variable sizes 2024-12-02 22:40:39 +00:00
dxil_signature.h microsoft/compiler: Bump signature limits for 32 rows of 4 components 2023-11-14 00:18:52 +00:00
dxil_validator.cpp microsoft/compiler: Declare shader model 6.8 / validator 1.8 2024-01-20 00:07:15 +00:00
dxil_validator.h
dxil_versions.h microsoft/compiler: Declare shader model 6.8 / validator 1.8 2024-01-20 00:07:15 +00:00
meson.build build: pass licensing information in SPDX form 2024-06-29 12:42:49 -07:00
nir_to_dxil.c microsoft/compiler: Put holes in driver_location based on I/O variable sizes 2024-12-02 22:40:39 +00:00
nir_to_dxil.h d3d12: Lower uniforms to UBO by nir options 2024-04-04 20:29:11 +00:00