nir: Add raytracing shader call lowering pass.

Really copying Jason's pass.

Changes:
- Instead of all the intel lowering introduce rt_{execute_callable,trace_ray,resume}
- Add the ability to use scratch intrinsics directly.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10339>
This commit is contained in:
Bas Nieuwenhuizen 2021-02-16 02:37:40 +01:00 committed by Marge Bot
parent 02c5dc8035
commit 8dfb240b1f
4 changed files with 1131 additions and 0 deletions

View File

@ -298,6 +298,7 @@ NIR_FILES = \
nir/nir_lower_returns.c \
nir/nir_lower_samplers.c \
nir/nir_lower_scratch.c \
nir/nir_lower_shader_calls.c \
nir/nir_lower_ssbo.c \
nir/nir_lower_subgroups.c \
nir/nir_lower_system_values.c \

View File

@ -186,6 +186,7 @@ files_libnir = files(
'nir_lower_returns.c',
'nir_lower_samplers.c',
'nir_lower_scratch.c',
'nir_lower_shader_calls.c',
'nir_lower_ssbo.c',
'nir_lower_subgroups.c',
'nir_lower_system_values.c',

View File

@ -4626,6 +4626,14 @@ bool nir_lower_explicit_io(nir_shader *shader,
nir_variable_mode modes,
nir_address_format);
bool
nir_lower_shader_calls(nir_shader *shader,
nir_address_format address_format,
unsigned stack_alignment,
nir_shader ***resume_shaders_out,
uint32_t *num_resume_shaders_out,
void *mem_ctx);
nir_src *nir_get_io_offset_src(nir_intrinsic_instr *instr);
nir_src *nir_get_io_vertex_index_src(nir_intrinsic_instr *instr);
nir_src *nir_get_shader_call_payload_src(nir_intrinsic_instr *call);

File diff suppressed because it is too large Load Diff