gallivm: add support for load_view_index intrinsic
authorDave Airlie <airlied@redhat.com>
Thu, 4 Mar 2021 03:54:24 +0000 (13:54 +1000)
committerMarge Bot <eric+marge@anholt.net>
Fri, 12 Mar 2021 05:05:51 +0000 (05:05 +0000)
This just adds the system value

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9399>

src/gallium/auxiliary/gallivm/lp_bld_nir.c
src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c
src/gallium/auxiliary/gallivm/lp_bld_tgsi.h

index 7a208c3..c02970f 100644 (file)
@@ -1679,6 +1679,7 @@ static void visit_intrinsic(struct lp_build_nir_context *bld_base,
    case nir_intrinsic_load_sample_id:
    case nir_intrinsic_load_sample_pos:
    case nir_intrinsic_load_sample_mask_in:
+   case nir_intrinsic_load_view_index:
       bld_base->sysval_intrin(bld_base, instr, result);
       break;
    case nir_intrinsic_load_helper_invocation:
index 7d4820d..1160722 100644 (file)
@@ -1560,6 +1560,9 @@ static void emit_sysval_intrin(struct lp_build_nir_context *bld_base,
    case nir_intrinsic_load_sample_mask_in:
       result[0] = bld->system_values.sample_mask_in;
       break;
+   case nir_intrinsic_load_view_index:
+      result[0] = lp_build_broadcast_scalar(&bld_base->uint_bld, bld->system_values.view_index);
+      break;
    }
 }
 
index 1e2178c..c3696ba 100644 (file)
@@ -187,6 +187,7 @@ struct lp_bld_tgsi_system_values {
    LLVMValueRef sample_id;
    LLVMValueRef sample_pos;
    LLVMValueRef sample_mask_in;
+   LLVMValueRef view_index;
 };