Mesa (main): microsoft/spirv_to_dxil: vectorize IOs
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed Jun 8 15:57:27 UTC 2022
Module: Mesa
Branch: main
Commit: a4fa63a103fd8c5b936389d0ee52046f3d1b2dfe
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a4fa63a103fd8c5b936389d0ee52046f3d1b2dfe
Author: Boris Brezillon <boris.brezillon at collabora.com>
Date: Wed Jun 8 00:39:23 2022 -0700
microsoft/spirv_to_dxil: vectorize IOs
DXIL doesn't like when 2 different variables occupy the same slot, so
let's vectorize IOs to avoid that.
Reviewed-by: Jesse Natalie <jenatali at microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16221>
---
src/microsoft/spirv_to_dxil/dxil_spirv_nir.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/microsoft/spirv_to_dxil/dxil_spirv_nir.c b/src/microsoft/spirv_to_dxil/dxil_spirv_nir.c
index 80add533768..072719551e9 100644
--- a/src/microsoft/spirv_to_dxil/dxil_spirv_nir.c
+++ b/src/microsoft/spirv_to_dxil/dxil_spirv_nir.c
@@ -668,6 +668,12 @@ dxil_spirv_nir_passes(nir_shader *nir,
{
glsl_type_singleton_init_or_ref();
+ NIR_PASS_V(nir, nir_lower_io_to_vector,
+ nir_var_shader_out |
+ (nir->info.stage != MESA_SHADER_VERTEX ? nir_var_shader_in : 0));
+ NIR_PASS_V(nir, nir_opt_combine_stores, nir_var_shader_out);
+ NIR_PASS_V(nir, nir_remove_dead_derefs);
+
const struct nir_lower_sysvals_to_varyings_options sysvals_to_varyings = {
.frag_coord = true,
.point_coord = true,
More information about the mesa-commit
mailing list