ntt: Split 64 bit vec3 and vec4 local variables and phis

Fixes virgl with with ntt:
   spec@arb_enhanced_layouts@execution@component-layout@vs-fs-array-dvec3
   spec@arb_gpu_shader_fp64@uniform_buffers@fs-array-copy
   spec@arb_gpu_shader_fp64@uniform_buffers@gs-array-copy
   spec@arb_gpu_shader_fp64@uniform_buffers@vs-array-copy
   spec@arb_gpu_shader_fp64@execution@gs-fs-vs-double
   spec@arb_gpu_shader_fp64@execution@built-in-functions@fs-frexp-dvec4-variable-index
   spec@arb_gpu_shader_fp64@execution@explicit-location-gs-fs-vs
   spec@arb_gpu_shader_fp64@execution@built-in-functions@fs-frexp-dvec4-variable-index

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15945>
This commit is contained in:
Gert Wollny 2022-04-20 12:04:26 +02:00 committed by Marge Bot
parent 496fd59d71
commit a501b3b614

View file

@ -3167,6 +3167,7 @@ ntt_optimize_nir(struct nir_shader *s, struct pipe_screen *screen)
progress = false;
NIR_PASS_V(s, nir_lower_vars_to_ssa);
NIR_PASS_V(s, nir_split_64bit_vec3_and_vec4);
NIR_PASS(progress, s, nir_copy_prop);
NIR_PASS(progress, s, nir_opt_algebraic);