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("leaf_opaque_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));
|
||||
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:
|
||||
nir_emit_intrinsic(bld, instr);
|
||||
break;
|
||||
|
Reference in New Issue
Block a user