intel: add a new intrinsic to get the shader stage from bindless shaders
We'll use this to apply ray tracing operations in our trivial return shader based on the stage we're in. Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Caio Oliveira <caio.oliveira@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13719>
This commit is contained in:

committed by
Marge Bot

parent
b8f087b0e6
commit
6d9ae6ec1e
@@ -1386,3 +1386,9 @@ system_value("callable_sbt_addr_intel", 1, bit_sizes=[64])
|
|||||||
system_value("callable_sbt_stride_intel", 1, bit_sizes=[16])
|
system_value("callable_sbt_stride_intel", 1, bit_sizes=[16])
|
||||||
system_value("leaf_opaque_intel", 1, bit_sizes=[1])
|
system_value("leaf_opaque_intel", 1, bit_sizes=[1])
|
||||||
system_value("leaf_procedural_intel", 1, bit_sizes=[1])
|
system_value("leaf_procedural_intel", 1, bit_sizes=[1])
|
||||||
|
# Values :
|
||||||
|
# 0: AnyHit
|
||||||
|
# 1: ClosestHit
|
||||||
|
# 2: Miss
|
||||||
|
# 3: Intersection
|
||||||
|
system_value("btd_shader_type_intel", 1)
|
||||||
|
@@ -4039,6 +4039,13 @@ fs_visitor::nir_emit_bs_intrinsic(const fs_builder &bld,
|
|||||||
bld.MOV(dest, retype(brw_vec1_grf(2, 2), dest.type));
|
bld.MOV(dest, retype(brw_vec1_grf(2, 2), dest.type));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case nir_intrinsic_load_btd_shader_type_intel: {
|
||||||
|
fs_reg ud_dest = retype(dest, BRW_REGISTER_TYPE_UD);
|
||||||
|
bld.MOV(ud_dest, retype(brw_vec1_grf(0, 3), ud_dest.type));
|
||||||
|
bld.AND(ud_dest, ud_dest, brw_imm_ud(0xf));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
nir_emit_intrinsic(bld, instr);
|
nir_emit_intrinsic(bld, instr);
|
||||||
break;
|
break;
|
||||||
|
Reference in New Issue
Block a user