Samuel Pitoiset
ba7e3be425
radv: merge radv_emit_epilog() with radv_emit_ps_epilog_state()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31150 >
2024-09-16 07:53:00 +00:00
Samuel Pitoiset
26d8f1a306
aco,radv,radeonsi: move has_epilog to the fragment shader info
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31150 >
2024-09-16 07:53:00 +00:00
Samuel Pitoiset
e1df6cf499
radv: use radv_get_user_sgpr_loc() more
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31115 >
2024-09-12 07:01:36 +00:00
Samuel Pitoiset
190d46b65d
radv: precompute more PGM registers for all stages
...
Less error prone and easier to update for new hardware.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31115 >
2024-09-12 07:01:36 +00:00
Samuel Pitoiset
c7a509f55c
radv: update PGM register for TES+GS compiled separately with ESO
...
Not sure why 0xB210 works on GFX10+ because it's supposed to be
0xB320 with/without NGG...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31115 >
2024-09-12 07:01:36 +00:00
Samuel Pitoiset
31875e92aa
radv: make the helper that uploads indirect descriptors non-static
...
It will be used by DGC.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31096 >
2024-09-10 15:07:04 +00:00
Samuel Pitoiset
3deebeb20a
radv: unify emitting non-indirect/indirect descriptor sets
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31096 >
2024-09-10 15:07:04 +00:00
Samuel Pitoiset
bac5ad9f8d
radv: rename radv_emit_descriptor_pointers() to radv_emit_descriptors_per_stage()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31096 >
2024-09-10 15:07:04 +00:00
Samuel Pitoiset
2c2735083b
radv: store the indirect descriptor sets VA to the descriptor state
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31096 >
2024-09-10 15:07:04 +00:00
Samuel Pitoiset
529d7ebdcc
radv: cleanup some functions that emit shader user SGPRs
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31096 >
2024-09-10 15:07:04 +00:00
Samuel Pitoiset
e621f0c173
radv: rework emitting indirect compute pipelines with DGC
...
Instead of recreating the packets in the DGC prepare shader, the best
solution is to emit them to a temporary CS object at pipeline creation
time. Then in the DGC prepare shader, the driver just needs to copy
the packets.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31101 >
2024-09-10 09:13:44 +00:00
Samuel Pitoiset
4bd4f037b5
radv: emit all VBO descriptors in the prepare DGC shader
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31040 >
2024-09-06 07:04:59 +00:00
Samuel Pitoiset
a1646f468d
radv: compute rsrc3 for VBO descriptors in NIR for DGC
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31040 >
2024-09-06 07:04:59 +00:00
Samuel Pitoiset
91fdce3f5a
radv: add a helper to get VBO info for emitting descriptors
...
This will be used to rework VBO in DGC.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31040 >
2024-09-06 07:04:59 +00:00
Samuel Pitoiset
fbb1ed66e4
radv: stop storing DGC info as part of the VBO descriptors
...
This is no longer needed and it's possible to just load&store the
bindings that aren't updated by DGC.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30918 >
2024-09-04 06:17:37 +00:00
Samuel Pitoiset
57aa34a30d
radv: pass more VBO info as parameters to the DGC prepare shader
...
Instead of storing the stride/rsrc_word3 as part of the VBO descriptors,
pass them as parameters. This is cleaner and this will allow us
to simplify VBO in DGC.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30918 >
2024-09-04 06:17:37 +00:00
Samuel Pitoiset
0dc2a5bfee
radv: pass the vertex shader to radv_write_vertex_descriptors()
...
Mostly for DGC.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30916 >
2024-09-03 11:39:47 +00:00
Samuel Pitoiset
bd5dca3e81
radv: rename radv_vs_input_state to radv_vertex_input_state
...
"vs_state" is confusing because it could be "Vertex Shader state" but
it's not.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30916 >
2024-09-03 11:39:47 +00:00
Samuel Pitoiset
b3834b7dcd
radv: bind the static vertex input state from the pipeline
...
This removes one more pipeline dependency when writing VBO descriptors.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30916 >
2024-09-03 11:39:47 +00:00
Benjamin Cheng
95a980b61f
radv/video: add event support for VCN4
...
This was the main missing piece for passing vulkan video CTS
as the video firmwares couldn't do proper vulkan events.
With new enough firmware this is now possible.
Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30837 >
2024-08-26 22:19:09 +00:00
Samuel Pitoiset
3af0f0129c
radv: fix DRLR with subpass input attachments and feedback loops
...
Dynamic rendering local read allows the application to use subpass input
attachments with feedback loops. But unless legacy RPs where it's
possible to determine feedback look at creation time, with dynamic
rendering it's not possible.
To fix that, the driver needs to determine at draw time if a feedback
loop is present, and it needs to decompress DCC/HTILE if necessary.
See https://gitlab.khronos.org/vulkan/vulkan/-/issues/3928 for more
information.
Note that VKCTS is still missing coverage but this has been reported.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/11127
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30124 >
2024-08-23 12:20:02 +00:00
Samuel Pitoiset
4a191e34c9
radv: add support for input attachment indices with DRLR
...
They will be used to detect feedback loops.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30124 >
2024-08-23 12:20:02 +00:00
Samuel Pitoiset
1048da8dd0
radv: refactor the DGC helpers to determine cmdbuf size
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30737 >
2024-08-20 18:22:55 +00:00
Samuel Pitoiset
5d367aba7b
radv: stop re-initializing HTILE for non-compressed to compressed transitions
...
Decompressing HTILE should also reset the HTILE metadata to initial
state which means that re-initializing it for non-compressed to
compressed transitions is redundant.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30122 >
2024-08-13 06:16:03 +00:00
Marek Olšák
709ebd8293
amd: expose nir_io_mix_convergent_flat_with_interpolated
...
The drivers need to invert how they gather flat inputs.
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29895 >
2024-07-23 16:13:17 +00:00
Samuel Pitoiset
d2ae0c9ef8
radv: fix programming DB_RENDER_CONTROL for NULL depth/stencil on GFX11_5
...
It should be programmed like GFX11.
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30225 >
2024-07-17 16:25:19 +00:00
Samuel Pitoiset
0a6852907d
radv: fix marking RADV_DYNAMIC_COLOR_ATTACHMENT_MAP as dirty
...
Due to the cmdbuf dirty split.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30119 >
2024-07-12 06:37:52 +00:00
Konstantin Seurer
d571e19966
radv: Fix smooth lines with dynamic polygon mode and topology
...
Non-line modes need to disable the smoothing paths. (overrasterization,
shader code)
Fixes: 85cbdba ("radv: add support for smooth lines")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9393
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26833 >
2024-07-05 08:58:53 +00:00
Samuel Pitoiset
4c8d44aed0
radv: move radv_CmdPreprocessGeneratedCommandsNV() to radv_cmd_buffer.c
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29980 >
2024-07-01 16:54:09 +00:00
Samuel Pitoiset
e7f6388ac7
radv: use radv_dgc_with_task_shader() more
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29980 >
2024-07-01 16:54:09 +00:00
Samuel Pitoiset
484f613a97
radv: use radv_get_user_sgpr_loc() for the GS copy shader too
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29957 >
2024-07-01 13:39:51 +00:00
Samuel Pitoiset
f22ee282fc
radv: add radv_get_user_sgpr{_loc}() helpers
...
To simplify all the user sgpr computations which are very redundant.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29957 >
2024-07-01 13:39:51 +00:00
Samuel Pitoiset
bf852536fc
radv: rename radv_get_user_sgpr() to radv_get_user_sgpr_info()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29957 >
2024-07-01 13:39:51 +00:00
Samuel Pitoiset
cc48e12431
radv: suspend user conditional rendering when DGC has task shaders
...
Otherwise the DGC ACE IB would be uninitialized and it would hang.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29954 >
2024-06-28 14:35:22 +00:00
Konstantin Seurer
9ae1c5dce3
radv: Refactor radv_(dst|src)_access_flush
...
A few ifs should be faster and more readable than looping over every set
bit.
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
41619da397
radv: Handle AS access bits like shader storage access bits
...
Acceleration structures are accessed directly from shaders or via
PKT3_WRITE_DATA.
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
ca96abe1cb
radv: Remove write access handling from radv_dst_access_flush
...
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
3eefd0b040
radv: Remove handling for expanded access flags
...
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
135348a3c3
radv: Remove no-op access flag handling
...
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
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
Samuel Pitoiset
88864b707a
radv: enable task shaders support with NV DGC
...
No games are using task shaders with DGC at the moment but this is
supposed to work.
This fixes test_amplification_shader_execute_indirect from vkd3d.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29935 >
2024-06-28 06:19:56 +00:00
Samuel Pitoiset
e6aee84265
radv: fix a synchronization issue with non-preprocessed DGC with task shader
...
We need to make sure that the DGC ACE IB will wait for the DGC
prepare shader before the execution starts. When DGC is preprocessed
the synchronization is already correct.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29935 >
2024-06-28 06:19:56 +00:00
Samuel Pitoiset
1f7bdcfa8d
radv: add a helper that determines if DGC uses task shaders
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29935 >
2024-06-28 06:19:56 +00:00
Samuel Pitoiset
037eaa962b
radv: add support for executing the DGC ACE IB
...
It's disabled for now.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29814 >
2024-06-27 10:22:50 +00:00
Samuel Pitoiset
99cd8b6a54
radv: add a helper to execute a DGC IB
...
It will be used to execute DGC IB for task shaders too.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29814 >
2024-06-27 10:22:49 +00:00
Samuel Pitoiset
030d6e6280
radv/amdgpu: allow cs_execute_ib() to pass a VA instead of a BO
...
DGC IBs are considered external IBs because they aren't managed by
the winsys and the BO itself isn't really useful. Passing a VA instead
will help for future work.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29600 >
2024-06-24 08:02:07 +00:00
Samuel Pitoiset
e51ae61a4d
radv: add the DGC preprocess BO to the cmdbuf BO list
...
This wasn't needed in practice because DGC NV is only enabled for
vkd3d-proton and it always uses the global BO list but better to add it
anyways.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29600 >
2024-06-24 08:02:07 +00:00
Samuel Pitoiset
25bf3200e2
radv: remove useless draw_id to radv_emit_userdata_task()
...
It's always 0 for direct draws.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29830 >
2024-06-24 06:38:43 +00:00
Samuel Pitoiset
d2b1d38392
radv: remove useless masking in radv_cs_emit_indirect_mesh_draw_packet()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29830 >
2024-06-24 06:38:43 +00:00
Samuel Pitoiset
b2ff08800e
radv: remove dead mesh shader code for indirect draws
...
This path is never used by mesh shaders.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29830 >
2024-06-24 06:38:43 +00:00