Rhys Perry
dc01f03d1b
radv: remove is_internal pipeline creation parameter
...
Instead, check if the cache is the meta shader cache. This catches the
shaders created by radv_create_radix_sort_u64().
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21606 >
2023-03-02 16:48:09 +00:00
Konstantin Seurer
5ce99bc568
radv: Only init geometry infos if RRA is enabled
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21532 >
2023-02-28 20:49:33 +00:00
Konstantin Seurer
7bd265bc86
radv: Move header and geometry info init into separate functions
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21532 >
2023-02-28 20:49:33 +00:00
Konstantin Seurer
e2fa9ba9c6
radv: Use indirect header filling for compact builds
...
Sets the accel struct size fields to the correct values which should
allow for more compaction.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20818 >
2023-02-24 15:14:40 +00:00
Konstantin Seurer
b0fd43f1f7
radv: Move the geometry infos before the BVH
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20818 >
2023-02-24 15:14:40 +00:00
Konstantin Seurer
0800450cb9
radv: Use compact encoding
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20818 >
2023-02-24 15:14:40 +00:00
Konstantin Seurer
71ccc8d600
radv: Add a build config for compact builds
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20818 >
2023-02-24 15:14:40 +00:00
Konstantin Seurer
4d2a7ea146
radv: Use vk_acceleration_structure
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21047 >
2023-02-22 11:58:57 +00:00
Konstantin Seurer
40f246e3e9
radv: Force ACO for BVH build shaders
...
They hang with LLVM.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21268 >
2023-02-17 17:04:47 +00:00
Konstantin Seurer
2ef5acedc2
radv: Make accel struct meta state initialization thread safe
...
Fixes: 0d5570b ("radv: Always compile accel structure shaders on demand.")
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21268 >
2023-02-17 17:04:47 +00:00
Konstantin Seurer
b9d7306edc
radv: Use an ordered dispatch for BVH encoding
...
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21071 >
2023-02-06 17:50:53 +00:00
Konstantin Seurer
a568a5492f
radv: Fix creating accel structs with unbound buffers
...
If the buffer hasn't been bound to memory yet, we will dereference a
NULL pointer in radv_CreateAccelerationStructureKHR.
cc: mesa-stable
Closes : #8199
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21019 >
2023-02-01 19:31:43 +00:00
Konstantin Seurer
7e072cfba2
radv: Improve the BVH size estimation
...
The previous estimation was from before we had proper LBVH and PLOC.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20988 >
2023-02-01 10:34:36 +00:00
Konstantin Seurer
3eb646efd0
radv: Merge the leaf and internal converter
...
We have everything we need in the internal one already so we can just
encode leaf nodes there. Since this functionality isn't split anymore,
the shader was renamed to "encode".
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20768 >
2023-01-25 15:54:03 +00:00
Rhys Perry
883f18f761
radv: skip creation of null TLAS for null winsys
...
This won't work because there are no memory types.
Fixes fossilize replay with NULL winsys.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Fixes: 31ca19589f ("radv: Create a null TLAS as meta state")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20878 >
2023-01-25 14:16:54 +00:00
Konstantin Seurer
d59683ab89
radv: Enable extended SAH for shallow BVHs
...
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20656 >
2023-01-21 20:26:41 +00:00
Konstantin Seurer
da87c2883d
radv: Wrap internal build type inside a build_config struct
...
This will be useful for finer control over build configurations.
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20656 >
2023-01-21 20:26:41 +00:00
Konstantin Seurer
c53eb2f3d4
radv: Add a shader variant for PLOC with extended SAH
...
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20656 >
2023-01-21 20:26:41 +00:00
Konstantin Seurer
13a8a4071a
radv/bvh/meson: Add the option to set defines
...
This is useful for compiling different variants of the same shader.
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20656 >
2023-01-21 20:26:41 +00:00
Friedrich Vock
eab2c39951
radv/rt: Divide by the correct workgroup size
...
Improves build performance by around 25%.
Fixes: 9369b407 ("radv: Use PLOC for BVH building")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20717 >
2023-01-15 23:33:33 +00:00
Konstantin Seurer
31ca19589f
radv: Create a null TLAS as meta state
...
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20539 >
2023-01-15 21:30:21 +00:00
Friedrich Vock
d816859ede
radv: Use internal allocation helpers for internal allocations
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17331 >
2023-01-11 06:55:04 +00:00
Bas Nieuwenhuizen
0d5570bb47
radv: Always compile accel structure shaders on demand.
...
Some CTS tests enable all extensions ... , which combined with having
no shader cache on some platforms results in some CTS tests timing
out (in particular tests recreating the device all the time).
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20422 >
2023-01-05 14:45:47 +00:00
Konstantin Seurer
ce7155b8a0
radv: Use the correct pipeline layout for LBVH IR generation
...
Fixes: 5ba950e ("radv: Switch to new LBVH implementation.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20481 >
2023-01-03 19:53:40 +00:00
Friedrich Vock
0e0f42723e
radv/rt: PLOC fixes for active_leaf_count
...
Fixes: 271865373 ("radv: Add PLOC shader")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20377 >
2022-12-18 21:24:45 +00:00
Rebecca Mckeever
64d7385e61
radv: Delete VK_KHR_device_group provided entrypoints
...
Delete radv_CmdDispatch, radv_CmdSetDeviceMask, and
radv_GetDeviceGroupPeerMemoryFeatures so that the vk_common_*
versions will be used instead. This will avoid repeated code.
Signed-off-by: Rebecca Mckeever <rebecca.mckeever@collabora.com>
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20218 >
2022-12-09 14:07:00 -06:00
Konstantin Seurer
08a85076e5
radv/rra: Introduce radv_rra_accel_struct_data
...
This will be useful for dumping acceleration structures that were
destroyed before submit.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20047 >
2022-12-02 16:48:07 +00:00
Bas Nieuwenhuizen
9a311a1891
radv: Remove the old LBVH shader.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19891 >
2022-12-01 02:20:48 +00:00
Bas Nieuwenhuizen
5ba950eb14
radv: Switch to new LBVH implementation.
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19891 >
2022-12-01 02:20:48 +00:00
Bas Nieuwenhuizen
ea159e47a5
radv: Add new LBVH shaders.
...
Contrary to the previous implementation, this actually implements an LBVH builder.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19891 >
2022-12-01 02:20:48 +00:00
Tatsuyuki Ishi
390c4b337a
radv: Support accelerationStructureCaptureReplay.
...
The address itself was already stable assuming that the memory itself was
allocated with capture/replay. Enable the feature flag and add an equality
check to return VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR on mismatch.
Tested with:
- dEQP-VK.ray_tracing_pipeline.capture_replay.*
- q2rtx gfxrecon replays correctly without major errors.
* There are debug logs about VkBuffers missing opaque address
for unknown reason, however the AS part is confirmed to be correctly
captured.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19841 >
2022-11-21 08:22:03 +00:00
Bas Nieuwenhuizen
9369b40725
radv: Use PLOC for BVH building
...
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19292 >
2022-10-30 19:48:46 +00:00
Bas Nieuwenhuizen
271865373e
radv: Add PLOC shader
...
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19292 >
2022-10-30 19:48:46 +00:00
Friedrich Vock
f502b3aab3
radv/rt: Dispatch internal converter indirectly
...
Preparation for using the converter with PLOC.
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19292 >
2022-10-30 19:48:46 +00:00
Bas Nieuwenhuizen
ccf0a69e05
radv: Make the number of internal nodes be written on the GPU.
...
Opens the door of algorithms with a variable number of nodes.
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19292 >
2022-10-30 19:48:46 +00:00
Bas Nieuwenhuizen
0e23df959e
radv: Add BVH IR header.
...
To include GPU state passed between stages but not in a node.
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19292 >
2022-10-30 19:48:46 +00:00
Konstantin Seurer
6905c25829
radv/rra: Use the accel struct type for header validation
...
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19089 >
2022-10-16 14:37:02 +00:00
Bas Nieuwenhuizen
8231f7eaa1
radv: Use a VkPipelineCache handle for meta shaders.
...
Prep work for using the common vk caches.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19047 >
2022-10-12 12:09:48 +02:00
Konstantin Seurer
3e22f957d5
radv: Remove create_accel_build_shader
...
Unused since every kernel is written in GLSL now.
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19006 >
2022-10-12 08:56:05 +02:00
Bas Nieuwenhuizen
4ce1b9b2ff
radv: Generate parent links in BVH.
...
Reviewed-By: Konstantin Seurer <konstantin.seurer@gmail.com>
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18799 >
2022-10-10 23:35:25 +00:00
Bas Nieuwenhuizen
1e2c95ac1f
radv: Start the BVH after the header.
...
First usage of the offset field, Can put more in it in the follow
up.
Reviewed-By: Konstantin Seurer <konstantin.seurer@gmail.com>
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18799 >
2022-10-10 23:35:25 +00:00
Bas Nieuwenhuizen
48ab1adda5
radv: Simplify buffer copy address generation.
...
Reviewed-By: Konstantin Seurer <konstantin.seurer@gmail.com>
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18799 >
2022-10-10 23:35:25 +00:00
Bas Nieuwenhuizen
f1e1509c92
radv: Add a field for the offset of the bvh in the blas.
...
So that we can put some metadata in front.
Reviewed-By: Konstantin Seurer <konstantin.seurer@gmail.com>
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18799 >
2022-10-10 23:35:25 +00:00
Bas Nieuwenhuizen
b0a385a6bd
radv: Clean up unused fields in BVH IR.
...
Reviewed-By: Konstantin Seurer <konstantin.seurer@gmail.com>
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18799 >
2022-10-10 23:35:25 +00:00
Konstantin Seurer
d4345ec4d2
radv: Use cache_uuid for accel struct compatibility
...
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18938 >
2022-10-08 09:23:55 +00:00
Konstantin Seurer
7485660d12
radv: Fix incorrect build info indexing
...
Fixes: 8666b1f ("radv: Build acceleration structures using BVH IR")
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18928 >
2022-10-03 18:23:39 +00:00
Konstantin Seurer
7c6f407d4c
radv: Add and use AS and scratch layout structs
...
The memory layout logic is duplicated between
radv_GetAccelerationStructureBuildSizesKHR and
radv_CmdBuildAccelerationStructuresKHR. This patch adds a helper that
computes the scratch and acceleration structure memory layout for a
given build configuration.
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18842 >
2022-09-28 12:28:01 +00:00
Friedrich Vock
8666b1ffbf
radv: Build acceleration structures using BVH IR
...
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18769 >
2022-09-26 22:25:22 +00:00
Friedrich Vock
1c0ab3ba67
radv: Create pipelines for conversion meta shaders
...
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18769 >
2022-09-26 22:25:22 +00:00
Friedrich Vock
ca8061c2a7
radv: Split CmdBuildAccelerationStructuresKHR into different functions
...
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18769 >
2022-09-26 22:25:22 +00:00