intel/compiler: Pass around intel_device_info parameter in helper

This will help us to handle code path separately for Xe3+ for updated
64bit memory data structure for RT.

Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Kevin Chuang <kaiwenjon23@gmail.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33047>
This commit is contained in:
Sagar Ghuge 2023-10-18 10:17:12 -07:00 committed by Marge Bot
parent 6deb1950a4
commit 64fd66407b
4 changed files with 15 additions and 10 deletions

View file

@ -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;

View file

@ -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)) {

View file

@ -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;

View file

@ -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;
}