mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-27 01:50:10 +01:00
radv/rt: Fixup constant args
They are fixed up automatically right now, which will change in the next patch. Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27137>
This commit is contained in:
parent
0597906ada
commit
348d13f06e
1 changed files with 23 additions and 0 deletions
|
|
@ -1915,6 +1915,18 @@ radv_nir_lower_rt_abi(nir_shader *shader, const VkRayTracingPipelineCreateInfoKH
|
|||
/* initialize variables */
|
||||
nir_builder b = nir_builder_at(nir_before_impl(impl));
|
||||
|
||||
nir_def *descriptor_sets = ac_nir_load_arg(&b, &args->ac, args->descriptor_sets[0]);
|
||||
nir_def *push_constants = ac_nir_load_arg(&b, &args->ac, args->ac.push_constants);
|
||||
nir_def *sbt_descriptors = ac_nir_load_arg(&b, &args->ac, args->ac.rt.sbt_descriptors);
|
||||
nir_def *launch_size = ac_nir_load_arg(&b, &args->ac, args->ac.rt.launch_size);
|
||||
nir_def *scratch_offset = NULL;
|
||||
if (args->ac.scratch_offset.used)
|
||||
scratch_offset = ac_nir_load_arg(&b, &args->ac, args->ac.scratch_offset);
|
||||
nir_def *ring_offsets = NULL;
|
||||
if (args->ac.ring_offsets.used)
|
||||
ring_offsets = ac_nir_load_arg(&b, &args->ac, args->ac.ring_offsets);
|
||||
nir_def *launch_id = ac_nir_load_arg(&b, &args->ac, args->ac.rt.launch_id);
|
||||
|
||||
nir_def *traversal_addr = ac_nir_load_arg(&b, &args->ac, args->ac.rt.traversal_shader_addr);
|
||||
nir_store_var(&b, vars.traversal_addr, nir_pack_64_2x32(&b, traversal_addr), 1);
|
||||
|
||||
|
|
@ -1970,6 +1982,17 @@ radv_nir_lower_rt_abi(nir_shader *shader, const VkRayTracingPipelineCreateInfoKH
|
|||
nir_def *next = select_next_shader(&b, shader_addr, info->wave_size);
|
||||
ac_nir_store_arg(&b, &args->ac, args->ac.rt.uniform_shader_addr, next);
|
||||
|
||||
ac_nir_store_arg(&b, &args->ac, args->descriptor_sets[0], descriptor_sets);
|
||||
ac_nir_store_arg(&b, &args->ac, args->ac.push_constants, push_constants);
|
||||
ac_nir_store_arg(&b, &args->ac, args->ac.rt.sbt_descriptors, sbt_descriptors);
|
||||
ac_nir_store_arg(&b, &args->ac, args->ac.rt.traversal_shader_addr, traversal_addr);
|
||||
ac_nir_store_arg(&b, &args->ac, args->ac.rt.launch_size, launch_size);
|
||||
if (scratch_offset)
|
||||
ac_nir_store_arg(&b, &args->ac, args->ac.scratch_offset, scratch_offset);
|
||||
if (ring_offsets)
|
||||
ac_nir_store_arg(&b, &args->ac, args->ac.ring_offsets, ring_offsets);
|
||||
ac_nir_store_arg(&b, &args->ac, args->ac.rt.launch_id, launch_id);
|
||||
|
||||
/* store back all variables to registers */
|
||||
ac_nir_store_arg(&b, &args->ac, args->ac.rt.dynamic_callable_stack_base, nir_load_var(&b, vars.stack_ptr));
|
||||
ac_nir_store_arg(&b, &args->ac, args->ac.rt.shader_addr, shader_addr);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue