Lionel Landwerlin
c6a7f4b34e
intel/devinfo: Rename & implement num_dual_subslices
...
v2: Use the upper bound of dual subslices as the ID is not remapped
with fused off parts and this is what we'll use for a bunch of
computation in RT.
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/16970 >
2022-09-28 05:38:36 +00:00
Lionel Landwerlin
e76e3d9cea
intel/nir/rt: fixup alignment of memcpy iterations
...
Not sure if fixes anything because it's always 16 at least, but this
is more correct.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17396 >
2022-09-23 08:29:17 +00:00
Lionel Landwerlin
838bbdcf2e
intel/nir/rt: store ray query state in scratch
...
Initially I tried to store ray query state in the RT scratch space but
got the offset wrong. In the end putting this in the scratch surface
makes more sense, especially for non RT stages.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Fixes: c78be5da30
("intel/fs: lower ray query intrinsics")
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17396 >
2022-09-23 08:29:17 +00:00
Lionel Landwerlin
3f01071c79
intel/nir/rt: remove ray query mem hit writes at initialization
...
This will not even be read by HW.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17396 >
2022-09-23 08:29:17 +00:00
Lionel Landwerlin
a88f725eea
intel/nir/rt: fixup generate hit
...
This function copies the potential hit from its memory location to the
committed hit location. A couple of fields got their bit offset wrong.
Fixes some CTS tests in dEQP-VK.ray_query.*
v2: Copy primitive/instance leaf pointers
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Fixes: 0465714790
("intel/nir/rt: add more helpers for ray queries")
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17396 >
2022-09-23 08:29:17 +00:00
Lionel Landwerlin
e11bedb9f5
intel/fs: add a note on possible optimization of root node address
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15910 >
2022-04-13 11:24:49 +00:00
Lionel Landwerlin
c78be5da30
intel/fs: lower ray query intrinsics
...
v2: Add helper for acceleration->root_node computation (Caio)
v3: Update comment on "done" bit (Caio)
Remove progress bool value for impl function (Caio)
Don't use nir_shader_instructions_pass to search the shader (Caio)
v4: Rename variable for if/else block (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 >
2022-02-08 12:55:25 +00:00
Lionel Landwerlin
712d8fb043
intel/nir: document RT builder
...
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 >
2022-02-08 12:55:25 +00:00
Lionel Landwerlin
0465714790
intel/nir/rt: add more helpers for ray queries
...
v2: Split stack_id helper in sync/async version (Caio)
Fixup a few bit field mistake (Caio)
Simplify some bitfield manipulations (Caio)
v3: Remove duplicated helper (Caio)
Simplify brw_nir_rt_set_dword_bit_at (Caio)
Comment brw_nir_rt_query_mark_init (Lionel)
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 >
2022-02-08 12:55:25 +00:00
Lionel Landwerlin
d5b994ec8a
intel/nir/rt: make RT manipulation helpers helper invocations ready
...
Since we need to be able to perform ray queries in helper invocations,
we need to have all the helpers properly tag their load/store
operations so that they operate in helper lanes.
v2: Switch from macros to inline functions (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 >
2022-02-08 12:55:25 +00:00
Lionel Landwerlin
fb69fed65b
intel/nir: document committed argument
...
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 >
2022-02-08 12:55:25 +00:00
Lionel Landwerlin
35bd19f53d
intel/nir/rt: load bvh_level value off mem_hit structure
...
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 >
2022-02-08 12:55:25 +00:00
Lionel Landwerlin
9b366243ed
intel/fs: load more fields from BVH instance leafs
...
v2: Fixup mask (Caio)
Drop old comment (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 >
2022-02-08 12:55:24 +00:00
Lionel Landwerlin
23ce94ff7e
intel/nir/rt: add a new number of SIMD lanes per DSS helper
...
v2: Add prefix brw_nir_rt (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 >
2022-02-08 12:55:24 +00:00
Lionel Landwerlin
4deb8e86df
nir: change intel dss_id intrinsic to topology_id
...
This will allow to reuse the same intrinsic for various topology based
ID.
v2: fix intrinsic comment (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 >
2022-02-08 12:55:24 +00:00
Lionel Landwerlin
423c47de99
nir: drop the btd_resume_intel intrinsic
...
This is now 100% equivalent to the new rt_resume intrinsic.
Signed-off-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/8637 >
2021-06-22 21:09:25 +00:00
Anuj Phogat
61e8636557
intel: Rename gen_device prefix to intel_device
...
export SEARCH_PATH="src/intel src/gallium/drivers/iris src/mesa/drivers/dri/i965"
grep -E "gen_device" -rIl $SEARCH_PATH | xargs sed -ie "s/gen_device/intel_device/g"
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10241 >
2021-04-20 20:06:33 +00:00
Jason Ekstrand
1ce3660a5a
intel/fs,rt: Add a predicate to load_global_const_block
...
This allows us to do bounds checked A64 block load without the it being
counted as control-flow by NIR. This means that NIR optimizations like
CSE will be able to work on these the same as a regular load.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8635 >
2021-03-17 17:49:58 +00:00
Christian Gmeiner
c5a9270109
intel/compiler: use intrinsic builders
...
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8295 >
2021-01-06 14:34:41 +00:00
Jason Ekstrand
b70847a389
nir: Use the right argument order for load_scratch_base_ptr
...
Fixes: c9bcad2573
"nir: add generated intrinsic builders"
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7836 >
2020-11-30 12:03:33 -06:00
Rhys Perry
c9bcad2573
nir: add generated intrinsic builders
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6587 >
2020-11-26 17:50:38 +00:00
Jason Ekstrand
cb261b03e5
intel/rt: Add lowering for ray-walk intrinsics in any-hit shaders
...
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7356 >
2020-11-25 05:37:10 +00:00
Jason Ekstrand
fad81a3968
intel/rt: Add a pass to lower shader call instructions
...
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7356 >
2020-11-25 05:37:10 +00:00
Jason Ekstrand
ca88cd8e5a
intel/rt: Add return instructions at the end of ray-tracing shaders
...
Each callable ray-tracing shader shader stage has to perform a return
operation at the end. In the case of raygen shaders, it retires the
bindless thread because the raygen shader is always the root of the call
tree. In the case of any-hit shaders, the default action is accep the
hit. For callable, miss, and closest-hit shaders, it does a return
operation. The assumption is that the calling shader has placed a
BINDLESS_SHADER_RECORD address for the return in the first QWord of the
callee's scratch space. The return operation simply loads this value
and calls a btd_spawn intrinsic to jump to it.
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7356 >
2020-11-25 05:37:10 +00:00
Jason Ekstrand
49778a7253
intel/rt: Add support for scratch in ray-tracing shaders
...
In ray-tracing shader stages, we have a real call stack and so we can't
use the normal scratch mechanism. Instead, the invocation's stack lives
in a memory region of the RT scratch buffer that sits after the HW ray
stacks. We handle this by asking nir_lower_io to lower local variables
to 64-bit global memory access. Unlike nir_lower_io for 32-bit offset
scratch, when 64-bit global access is requested, nir_lower_io generates
an address calculation which starts from a load_scratch_base_ptr. We
then lower this intrinsic to the appropriate address calculation in
brw_nir_lower_rt_intrinsics.
When a COMPUTE_WALKER command is sent to the hardware with the BTD Mode
bit set to true, the hardware generates a set of stack IDs, one for each
invocation. These then get passed along from one shader invocation to
the next as we trace the ray. We can use those stack IDs to figure out
which stack our invocation needs to access. Because we may not be the
first shader in the stack, there's a per-stack offset that gets stored
in the "hotzone".
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7356 >
2020-11-25 05:37:10 +00:00
Jason Ekstrand
6e50db4eda
intel/rt: Add builder helpers for accessing RT data structures
...
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7356 >
2020-11-25 05:37:10 +00:00