Konstantin Seurer
3acab3dfff
radv: Use vk_expand_(src|dst)_access_flags2
...
Simplifies access flags handling since the driver doesn't have to worry
about VK_ACCESS_2_MEMORY_READ_BIT and friends.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29051 >
2024-06-28 10:41:49 +00:00
Konstantin Seurer
14f7b077c8
radv: Remove dead access bits
...
READ access bits are dead as radv_src_access_flush arguments and WRITE
access bits are dead as radv_dst_access_flush arguments.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29780 >
2024-06-21 12:52:39 +00:00
Konstantin Seurer
03483ecb11
radv: Destroy leaf_updateable_pipeline
...
The pipeline was never destroyed. Fixes an assert in ac_sqtt_finish.
Fixes: 217072d ("radv/rt: Force active leaves for every updateable accel struct")
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28557 >
2024-04-10 08:23:14 +00:00
Samuel Pitoiset
87fde606cf
radv: use SPDX-License-Identifier
...
Only files under src/amd/vulkan/** are concerned.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28599 >
2024-04-08 07:17:31 +00:00
Samuel Pitoiset
69b911bc53
radv: remove radv_private.h
...
This file was a giant mess and I'm very happy to remove it entirely.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28568 >
2024-04-04 21:57:46 +00:00
Samuel Pitoiset
0388df3d08
radv: replace RADV_FROM_HANDLE by VK_FROM_HANDLE
...
It was exactly the same thing.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28568 >
2024-04-04 21:57:45 +00:00
Samuel Pitoiset
c1414a9799
radv: add radv_sqtt.h
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28551 >
2024-04-04 16:35:15 +00:00
Samuel Pitoiset
675d7f4bd0
radv: remove radv_cmd_buffer::device
...
Get the logical device object using the base object.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28500 >
2024-04-01 16:35:09 +00:00
Samuel Pitoiset
896c9cf486
radv: remove radv_device::physical_device
...
Get the logical device object using the base object.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28500 >
2024-04-01 16:35:09 +00:00
Konstantin Seurer
d902b6d805
radv: Skip more acceleration structure build markers
...
We should skip even more stuff when using updates only.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28228 >
2024-03-19 19:05:25 +00:00
Friedrich Vock
217072d25f
radv/rt: Force active leaves for every updateable accel struct
...
We can't rely on games getting updates right. To avoid adding
workarounds for tons of games, be more robust by default.
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28077 >
2024-03-11 17:08:09 +00:00
Konstantin Seurer
6d2926c54e
radv: Skip unused acceleration structure build paths
...
If the whole batch doesn't use a path, we can skip binding the pipeline
and writing an user event.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26697 >
2024-01-31 10:24:20 +01:00
Konstantin Seurer
93b1eec09b
radv: Emit user events during acceleration structure builds
...
This way, we can see exactly which dispatches belong to acceleration
structure builds and which dispatches were caused by the app. We loose
the red coloring in RGP for this, but we get way more information.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26697 >
2024-01-31 10:24:15 +01:00
Konstantin Seurer
f43099ecf5
radv: Reduce the amount of radv_device_to_handle calls
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26697 >
2024-01-31 10:24:06 +01:00
Friedrich Vock
a9831caa14
radv/rt: Add workaround to make leaves always active
...
DOOM Eternal builds acceleration structures with inactive primitives and
tries to make them active in later AS updates. This is disallowed by the
spec and triggers a GPU hang. Fix the hang by working around the bug.
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27034 >
2024-01-17 15:14:48 +00:00
Friedrich Vock
0b55a3cf64
radv/rt: Acceleration structure updates
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26729 >
2024-01-09 18:47:45 +00:00
Friedrich Vock
62fe4f0b1b
radv/rt: Move per-geometry build info into a geometry_data struct
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26729 >
2024-01-09 18:47:45 +00:00
Konstantin Seurer
2e4951d3fb
radv: Remove the BVH depth heuristics
...
It only helps Quake II RTX and hurts everything else.
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26481 >
2024-01-09 09:00:24 +00:00
Konstantin Seurer
719619c477
radv: Use PLOC for TLAS builds
...
Improves control performance by about 1%.
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26481 >
2024-01-09 09:00:24 +00:00
Samuel Pitoiset
744cb98bc6
radv: add support for version 2 of all descriptor binding commands
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26757 >
2024-01-03 11:24:27 +00:00
Konstantin Seurer
662f86c533
radv/bvh: Stop emitting leaf nodes inside the encoder
...
Avoids unnecessary copies.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26725 >
2023-12-18 19:17:21 +00:00
Konstantin Seurer
8fca54a754
radv: Add more offsets acceleration_structure_layout
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26725 >
2023-12-18 19:17:21 +00:00
Konstantin Seurer
ca92a10800
radv: Do not sync after radv_update_buffer_cp
...
WR_CONFIRM is set.
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24846 >
2023-09-30 11:49:14 +00:00
Konstantin Seurer
3fd0ff21e0
radv: Merge the sync_data and header initialization
...
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24846 >
2023-09-30 11:49:14 +00:00
Konstantin Seurer
97b1caf9f6
radv: Perform multiple sorts in parallel
...
This was the last part that didn't scale with multiple infos. Reducing
the amount of barriers in this case improves DOOM Eternal performance by
50%. (Running with low resolution)
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24720 >
2023-09-14 15:12:44 +00:00
Konstantin Seurer
44c47054bc
radv/radix_sort: Vendor the radix sort dispatch code
...
This needs to be done so we can optimize it for occpuancy when building
multiple acceleration structures in parallel. Changes to the original
code:
- Change // to /* */
- clang-format
- Replace vkCmd calls with calls to the driver entrypoints
- Add a light weight info struct
- Use radv_fill_buffer directly
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24720 >
2023-09-14 15:12:44 +00:00
Konstantin Seurer
1cacc64ea7
radv: Remove dead radix_sort_vk_get_memory_requirements call
...
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24720 >
2023-09-14 15:12:43 +00:00
Konstantin Seurer
2943bc34e9
radv: Remove leaf_args::dst_offset
...
We can use first_id instead.
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24756 >
2023-08-21 12:45:06 +00:00
Konstantin Seurer
90a24c7cb3
radv: Add internal_nodes_offset to scratch_layout
...
It shouldn't be a part of bvh_state.
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24756 >
2023-08-21 12:45:06 +00:00
Samuel Pitoiset
2ed52ca578
radv: add support for VkBufferUsageFlags2CreateInfoKHR
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24392 >
2023-08-10 03:05:02 +00:00
Eric Engestrom
8b319c6db8
radv: reformat according to its .clang-format
...
Signed-off-by: Eric Engestrom <eric@igalia.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23253 >
2023-06-16 19:59:52 +00:00
Konstantin Seurer
f791cd9e43
radv: Pack and encode geometry id and flags on the CPU
...
There is no need to do it on the GPU.
Change in average build time (Control):
84.80691 ms -> 84.69471 ms
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22400 >
2023-04-11 07:57:34 +00:00
Samuel Pitoiset
4dc40c3b64
radv: move radv_meta_* to a new folder
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22046 >
2023-03-27 06:27:49 +00:00
Samuel Pitoiset
d4bce9508b
radv: use common GetBufferMemoryRequirements2()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22047 >
2023-03-22 07:50:04 +00:00
Samuel Pitoiset
cb5701eed9
radv: implement VK_KHR_map_memory2
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22032 >
2023-03-21 23:08:03 +00:00
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