radv: implement nir_load_barycentric_optimize_amd
authorQiang Yu <yuq825@gmail.com>
Wed, 29 Mar 2023 07:28:28 +0000 (15:28 +0800)
committerMarge Bot <emma+marge@anholt.net>
Wed, 26 Apr 2023 03:27:26 +0000 (03:27 +0000)
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22199>

src/amd/vulkan/nir/radv_nir_lower_abi.c

index 3b23fce..b5ebccf 100644 (file)
@@ -454,6 +454,12 @@ lower_abi_instr(nir_builder *b, nir_instr *instr, void *state)
       replacement = nir_ine_imm(b, sample_coverage, 0);
       break;
    }
+   case nir_intrinsic_load_barycentric_optimize_amd: {
+      nir_ssa_def *prim_mask = ac_nir_load_arg(b, &s->args->ac, s->args->ac.prim_mask);
+      /* enabled when bit 31 is set */
+      replacement = nir_ilt(b, prim_mask, nir_imm_int(b, 0));
+      break;
+   }
    default:
       progress = false;
       break;