diff options
author | Marcin Ĺšlusarz <marcin.slusarz@intel.com> | 2022-02-11 17:28:35 +0100 |
---|---|---|
committer | Dylan Baker <dylan.c.baker@intel.com> | 2022-02-24 14:56:51 -0800 |
commit | fc450c2f544056babd4a474e2cd8164e45a78844 (patch) | |
tree | ddc0fc577962b157e8d7040707d6417cdf289f7b | |
parent | 1c3a61979b6478e3a7bd17eb2e788bd066551a20 (diff) |
intel/compiler: fix array & struct IO lowering in mesh shaders
We really need offsets to be in dwords, not in vec4s.
The bug manifests as random failure of func.mesh.clipdistance.5 crucible
test, where stores to gl_MeshVerticesNV[x].gl_ClipDistance[4+n] actually write to
gl_MeshVerticesNV[x].gl_ClipDistance[1+n].
Fixes: 1f438eb0337 ("intel/compiler: Implement Mesh Output")
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14997>
(cherry picked from commit b6557b80a50aa96ac0862bc029d72625ea4dd6db)
-rw-r--r-- | .pick_status.json | 2 | ||||
-rw-r--r-- | src/intel/compiler/brw_mesh.cpp | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/.pick_status.json b/.pick_status.json index 5a52bc6f61e..d7d5e494c16 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -526,7 +526,7 @@ "description": "intel/compiler: fix array & struct IO lowering in mesh shaders", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "1f438eb0337d662b461fd1e335cf06ff68052b6d" }, diff --git a/src/intel/compiler/brw_mesh.cpp b/src/intel/compiler/brw_mesh.cpp index c47162c9b9c..9e66553aeb0 100644 --- a/src/intel/compiler/brw_mesh.cpp +++ b/src/intel/compiler/brw_mesh.cpp @@ -465,7 +465,7 @@ brw_nir_lower_mue_outputs(nir_shader *nir, const struct brw_mue_map *map) var->data.driver_location = map->start_dw[location]; } - nir_lower_io(nir, nir_var_shader_out, type_size_vec4, + nir_lower_io(nir, nir_var_shader_out, type_size_scalar_dwords, nir_lower_io_lower_64bit_to_32); } |