nir: Add load_sbt_amd intrinsic.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9767>
This commit is contained in:
Bas Nieuwenhuizen 2021-03-23 02:18:35 +01:00 committed by Marge Bot
parent 53ef2a7e69
commit aa82f91c38
2 changed files with 5 additions and 0 deletions

View File

@ -319,6 +319,7 @@ visit_intrinsic(nir_shader *shader, nir_intrinsic_instr *instr)
case nir_intrinsic_masked_swizzle_amd:
case nir_intrinsic_is_sparse_texels_resident:
case nir_intrinsic_sparse_residency_code_and:
case nir_intrinsic_load_sbt_amd:
case nir_intrinsic_get_ubo_size:
case nir_intrinsic_load_ssbo_address: {
unsigned num_srcs = nir_intrinsic_infos[instr->intrinsic].num_srcs;

View File

@ -1149,6 +1149,10 @@ intrinsic("export_primitive_amd", src_comp=[1], indices=[])
# Allocates export space for vertices and primitives. src[] = {num_vertices, num_primitives}.
intrinsic("alloc_vertices_and_primitives_amd", src_comp=[1, 1], indices=[])
# src = [index] BINDING = which table BASE = offset within handle
intrinsic("load_sbt_amd", src_comp=[-1], dest_comp=0, indices=[BINDING, BASE],
flags=[CAN_ELIMINATE, CAN_REORDER])
# V3D-specific instrinc for tile buffer color reads.
#
# The hardware requires that we read the samples and components of a pixel