freedreno/ir3: Make sure we run the opt loop after lowering UBOs to vec4.
authorEric Anholt <eric@anholt.net>
Mon, 14 Sep 2020 20:13:47 +0000 (13:13 -0700)
committerMarge Bot <eric+marge@anholt.net>
Wed, 30 Sep 2020 19:53:43 +0000 (19:53 +0000)
The lowering pass may introduce vector bcsels that we need to scalarize
back out.  It's unusual to have UBOs and not get any lowered to push
constants, so the flag was usually set anyway.

Fixes: 2b2524099379 ("freedreno/ir3: Replace our custom vec4 UBO intrinsic
with the shared lowering.")

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6612>

src/freedreno/ir3/ir3_nir.c

index 9b40616..64daa68 100644 (file)
@@ -471,7 +471,7 @@ ir3_nir_lower_variant(struct ir3_shader_variant *so, nir_shader *s)
         * be left as load_ubo
         */
        if (so->shader->compiler->gpu_id >= 600)
-               OPT_V(s, nir_lower_ubo_vec4);
+               progress |= OPT(s, nir_lower_ubo_vec4);
 
        OPT_V(s, ir3_nir_lower_io_offsets, so->shader->compiler->gpu_id);