intel/nir: use a single intel intrinsic to deal with ray traversal
In the future we'll want to reuse this intrinsic to deal with ray queries. Ray queries will use a different global pointer and programmatically change the control/level arguments of the trace send instruction. v2: Comment on barrier after sync trace instruction (Caio) Generalize lsc helper (Caio) 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
39f6cd5d79
commit
bb40e999d1
@@ -294,7 +294,11 @@ lower_ray_walk_intrinsics(nir_shader *shader,
|
||||
* optimization passes.
|
||||
*/
|
||||
nir_push_if(&b, nir_imm_true(&b));
|
||||
nir_trace_ray_continue_intel(&b);
|
||||
nir_trace_ray_intel(&b,
|
||||
nir_load_btd_global_arg_addr_intel(&b),
|
||||
nir_imm_int(&b, BRW_RT_BVH_LEVEL_OBJECT),
|
||||
nir_imm_int(&b, GEN_RT_TRACE_RAY_CONTINUE),
|
||||
.synchronous = false);
|
||||
nir_jump(&b, nir_jump_halt);
|
||||
nir_pop_if(&b, NULL);
|
||||
progress = true;
|
||||
@@ -313,7 +317,11 @@ lower_ray_walk_intrinsics(nir_shader *shader,
|
||||
}
|
||||
nir_push_else(&b, NULL);
|
||||
{
|
||||
nir_trace_ray_commit_intel(&b);
|
||||
nir_trace_ray_intel(&b,
|
||||
nir_load_btd_global_arg_addr_intel(&b),
|
||||
nir_imm_int(&b, BRW_RT_BVH_LEVEL_OBJECT),
|
||||
nir_imm_int(&b, GEN_RT_TRACE_RAY_COMMIT),
|
||||
.synchronous = false);
|
||||
nir_jump(&b, nir_jump_halt);
|
||||
}
|
||||
nir_pop_if(&b, NULL);
|
||||
|
Reference in New Issue
Block a user