Samuel Pitoiset
e8fb4b82e9
radv: fix emitting indirect descriptor sets in the DGC prepare shader
...
NIR_DEBUG=validate_ssa_dominance failed because dgc_cs_emit() weren't
actually in the if.
Fixes: 33a849e004 ("radv: emit indirect sets for indirect compute pipelines with DGC")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29782 >
2024-06-20 06:33:51 +00:00
Dave Airlie
6a464401d5
ac/radv/radeon: move film grain init to common code.
...
Share the film grain code between users.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29747 >
2024-06-19 20:51:53 +00:00
Dave Airlie
57535969cb
ac/radv/radeonsi: move av1 ctx/probs size/filling to common code.
...
All the av1 prob and ctx sizing code can be shared between
radv and radeonsi here.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29747 >
2024-06-19 20:51:52 +00:00
Dave Airlie
f1e27e156b
radv/video: use vcn ip versions for encoder detection.
...
This aligned with radeonsi code.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29747 >
2024-06-19 20:51:52 +00:00
Dave Airlie
b888946f7a
radv/video: fix layered decode h264/5 tests.
...
CTS tests both layered and separate DPB, but radv wasn't handling
layered properly when used with the tier 2 dpb handling.
This adjusts the addresses to use the layer index for tier2.
Fixes dEQP-VK.video.decode.*layered*
Cc: mesa-stable
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29758 >
2024-06-19 08:02:31 +00:00
Samuel Pitoiset
33a849e004
radv: emit indirect sets for indirect compute pipelines with DGC
...
This used to work by luck because the current DGC prepare shader
is using one descriptor set and it was the currently bound compute
shader... Using two descriptor sets or starting from 1 would just fail.
For indirect compute pipelines, descriptors must be emitted from the
DGC shader because there is no bound compute pipeline at all. This
solution is using indirect descriptor sets because it's much shorter
and easier to implement. This could be improved but nothing uses
indirect compute pipelines and this is like experimental stuff.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29700 >
2024-06-18 13:50:16 +00:00
Samuel Pitoiset
b1ba02e707
radv: force using indirect descriptor sets for indirect compute pipelines
...
Emitting descriptors in DGC is a huge pain but using indirect descriptor
sets is much easier.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29700 >
2024-06-18 13:50:16 +00:00
Timur Kristóf
0bf10ad4ad
radv: Use number of TES inputs for TCS-TES linking.
...
This is to match what ac_nir_lower_tess_io_to_mem also does.
Doesn't address any known bug, but it's theoretically possible
that TCS outputs_written and TES inputs_read mismatch, so let's
be on the safe side here.
Fixes: be49b02f05
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29696 >
2024-06-18 12:06:22 +00:00
Alyssa Rosenzweig
15257b65c6
treewide: use nir_metadata_control_flow
...
Via Coccinelle patch:
@@
@@
-nir_metadata_block_index | nir_metadata_dominance
+nir_metadata_control_flow
...plus some manual fixups for call sites missed by coccinelle.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Acked-by: Karol Herbst <kherbst@redhat.com>
Acked-by: Juan A. Suarez Romero <jasuarez@igalia.com> [broadcom]
Acked-by: Vasily Khoruzhick <anarsoul@gmail.com> [lima]
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29745 >
2024-06-17 16:28:14 -04:00
Daniel Schürmann
7af16e9f1e
nir/shader_info: remove uses_demote
...
This flag is mostly redundant with uses_discard and was only
introduced to implement demote with LLVM when it didn't have
that intrinsic.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27617 >
2024-06-17 19:37:16 +00:00
Daniel Schürmann
d5821bdf7d
radv: emit discard as demote by default
...
Also removes radv_lower_discard_to_demote debug option.
Totals from 1506 (1.90% of 79439) affected shaders: (GFX11)
MaxWaves: 46432 -> 46448 (+0.03%)
Instrs: 664515 -> 667914 (+0.51%); split: -0.15%, +0.67%
CodeSize: 3569656 -> 3583440 (+0.39%); split: -0.12%, +0.51%
VGPRs: 50100 -> 49680 (-0.84%); split: -0.96%, +0.12%
Latency: 4221359 -> 4217875 (-0.08%); split: -0.67%, +0.59%
InvThroughput: 628809 -> 625565 (-0.52%); split: -0.53%, +0.02%
VClause: 9948 -> 9965 (+0.17%); split: -0.36%, +0.53%
SClause: 19656 -> 19695 (+0.20%); split: -0.77%, +0.97%
Copies: 32113 -> 33513 (+4.36%); split: -1.59%, +5.95%
Branches: 8406 -> 8378 (-0.33%)
PreSGPRs: 42328 -> 42555 (+0.54%); split: -0.39%, +0.93%
PreVGPRs: 38451 -> 38203 (-0.64%); split: -0.78%, +0.14%
VALU: 390770 -> 390208 (-0.14%); split: -0.16%, +0.02%
SALU: 43318 -> 46374 (+7.05%); split: -0.08%, +7.14%
VMEM: 15052 -> 15051 (-0.01%)
SMEM: 37225 -> 37215 (-0.03%); split: -0.03%, +0.01%
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27617 >
2024-06-17 19:37:15 +00:00
Samuel Pitoiset
bd59478d2f
radv: implement streamout on GFX12
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29676 >
2024-06-17 14:46:36 +00:00
Samuel Pitoiset
aa9dfcad50
radv/nir: lower nir_intrinsic_load_xfb_state_address_gfx12_amd
...
This intrinsic returns a 64-bit address that points to the streamout
state buffer.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29676 >
2024-06-17 14:46:36 +00:00
Samuel Pitoiset
a9b8320031
radv: declare a new user SGPR for the streamout state buffer on GFX12
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29676 >
2024-06-17 14:46:36 +00:00
Samuel Pitoiset
ef6deb35ef
radv: update configuring WALK_ALIGN8_PRIM_FITS_ST on GFX12
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29676 >
2024-06-17 14:46:36 +00:00
Samuel Pitoiset
07eb970d67
radv: always save/restore all shader objects for internal operations
...
If the application binds graphics shaders and that RADV performs an
internal operation with a compute pipeline, no shader objects would be
restored because binding the internal compute pipeline resets the ESO
state.
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29678 >
2024-06-17 13:46:50 +00:00
Samuel Pitoiset
10bd300b68
radv: allow VK_NV_device_generated_commands_{compute} with LLVM
...
DGC was disabled for LLVM due to 5/8 components SSBO stores but they
were not expected to work and this has been changed since a977a51a21
("radv: stop using 5/8 component SSBO stores"). No strong reason to
not enable it.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29714 >
2024-06-17 12:02:10 +00:00
Samuel Pitoiset
8fcfadf28e
radv: store a pointer to the logical device in dgc_cmdbuf
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29725 >
2024-06-17 06:45:44 +00:00
Samuel Pitoiset
7fb401c7b2
radv: add a helper to load the pipeline VA for DGC
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29725 >
2024-06-17 06:45:44 +00:00
Samuel Pitoiset
57206eb888
radv: remove redundant nir_builder param in some DGC helpers
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29725 >
2024-06-17 06:45:44 +00:00
Samuel Pitoiset
7ff6f492d5
radv: add new macros for emiting packets in DGC
...
This is way cleaner.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29725 >
2024-06-17 06:45:44 +00:00
Samuel Pitoiset
85d79376d8
radv: do not use nir_pkt3() when the packet len is constant with DGC
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29725 >
2024-06-17 06:45:44 +00:00
Samuel Pitoiset
dd66e43bd9
radv: remove dynamic uniform/storage buffers support with DGC
...
vkd3d-proton is the only user of NV DGC and it doesn't need that.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29726 >
2024-06-17 06:13:57 +00:00
Samuel Pitoiset
3f9fe2dbe1
radv: use BDA in the DGC prepare shader
...
Only for buffers that are managed by the application (ie. preprocess,
stream and sequence buffers). For future work.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29605 >
2024-06-14 06:35:18 +00:00
Samuel Pitoiset
730ba8322f
radv: fix incorrect buffer_list advance for multi-planar descriptors
...
If we have an array of multi-planar descriptors, buffer_list was
incorrectly incremented and this could have overwritten some BO entries.
In practice, this situation should be very rare because most of the
applications enable the global BO list.
Cc: mesa-stable
Closes : #10559
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28816 >
2024-06-14 06:14:30 +00:00
Samuel Pitoiset
fa634503ce
radv: emit SPI_GS_THROTTLE_CNTL1 when the attr ring is emitted
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29640 >
2024-06-13 10:24:11 +00:00
Samuel Pitoiset
028d573d37
radv: do not set registers set by CLEAR_STATE in the preamble on GFX10-11.5
...
Based on RadeonSI 7baeb54c2a ("radeonsi: don't set registers set by
CLEAR_STATE in the preamble for gfx10-11").
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29640 >
2024-06-13 10:24:11 +00:00
Samuel Pitoiset
a95d7e46b6
radv: update VGT_TESS_DISTRIBUTION.ACCUM_ISOLINE value
...
Based on PAL/RadeonSI.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29640 >
2024-06-13 10:24:11 +00:00
David Rosca
b754ad8f15
radv/video: Add missing VCN 3.0.2 to decoder init switch
...
Fixes video decode on Steam Deck.
Fixes: d599391ac9 ("radv/video: use vcn ip version in more places.")
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29688 >
2024-06-13 07:45:40 +00:00
Samuel Pitoiset
51d1e005e8
radv: use the common SQTT implementation
...
I have verified the generated command stream using PM4 is similar to
the previous one on POLARIS10, VEGA10, NAVI21 and NAVI31.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29499 >
2024-06-11 06:46:55 +00:00
Samuel Pitoiset
ea8f29b4a7
radv: emit more consecutive registers for SQTT on GFX8-9
...
This change is only useful to compare the command stream generated by
PM4 in the next commit.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29499 >
2024-06-11 06:46:55 +00:00
Samuel Pitoiset
b82e5c8da8
ac,radv,radeonsi: add more parameters to ac_sqtt
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29499 >
2024-06-11 06:46:55 +00:00
Samuel Pitoiset
155399d03b
ac,radv: add a helper for SQTT control register
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29499 >
2024-06-11 06:46:55 +00:00
Pierre-Eric Pelloux-Prayer
a7880f3edb
radv/sqtt: use radeon_check_space before emit_spm_*
...
This fixes the following error on a rdna2:
radeon_set_uconfig_reg_seq: Assertion `cs->cdw + 2 + num <= cs->reserved_dw' failed.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29499 >
2024-06-11 06:46:55 +00:00
Samuel Pitoiset
a80a1c9838
radv: don't assume that TC_ACTION_ENA invalidates L1 cache on gfx9
...
Ported from RadeonSI 279315fd73 ("radeonsi: don't assume that
TC_ACTION_ENA invalidates L1 cache on gfx9")
Thanks to Rhys for noticing this by inspection.
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29644 >
2024-06-11 06:15:12 +00:00
Samuel Pitoiset
128cca21c0
radv: pass a radv_shader to radv_get_compute_pipeline_metadata()
...
And rename to radv_get_compute_shader_metadata().
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29652 >
2024-06-10 17:31:12 +00:00
Samuel Pitoiset
d4ccae739b
radv: fix creating unlinked shaders with ESO when nextStage is 0
...
When nextStage is 0, the driver needs to assume that a stage might be
used with any valid next stages.
Fixes new dEQP-VK.shader_object.binding.*_no_next_stage.
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29567 >
2024-06-07 12:21:38 +00:00
Friedrich Vock
f1742d36f3
radv/rt: Fix memory leak when compiling libraries
...
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29579 >
2024-06-06 21:56:11 +00:00
Samuel Pitoiset
afa2070c99
radv: initialize compute preambles with the common helper
...
The PM4 mechanism can emit paired packets on GFX11+ when possible.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29452 >
2024-06-06 20:26:47 +00:00
Samuel Pitoiset
15fe733703
radv: add a helper to get image VA
...
Similar to buffer, and less error prone.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29428 >
2024-06-06 18:21:33 +00:00
Rhys Perry
41c5f71343
radv: lower sub-dword push constants
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29480 >
2024-06-06 17:52:05 +00:00
Samuel Pitoiset
5b6207b282
radv: only set valid bitfields for CB/DS surfaces address on GFX12
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29566 >
2024-06-06 15:42:35 +00:00
Samuel Pitoiset
fe78ad2690
radv: fix emitting VGT_PRIMITIVEID_RESET in the GFX preamble on GFX12
...
It's a uconfig register.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29566 >
2024-06-06 15:42:35 +00:00
Samuel Pitoiset
be3c837c04
radv: update configuring COVERAGE_TO_SHADER_SELECT on GFX12
...
This bit has been moved to SPI_PS_INPUT_ENA.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29566 >
2024-06-06 15:42:35 +00:00
Samuel Pitoiset
27496928e4
radv: update configuring depth clamp enable on GFX12
...
DISABLE_VIEWPORT_CLAMP has been moved to a new register.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29566 >
2024-06-06 15:42:35 +00:00
Samuel Pitoiset
8cb2cad434
ac,radv,radeonsi: add a function to build texture descriptors
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29321 >
2024-06-06 10:15:10 +00:00
Samuel Pitoiset
4bb308d403
radv: use pipe_format when building image view descriptors
...
This simplifies things before adding a common helper for building
texture descriptors.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29321 >
2024-06-06 10:15:10 +00:00
Samuel Pitoiset
57d0d63d01
radv: only emit CB_COLOR0_DCC_CONTROL on GFX8
...
This register doesn't exist on GFX6-7 (no DCC at all).
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29545 >
2024-06-06 07:58:19 +02:00
Samuel Pitoiset
07b0096011
radv: only emit SPI_SHADER_PGM_SRC3_GS on GFX7+
...
This register doesn't exist on GFX6.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29545 >
2024-06-06 07:58:00 +02:00
Samuel Pitoiset
4a7150b469
radv: do not set VGT_SHADER_STAGES_EN.DYNAMIC_HS on GFX9
...
This bit doesn't exist.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29545 >
2024-06-06 07:58:00 +02:00