mesa/src
Corentin Noël a8d669b593 nir/split_64bit_vec3_and_vec4: Use the right number of components
Always make sure to correctly deref and store a 64bits variable
from the right number of components.

This fixes the `spec@arb_enhanced_layouts@matching_fp64_types_`
piglit tests for virgl.

Corrects this validation issue:
```
	decl_var  INTERP_MODE_FLAT dvec2[] var_7@2
	decl_var  INTERP_MODE_FLAT dvec2[] var_7@3
...
	vec1 32 ssa_302 = deref_var &var_7@2 (function_temp dvec2[])
	vec1 32 ssa_303 = deref_var &var_7@3 (function_temp dvec2[])
	vec1 32 ssa_304 = deref_array &(*ssa_302)[ssa_301] (function_temp dvec2) /* &var_7@2[ssa_301] */
	vec1 32 ssa_305 = deref_array &(*ssa_303)[ssa_301] (function_temp dvec2) /* &var_7@3[ssa_301] */
	vec1 64 ssa_306 = mov ssa_110.z
	intrinsic store_deref (ssa_305, ssa_306) (wrmask=x, access=0)
error: instr->num_components == glsl_get_vector_elements(dst->type) (../src/compiler/nir/nir_validate.c:632)

	vec4 64 ssa_111 = vec4 ssa_14, ssa_13, ssa_12, ssa_109
	vec1 32 ssa_307 = load_const (0x00000000 = 0.000000)
	vec1 32 ssa_308 = iadd ssa_307, ssa_61
	vec1 32 ssa_309 = deref_var &var_7@2 (function_temp dvec2[])
	vec1 32 ssa_310 = deref_var &var_7@3 (function_temp dvec2[])
	vec1 32 ssa_311 = deref_array &(*ssa_309)[ssa_308] (function_temp dvec2) /* &var_7@2[ssa_308] */
	vec1 32 ssa_312 = deref_array &(*ssa_310)[ssa_308] (function_temp dvec2) /* &var_7@3[ssa_308] */
	vec1 64 ssa_313 = mov ssa_111.w
	intrinsic store_deref (ssa_312, ssa_313) (wrmask=, access=0)
error: (nir_intrinsic_write_mask(instr) & ~component_mask) == 0 (../src/compiler/nir/nir_validate.c:803)
```

Fixes: 496fd59d71 (add pass to split 64 bit vec3/4 variable access)
Signed-off-by: Corentin Noël <corentin.noel@collabora.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23880>
2023-06-29 10:59:57 +00:00
..
amd amd: use imm-helpers 2023-06-29 07:08:19 +00:00
android_stub util/log: improve logger_android 2023-02-22 17:55:40 +00:00
asahi treewide: Switch to use nir_foreach_function_with_impl when possible 2023-06-29 08:36:03 +00:00
broadcom v3dv: fix blit path for compressed image to buffer copies 2023-06-29 10:13:42 +00:00
c11 treewide: Replace the usage of TRUE/FALSE with true/false 2023-06-27 18:18:28 +08:00
compiler nir/split_64bit_vec3_and_vec4: Use the right number of components 2023-06-29 10:59:57 +00:00
drm-shim drm-shim: Avoid assertion fail if someone does close(-1). 2023-06-01 01:50:41 +00:00
egl treewide: Replace the usage of TRUE/FALSE with true/false 2023-06-27 18:18:28 +08:00
etnaviv etnaviv: linker: add fallback lookup to VARYING_SLOT_BFC[n] 2023-06-27 09:26:40 +00:00
freedreno freedreno: use imm-helpers 2023-06-29 07:08:19 +00:00
gallium gallium: use imm-helpers 2023-06-29 07:08:19 +00:00
gbm gbm: drop unnecessary vulkan dependency 2023-02-23 18:31:22 +00:00
getopt
glx treewide: Replace the usage of TRUE/FALSE with true/false 2023-06-27 18:18:28 +08:00
gtest gtest: Update to 1.13.0 2023-05-14 11:09:02 +00:00
imagination pvr: Rename rogue_fw.xml -> rogue_kmd_stream.xml. 2023-06-28 22:26:07 +00:00
imgui
intel Revert "isl: Set Depth to array len for 3D storage images" 2023-06-29 10:32:20 +00:00
loader dri3: only invalidate drawables on geometry change if geometry has changed 2023-06-15 12:22:24 +00:00
mapi mapi: Remove dead struct _glapi_function in glapi/glapi_getproc.c 2023-06-29 01:36:09 +00:00
mesa mesa/st: use imm-helpers 2023-06-29 07:08:19 +00:00
microsoft d3d12: use imm-helpers 2023-06-29 07:08:19 +00:00
nouveau nv50/ir/nir: set numBarriers if we emit an OP_BAR 2023-06-24 02:12:14 +00:00
panfrost pan: use imm-helpers 2023-06-29 07:08:18 +00:00
tool meson: remove needless c++17-overrides 2023-05-19 12:45:31 +00:00
util util: sizeof bucket are always 32bit width, use align instead align64 2023-06-29 00:45:31 +00:00
virtio venus: Fix detection of push descriptor set 2023-06-22 20:37:01 +00:00
vulkan vulkan: avoid needless constant-folding 2023-06-29 07:08:18 +00:00
.clang-format clang-format: Add nir_foreach_function_impl into src/.clang-format 2023-06-29 08:36:03 +00:00
meson.build hgl: remove 2023-02-18 00:44:43 +00:00