mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-20 20:20:18 +01:00
pan/va: Add support for SPV_ARM_core_builtins
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36019>
This commit is contained in:
parent
000bd3046d
commit
c46407de88
2 changed files with 24 additions and 0 deletions
|
|
@ -2395,6 +2395,26 @@ bi_emit_intrinsic(bi_builder *b, nir_intrinsic_instr *instr)
|
||||||
bi_mov_i32_to(b, dst, bi_fau(BIR_FAU_SHADER_OUTPUT, false));
|
bi_mov_i32_to(b, dst, bi_fau(BIR_FAU_SHADER_OUTPUT, false));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case nir_intrinsic_load_core_id:
|
||||||
|
assert(b->shader->arch >= 9);
|
||||||
|
bi_mov_i32_to(b, dst, bi_fau(BIR_FAU_CORE_ID, false));
|
||||||
|
break;
|
||||||
|
|
||||||
|
case nir_intrinsic_load_core_count_arm:
|
||||||
|
assert(b->shader->arch >= 9);
|
||||||
|
bi_mov_i32_to(b, dst, bi_iadd_u32(b, bi_fau(BIR_FAU_CORE_ID, true), bi_imm_u32(1), false));
|
||||||
|
break;
|
||||||
|
|
||||||
|
case nir_intrinsic_load_warp_id_arm:
|
||||||
|
assert(b->shader->arch >= 9);
|
||||||
|
bi_mov_i32_to(b, dst, bi_fau(BIR_FAU_WARP_ID, false));
|
||||||
|
break;
|
||||||
|
|
||||||
|
case nir_intrinsic_load_warp_max_id_arm:
|
||||||
|
assert(b->shader->arch >= 9);
|
||||||
|
bi_mov_i32_to(b, dst, bi_fau(BIR_FAU_WARP_ID, true));
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
fprintf(stderr, "Unhandled intrinsic %s\n",
|
fprintf(stderr, "Unhandled intrinsic %s\n",
|
||||||
nir_intrinsic_infos[instr->intrinsic].name);
|
nir_intrinsic_infos[instr->intrinsic].name);
|
||||||
|
|
|
||||||
|
|
@ -96,6 +96,8 @@ static unsigned
|
||||||
va_pack_fau_special(const bi_instr *I, enum bir_fau fau)
|
va_pack_fau_special(const bi_instr *I, enum bir_fau fau)
|
||||||
{
|
{
|
||||||
switch (fau) {
|
switch (fau) {
|
||||||
|
case BIR_FAU_WARP_ID:
|
||||||
|
return VA_FAU_SPECIAL_PAGE_0_WARP_ID;
|
||||||
case BIR_FAU_ATEST_PARAM:
|
case BIR_FAU_ATEST_PARAM:
|
||||||
return VA_FAU_SPECIAL_PAGE_0_ATEST_DATUM;
|
return VA_FAU_SPECIAL_PAGE_0_ATEST_DATUM;
|
||||||
case BIR_FAU_TLS_PTR:
|
case BIR_FAU_TLS_PTR:
|
||||||
|
|
@ -104,6 +106,8 @@ va_pack_fau_special(const bi_instr *I, enum bir_fau fau)
|
||||||
return VA_FAU_SPECIAL_PAGE_1_WORKGROUP_LOCAL_POINTER;
|
return VA_FAU_SPECIAL_PAGE_1_WORKGROUP_LOCAL_POINTER;
|
||||||
case BIR_FAU_LANE_ID:
|
case BIR_FAU_LANE_ID:
|
||||||
return VA_FAU_SPECIAL_PAGE_3_LANE_ID;
|
return VA_FAU_SPECIAL_PAGE_3_LANE_ID;
|
||||||
|
case BIR_FAU_CORE_ID:
|
||||||
|
return VA_FAU_SPECIAL_PAGE_3_CORE_ID;
|
||||||
case BIR_FAU_SHADER_OUTPUT:
|
case BIR_FAU_SHADER_OUTPUT:
|
||||||
return VA_FAU_SPECIAL_PAGE_3_SHADER_OUTPUT;
|
return VA_FAU_SPECIAL_PAGE_3_SHADER_OUTPUT;
|
||||||
case BIR_FAU_PROGRAM_COUNTER:
|
case BIR_FAU_PROGRAM_COUNTER:
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue