diff --git a/src/intel/compiler/brw_nir_lower_intersection_shader.c b/src/intel/compiler/brw_nir_lower_intersection_shader.c index c3e035140bf..2d3624b0450 100644 --- a/src/intel/compiler/brw_nir_lower_intersection_shader.c +++ b/src/intel/compiler/brw_nir_lower_intersection_shader.c @@ -203,7 +203,7 @@ brw_nir_lower_intersection_shader(nir_shader *intersection, brw_nir_rt_load_mem_ray(b, &ray_def, BRW_RT_BVH_LEVEL_WORLD); struct brw_nir_rt_mem_hit_defs hit_in = {}; - brw_nir_rt_load_mem_hit(b, &hit_in, false); + brw_nir_rt_load_mem_hit(b, &hit_in, false, devinfo); nir_def *max_t = ray_def.t_far; diff --git a/src/intel/compiler/brw_nir_lower_ray_queries.c b/src/intel/compiler/brw_nir_lower_ray_queries.c index b476ffda418..e3362677c6a 100644 --- a/src/intel/compiler/brw_nir_lower_ray_queries.c +++ b/src/intel/compiler/brw_nir_lower_ray_queries.c @@ -282,7 +282,7 @@ lower_ray_query_intrinsic(nir_builder *b, case nir_intrinsic_rq_proceed: { nir_def *not_done = - nir_inot(b, brw_nir_rt_query_done(b, stack_addr)); + nir_inot(b, brw_nir_rt_query_done(b, stack_addr, state->devinfo)); nir_def *not_done_then, *not_done_else; nir_push_if(b, not_done); @@ -307,7 +307,8 @@ lower_ray_query_intrinsic(nir_builder *b, nir_trace_ray_intel(b, state->rq_globals, level, ctrl, .synchronous = true); struct brw_nir_rt_mem_hit_defs hit_in = {}; - brw_nir_rt_load_mem_hit_from_addr(b, &hit_in, hw_stack_addr, false); + brw_nir_rt_load_mem_hit_from_addr(b, &hit_in, hw_stack_addr, false, + state->devinfo); if (shadow_stack_addr) spill_query(b, hw_stack_addr, shadow_stack_addr); @@ -365,7 +366,8 @@ lower_ray_query_intrinsic(nir_builder *b, BRW_RT_BVH_LEVEL_WORLD); brw_nir_rt_load_mem_ray_from_addr(b, &object_ray_in, stack_addr, BRW_RT_BVH_LEVEL_OBJECT); - brw_nir_rt_load_mem_hit_from_addr(b, &hit_in, stack_addr, committed); + brw_nir_rt_load_mem_hit_from_addr(b, &hit_in, stack_addr, committed, + state->devinfo); nir_def *sysval = NULL; switch (nir_intrinsic_ray_query_value(intrin)) { diff --git a/src/intel/compiler/brw_nir_lower_rt_intrinsics.c b/src/intel/compiler/brw_nir_lower_rt_intrinsics.c index 7b4d5a65f88..8623fcbfc1a 100644 --- a/src/intel/compiler/brw_nir_lower_rt_intrinsics.c +++ b/src/intel/compiler/brw_nir_lower_rt_intrinsics.c @@ -87,7 +87,7 @@ lower_rt_intrinsics_impl(nir_function_impl *impl, case MESA_SHADER_CLOSEST_HIT: case MESA_SHADER_INTERSECTION: brw_nir_rt_load_mem_hit(b, &hit_in, - stage == MESA_SHADER_CLOSEST_HIT); + stage == MESA_SHADER_CLOSEST_HIT, devinfo); brw_nir_rt_load_mem_ray(b, &object_ray_in, BRW_RT_BVH_LEVEL_OBJECT); FALLTHROUGH; diff --git a/src/intel/compiler/brw_nir_rt_builder.h b/src/intel/compiler/brw_nir_rt_builder.h index c1aed7497d4..8bbe9a2f48b 100644 --- a/src/intel/compiler/brw_nir_rt_builder.h +++ b/src/intel/compiler/brw_nir_rt_builder.h @@ -446,7 +446,8 @@ static inline void brw_nir_rt_load_mem_hit_from_addr(nir_builder *b, struct brw_nir_rt_mem_hit_defs *defs, nir_def *stack_addr, - bool committed) + bool committed, + const struct intel_device_info *devinfo) { nir_def *hit_addr = brw_nir_rt_mem_hit_addr_from_addr(b, stack_addr, committed); @@ -478,10 +479,11 @@ brw_nir_rt_load_mem_hit_from_addr(nir_builder *b, static inline void brw_nir_rt_load_mem_hit(nir_builder *b, struct brw_nir_rt_mem_hit_defs *defs, - bool committed) + bool committed, + const struct intel_device_info *devinfo) { brw_nir_rt_load_mem_hit_from_addr(b, defs, brw_nir_rt_stack_addr(b), - committed); + committed, devinfo); } static inline void @@ -521,11 +523,12 @@ brw_nir_memclear_global(nir_builder *b, } static inline nir_def * -brw_nir_rt_query_done(nir_builder *b, nir_def *stack_addr) +brw_nir_rt_query_done(nir_builder *b, nir_def *stack_addr, + const struct intel_device_info *devinfo) { struct brw_nir_rt_mem_hit_defs hit_in = {}; brw_nir_rt_load_mem_hit_from_addr(b, &hit_in, stack_addr, - false /* committed */); + false /* committed */, devinfo); return hit_in.done; }