Dave Airlie
9fab2072a3
radv/video: use the h264 defines for macroblock w/h
...
Just a cleanup, add some comments as well.
Reviewed-by: Lynne <dev@lynne.ee>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31158 >
2024-09-26 04:56:34 +00:00
Colin Marc
88dacc3d80
radv/video: set TemporalId correctly
...
This is only relevant for hierarchical coding using sub-layers.
Fixes: 967e4e09de ("radv/video: add h265 encode support")
Reviewed-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Colin Marc <hi@colinmarc.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31303 >
2024-09-26 04:18:11 +00:00
Samuel Pitoiset
a9095f0dbf
radv: do not keep executable info when compiling shaders for ESO
...
This is completely useless and it's wasting memory.
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31345 >
2024-09-25 08:33:31 +00:00
Samuel Pitoiset
f7482e85ba
radv: move updating compute scratch for RT when stack size is emitted
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31347 >
2024-09-25 07:56:58 +00:00
Samuel Pitoiset
ebe66dee08
radv: move emitting some RT user SGPRs when the RT pipeline is emitted
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31347 >
2024-09-25 07:56:58 +00:00
Konstantin Seurer
25b09b9c5a
radv: Fix report_ray_intersection affecting terminated rays
...
Fixes dEQP-VK.ray_tracing_pipeline.amber.flags-accept-first.
cc: mesa-stable
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31186 >
2024-09-24 16:18:31 +00:00
Rhys Perry
bf41cf2eef
radv/rt: don't split array/struct payload variables
...
If the shader has multiple payload variables, split passes might not
preserve the order and this can cause the offsets used for the stores to
not match the payload offsets for nir_intrinsic_trace_ray.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31204 >
2024-09-24 15:41:04 +00:00
Rhys Perry
204e446bcd
radv/rt: align constant data by 64 when inlining shaders
...
There's never any need for anything higher. If this were too high (such
as NIR_ALIGN_MUL_MAX), it would have caused issues.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31204 >
2024-09-24 15:41:04 +00:00
Samuel Pitoiset
cf536f63d1
radv: introduce dirty flags for shaders state
...
Instead of re-emitting some dynamic states when a new shader is bound,
only re-emit the user SGPR states. This is slightly more optimal.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31160 >
2024-09-24 06:00:00 +00:00
Samuel Pitoiset
8beea85232
radv: rename shader_query_state to task_state
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31160 >
2024-09-24 06:00:00 +00:00
Samuel Pitoiset
a0951bae70
radv: use only one user SGPR for all NGG state
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31160 >
2024-09-24 06:00:00 +00:00
Samuel Pitoiset
3022282ba3
radv: make sure to re-emit shader query state when a task shader is bound
...
This doesn't change anything in practice because if we have a task
shader, we also have a mesh shader and the state was already re-emitted.
Though, this will prevent a regression from the upcoming patches because
the user SGPR layout will change.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31160 >
2024-09-24 06:00:00 +00:00
Samuel Pitoiset
16341f41e1
radv: emit all shader related user SGPR states in one place
...
This will allow us to use only one user SGPR for NGG shaders, and also
further optimizations.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31160 >
2024-09-24 05:59:59 +00:00
Konstantin Seurer
00c94e0cd4
radv: Workaround apps using ray tracing when it is unsupported
...
Emitting bvh64_intersect_ray_amd will crash the compiler on pre-GFX10_3
hardware.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/11786
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30886 >
2024-09-23 14:02:28 +00:00
Samuel Pitoiset
5c897d00ef
radv: fix assigning mesh shader outputs when clip/cull distances are read in FS
...
The per-primitive output offsets need to be recomputed.
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31224 >
2024-09-23 12:12:13 +00:00
Samuel Pitoiset
80d60acb77
radv: only export KHR_video_maintenance1 with KHR_video_queue
...
It's required, otherwise dEQP-VK.info.device_extensions fails.
Fixes: b30462535b ("radv/video: add KHR_video_maintenance1 support")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31285 >
2024-09-20 15:26:28 +00:00
Samuel Pitoiset
cbae7792f9
radv: stop emulating GS invocations for legacy GS on RDNA1-2
...
This is basically a revert of !24231 . This emulation was introduced
to fix counting the number of GS invocations in cases it's VS/TES as
NGG (hw does that), but it's unnecessary.
Since the specification has been clarified and pipeline stat queries
are undefined for stages not present in pipelines.
See https://gitlab.khronos.org/vulkan/vulkan/-/merge_requests/6547
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31153 >
2024-09-20 12:28:08 +00:00
Konstantin Seurer
60c53f5e63
radv: Initialize sqtt state before meta state
...
Sqtt needs to be initialized before BVH build pipelines are compiled to
avoid crashes on startup.
Fixes: 5fa22f9 ("radv: regroup all tools initialization in one helper")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31207 >
2024-09-19 08:27:08 +00:00
Samuel Pitoiset
1d7b7b36a8
radv: stop reporting VKCTS conformance on GFX11+
...
Only GFX10.3 is conformant against VKCTS 1.3.x but we never submitted
any packages for GFX11+.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31219 >
2024-09-19 07:14:22 +00:00
Georg Lehmann
bc3b8c3a13
radv: advertise VK_KHR_shader_float_controls2
...
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31172 >
2024-09-18 20:46:17 +00:00
Samuel Pitoiset
71e9572e72
radv: update the stencil layout for DRLR feedback loops
...
HTILE decompresses both aspects.
Fixes: 3af0f0129c ("radv: fix DRLR with subpass input attachments and feedback loops")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31200 >
2024-09-18 08:05:32 +00:00
Samuel Pitoiset
231688ad57
radv: add missing cache flushes for DRLR feedback loops
...
We should make sure the attachment is readable after the transition.
Fixes: 3af0f0129c ("radv: fix DRLR with subpass input attachments and feedback loops")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31200 >
2024-09-18 08:05:32 +00:00
Samuel Pitoiset
ad3e6bb06a
radv: fix lowering VS inputs when offset >= stride on GFX6-7
...
This was supposed to be >=.
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31209 >
2024-09-18 07:21:28 +00:00
Samuel Pitoiset
656d7e887a
radv: fix lowering the view index to an input varying for FS
...
When multiview is used and the FS is compiled separately with GPL, the
view index still needs to be lowered, otherwise it's crashing later.
The lowering doesn't need to know the previous stage because ViewIndex
is a global thing (ie. it's neither a per-vertex or a per-primitive
varying).
This fixes recent
dEQP-VK.pipeline.pipeline_library.graphics_library.misc.other.view_index_from_device_index_*_pre_rasterization
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31192 >
2024-09-17 06:36:08 +00:00
Samuel Pitoiset
fb3b563d1f
radv: enable more properties with VK_KHR_maintenance5
...
They are all supported by the hw and this matches AMD drivers.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31129 >
2024-09-17 06:10:54 +00:00
Rohan Garg
85b8579bf6
radv: enable VK_KHR_shader_relaxed_extended_instruction
...
The extension only affects non semantic instructions that need no
handling in the backend compiler.
Signed-off-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Acked-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30791 >
2024-09-16 15:58:35 +00:00
Samuel Pitoiset
32567f6a2a
radv: compute shader hash for shaders created without internal cache
...
VK_KHR_pipeline_binary allows the application to take full control on
the cache and internal caches (disk or in-memory) can be disabled.
Though the shader hash should still be computed, otherwise all pipeline
binaries have a key with all zeroes.
Fixes: 8802612458 ("radv: advertise VK_KHR_pipeline_binary"
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31163 >
2024-09-16 13:53:36 +00:00
Samuel Pitoiset
ad68c83f92
radv: fix copying the pipeline binary key
...
Only the first byte was copied.
Fixes: be06bfcbed ("radv: add initial support for pipeline binaries")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31163 >
2024-09-16 13:53:36 +00:00
Samuel Pitoiset
f88cf56087
radv/rt: skip shaders cache for pipelines created with the capture/replay flag
...
Otherwise, if a pipeline is found in cache it will use a different
shader arena for allocation and the capture replay shader group handles
won't match.
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31188 >
2024-09-16 12:29:49 +00:00
Hans-Kristian Arntzen
f3c6bbdd8d
radv: Always make sure to write the pipeline binary key.
...
There's nothing in spec that says that key is only written
if data is also written.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
Fixes: be06bfcbed ("radv: add initial support for pipeline binaries")
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31162 >
2024-09-16 11:38:07 +00:00
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
b377ddfd04
radv,radeonsi: remove remaining occurrences of TCS epilog
...
TCS epilog has been removed few months ago.
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
Konstantin Seurer
bacf9752f4
radv: Work around broken terrain in Warhammer III
...
Hiding storage support for depth formats forces the game to take a
different, working path for terrain height map initialization.
cc: mesa-stable
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31152 >
2024-09-13 07:48:02 +00:00
Ian Romanick
3b13a0018f
radv: Use nir_opt_generate_bfi to generate bitfield_select
...
v2: Move to radv_optimize_nir_algebraic. Suggested by Georg.
Tested-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31006 >
2024-09-13 00:21: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
Dave Airlie
7c6e3c70b6
radv/video/enc: report pps overrides in feedback for h265
...
radv does change h265 usually so report in feedback info.
Fixes: 967e4e09de ("radv/video: add h265 encode support")
Reviewed-by: Lynne <dev@lynne.ee>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31135 >
2024-09-12 10:58:02 +10:00
Dave Airlie
8d08e92199
radv/video: fix encode reference slot counting
...
This needs the max of slot indices.
Fixes: 54d499818c ("radv/video: add initial support for encoding with h264.")
Reviewed-by: Lynne <dev@lynne.ee>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31135 >
2024-09-12 10:57:58 +10:00
Dave Airlie
e89f4a48fd
radv: Fix radeon_enc_code_ue with values over 2^16
...
This ports this fixes from radeonsi:
138ba42a87 ("radeonsi/vcn: Fix radeon_enc_code_ue with values over 2^16")
Cc: mesa-stable
Reviewed-by: Lynne <dev@lynne.ee>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31135 >
2024-09-12 10:57:18 +10:00
Daniel Schürmann
a9d64fa1bd
radv: promote VK_NV_compute_shader_derivatives -> VK_KHR_compute_shader_derivatives
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30972 >
2024-09-11 08:37:46 +00:00
Samuel Pitoiset
b4ae6eb5fc
radv: use radv_upload_indirect_descriptor_sets() in 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
7be965bf17
radv: stop allocating upload space for indirect descriptors with DGC
...
The indirect descriptors are uploaded from the CPU and nothing needs
to be allocated in the DGC buffer.
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
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