Samuel Pitoiset
842603dc4f
radv/amdgpu: add a way to identify preamble/postamble when dumping CS
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38366 >
2025-11-12 08:52:17 +00:00
Autumn Ashton
2705d8bd8b
radv/video: Implement VK_VALVE_video_encode_rgb_conversion
...
This is used by Steam Link VR (driver_vrlink) to avoid doing YUV conversion itself.
Signed-off-by: Autumn Ashton <misyl@froggi.es>
Reviewed-by: David Rosca <david.rosca@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37500 >
2025-11-12 08:25:36 +00:00
Natalie Vock
73a31dafbc
radv: Fix PSO history with RT pipelines
...
1. The prolog needs to have a null check. Libraries don't have prologs.
2. We only need to print the shaders actually included in this pipeline.
Libraries were already printed separately.
3. The traversal shader was wrongly omitted from the output.
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38355 >
2025-11-12 08:00:54 +00:00
Samuel Pitoiset
0dba538643
radv/meta: fuse depth/stencil aspects copy with the GFX path
...
Depth/stencil copies on graphics are twice as fast now.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38139 >
2025-11-12 07:35:33 +00:00
Samuel Pitoiset
9d3dd174b8
radv/meta: rework radv_meta_nir_texel_fetch_build_func
...
This add a binding parameter that will be used for fused depth/stencil
copies.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38139 >
2025-11-12 07:35:33 +00:00
Samuel Pitoiset
332f881375
radv/meta: simplify aspect/formats in radv_gfx_copy_image()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38139 >
2025-11-12 07:35:32 +00:00
Samuel Pitoiset
cd59db45f9
radv/meta: simplify radv_gfx_copy_memory_to_image() even more
...
Selecting formats can be simplified.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38139 >
2025-11-12 07:35:32 +00:00
Samuel Pitoiset
ed05c3fc31
radv/meta: remove multiple aspects in radv_gfx_copy_memory_to_image()
...
Only one aspect at any time is valid.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38139 >
2025-11-12 07:35:31 +00:00
Samuel Pitoiset
a1884dc737
radv/meta: remove radv_meta_blit2d_rect
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38139 >
2025-11-12 07:35:31 +00:00
Samuel Pitoiset
1319b2bef6
radv/meta: split radv_meta_blit2d() into two separate functions
...
It's more code but it's definitely easier to read and it will allow us
to do more cleanups/optimizations.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38139 >
2025-11-12 07:35:30 +00:00
Samuel Pitoiset
bb3f69fefe
radv/meta: remove useless blit2d_src_temps
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38139 >
2025-11-12 07:35:29 +00:00
Eric Engestrom
f30e5ff44b
ci: uprev vkd3d
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
03cca4cd97...4acd227131
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38370 >
2025-11-11 20:15:21 +00:00
Daniel Schürmann
5682e39e6b
amd: enable load/store_shared2_amd for GFX6
...
Totals from 1509 (2.43% of 62200) affected shaders: (Pitcairn)
MaxWaves: 8078 -> 8057 (-0.26%); split: +0.09%, -0.35%
Instrs: 977182 -> 951746 (-2.60%); split: -2.62%, +0.02%
CodeSize: 4951468 -> 4758192 (-3.90%); split: -3.92%, +0.01%
SGPRs: 76704 -> 76696 (-0.01%)
VGPRs: 81092 -> 81068 (-0.03%); split: -0.34%, +0.31%
Latency: 11663237 -> 11526070 (-1.18%); split: -1.19%, +0.01%
InvThroughput: 6198904 -> 6114851 (-1.36%); split: -1.43%, +0.07%
VClause: 26656 -> 26655 (-0.00%); split: -0.05%, +0.05%
SClause: 22304 -> 22307 (+0.01%); split: -0.03%, +0.04%
Copies: 107503 -> 109564 (+1.92%); split: -0.23%, +2.15%
Branches: 22917 -> 22918 (+0.00%)
PreSGPRs: 42246 -> 42242 (-0.01%); split: -0.01%, +0.00%
PreVGPRs: 64561 -> 64761 (+0.31%); split: -0.01%, +0.32%
VALU: 600285 -> 601139 (+0.14%); split: -0.26%, +0.40%
SALU: 130622 -> 130851 (+0.18%); split: -0.16%, +0.33%
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37682 >
2025-11-11 17:12:17 +00:00
Samuel Pitoiset
0d9d45db4e
radv: add vk_wsi_disable_unordered_submits and enable for GTK
...
GTK is missing a semaphore between QueueSubmit() and QueuePresent()
causing the WSI submit to be "unordered" and to immediately signal the
semaphores (because it's missing a wait semaphore in QueuePresent()).
The workaround is to disable unordered WSI submits until GTK fixes it
properly.
Cc: "25.3"
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14087
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38351 >
2025-11-11 12:13:41 +00:00
Daniel Schürmann
668259ef0b
aco/scheduler: move clauses through RAR dependencies
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
For simplicity, we limit this feature to only one RAR-dependency per clause.
This allows to quickly correct the register demand changes that occur by
switching the kill flags.
Totals from 5861 (7.34% of 79839) affected shaders: (Navi48)
Instrs: 4891340 -> 4883789 (-0.15%); split: -0.21%, +0.06%
CodeSize: 25556612 -> 25527244 (-0.11%); split: -0.16%, +0.05%
VGPRs: 347044 -> 347140 (+0.03%); split: -0.13%, +0.16%
Latency: 32697095 -> 32642428 (-0.17%); split: -0.25%, +0.08%
InvThroughput: 4975909 -> 4975086 (-0.02%); split: -0.06%, +0.05%
VClause: 102152 -> 93852 (-8.13%); split: -8.22%, +0.10%
SClause: 101232 -> 101205 (-0.03%); split: -0.03%, +0.00%
Copies: 305189 -> 305651 (+0.15%); split: -0.56%, +0.71%
Branches: 87032 -> 87045 (+0.01%); split: -0.00%, +0.02%
VALU: 2776634 -> 2777097 (+0.02%); split: -0.06%, +0.08%
SALU: 662066 -> 660379 (-0.25%); split: -0.26%, +0.01%
VOPD: 4801 -> 4800 (-0.02%); split: +1.21%, -1.23%
Totals from 5680 (7.12% of 79825) affected shaders: (Vangogh)
MaxWaves: 111282 -> 111290 (+0.01%)
Instrs: 4955907 -> 4950709 (-0.10%); split: -0.15%, +0.04%
CodeSize: 26026264 -> 26014272 (-0.05%); split: -0.10%, +0.05%
VGPRs: 320784 -> 320776 (-0.00%); split: -0.03%, +0.03%
Latency: 35645457 -> 35584438 (-0.17%); split: -0.32%, +0.15%
InvThroughput: 8233912 -> 8236524 (+0.03%); split: -0.10%, +0.13%
VClause: 107017 -> 96804 (-9.54%); split: -9.69%, +0.15%
SClause: 98633 -> 98592 (-0.04%); split: -0.05%, +0.01%
Copies: 394041 -> 393584 (-0.12%); split: -0.52%, +0.40%
Branches: 120235 -> 120231 (-0.00%); split: -0.02%, +0.01%
VALU: 3183571 -> 3183114 (-0.01%); split: -0.06%, +0.05%
SALU: 735546 -> 734143 (-0.19%); split: -0.20%, +0.01%
Totals from 2507 (3.96% of 63370) affected shaders: (Vega10)
MaxWaves: 13643 -> 13637 (-0.04%)
Instrs: 1496453 -> 1496135 (-0.02%); split: -0.11%, +0.09%
CodeSize: 7777880 -> 7776608 (-0.02%); split: -0.09%, +0.07%
VGPRs: 134164 -> 134104 (-0.04%); split: -0.11%, +0.07%
Latency: 17465181 -> 17483075 (+0.10%); split: -0.36%, +0.47%
InvThroughput: 8830470 -> 8851751 (+0.24%); split: -0.09%, +0.33%
VClause: 42012 -> 38825 (-7.59%); split: -8.00%, +0.42%
SClause: 34586 -> 34549 (-0.11%); split: -0.12%, +0.01%
Copies: 137896 -> 137668 (-0.17%); split: -0.86%, +0.69%
VALU: 1092468 -> 1092240 (-0.02%); split: -0.11%, +0.09%
SALU: 132956 -> 132569 (-0.29%); split: -0.34%, +0.05%
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38135 >
2025-11-11 11:31:52 +00:00
Daniel Schürmann
65ba8a0e8b
aco/scheduler: refactor downwards dependency check
...
We can also ignore killed operands when checking for RAR dependencies
as these cannot appear later anymore.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38135 >
2025-11-11 11:31:52 +00:00
Daniel Schürmann
ce3cc03153
aco/scheduler: use hashmap for RAR_dependencies
...
Store information about the (relative) position of the RAR dependency.
This will allow to correct for register-demand changes when scheduling across.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38135 >
2025-11-11 11:31:52 +00:00
Daniel Schürmann
6c0dd8164f
aco/scheduler: remove MoveState::RAR_dependencies_clause
...
Since moving clauses as batch, this can easily be derived from RAR_dependencies.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38135 >
2025-11-11 11:31:52 +00:00
Daniel Schürmann
5ef47ba231
aco/scheduler: assert that the register demand stays within pre-determined bounds
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38135 >
2025-11-11 11:31:52 +00:00
Daniel Schürmann
82ba730994
aco/scheduler: remove unused include
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38135 >
2025-11-11 11:31:51 +00:00
Samuel Pitoiset
6929333b0f
ac/surface: ban 256KB swizzle modes for non-MSAA images on GFX11+
...
This seems to hurt more than it helps and AMD drivers also disable
256 KB for non-MSAA.
While we are at it, remove an useless check about GFX12 APUs because
they don't exist.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14237
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38219 >
2025-11-10 19:29:22 +00:00
Marek Olšák
0216f09e45
nir/lower_interpolation: check IO location correctly
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Vangogh timed out.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38337 >
2025-11-10 16:44:36 +00:00
Erik Faye-Lund
d607082b90
radeonsi/ci: document flake
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38345 >
2025-11-10 09:13:07 +00:00
Benjamin Cheng
82d944b388
radv/video: Fix dummy DPB addresses
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
This fixes the VVL PositiveVideoDecodeAV1.* tests, which trigger error
concealment. These DPB addresses would not be normally used, but get
used by the error concealment path.
Fixes: d103b76ad6 ("radv/video: add VK_KHR_video_decode_av1 support.")
Reviewed-by: David Rosca <david.rosca@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38311 >
2025-11-07 18:16:48 +00:00
Faith Ekstrand
35cdddf632
nir: Simplify assign_io_var_locations()
...
The size and stage parameters are left-overs from history. Originally,
the function acted on a list and so it needed an explicit stage and size
output. Now that it takes a NIR shader and a mode, we can just take the
stage from the shader and set num_(in|out)puts.
The one caller that actually used the explicit output parameter was
turnip. However, given that the helper sorts and re-numbers all the I/O
variables, it's not like changing num_(in|out)puts instead of writing it
to some other location is that big of a deal.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38297 >
2025-11-07 16:29:56 +00:00
Samuel Pitoiset
bbaaf2fec7
radv: move back ac_sqtt_{init,finish}() to the right places
...
Now that radv/tests no longer create compute pipelines.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38285 >
2025-11-07 12:19:38 +01:00
Samuel Pitoiset
d371061309
radv/tests: use vkGetPipelineKeyKHR() instead of compiling pipelines
...
Getting the pipeline key is enough for this set of tests.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38285 >
2025-11-07 12:15:38 +01:00
Samuel Pitoiset
dcb9ca1aa6
radv/ci: remove RADV_PERFTEST=video_encode,video_code for GFX6-7
...
It's not supported at all, so no need to force enable all video
extensions.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38280 >
2025-11-06 14:35:19 +00:00
Daniel Schürmann
f37bdd664d
amd/common: rename ac_fake_hw_db.h -> ac_surface_test.h
...
As the surface tests are the only user now.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37525 >
2025-11-06 13:53:07 +00:00
Daniel Schürmann
7e0ba40264
radeonsi: use ac_null_device_create() when AMD_FORCE_FAMILY is set
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37525 >
2025-11-06 13:53:07 +00:00
Daniel Schürmann
4d68056e83
radv: delete winsys/null/*
...
The null device works without winsys, and now can be found in
amd/common/ac_null_device.c.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37525 >
2025-11-06 13:53:07 +00:00
Daniel Schürmann
7d6de8b17e
amd, radv: create null device without winsys
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37525 >
2025-11-06 13:53:07 +00:00
Daniel Schürmann
04ebbc3c41
radv: remove radeon_winsys::get_chip_name() and use info->marketing_name directly
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37525 >
2025-11-06 13:53:07 +00:00
Daniel Schürmann
797ddfe4d2
radv/device: return early in radv_CreateDevice() if creating a null device
...
Also reorder initialization, so that everything required for compilation
is done first.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37525 >
2025-11-06 13:53:07 +00:00
Daniel Schürmann
23ef756496
radv/null_device: set more options which affect compilation
...
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37525 >
2025-11-06 13:53:06 +00:00
Daniel Schürmann
4ad9fb9d2e
radv/null_device: don't attempt to upload shaders
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37525 >
2025-11-06 13:53:06 +00:00
Daniel Schürmann
6c2d614412
radv: hash keep_executable_info into shader key rather than device cache key
...
for consistency.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37525 >
2025-11-06 13:53:06 +00:00
Daniel Schürmann
5ef8930636
radv: skip shader cache if trap handler is enabled
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37525 >
2025-11-06 13:53:06 +00:00
Natalie Vock
e3404af0ed
aco/ra: Handle call ABI constraints
...
Make sure no caller temporaries stay in call-clobbered registers during
execution of a function call.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37381 >
2025-11-06 12:09:43 +00:00
Natalie Vock
86a8b1753a
aco/ra: Handle callee ABI preserved register constraints
...
Block preserved register ranges while they can't yet be overwritten,
i.e. before p_spill_preserved and after the last p_reload_preserved.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37381 >
2025-11-06 12:09:42 +00:00
Natalie Vock
75b89f233f
aco/ra: Don't clear fixed operand sources if they were blocked
...
That would undo the blocking and allow for conflicting assignments.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37381 >
2025-11-06 12:09:42 +00:00
Natalie Vock
d4013e7432
aco/ra: Skip blocked regs in get_reg_impl
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37381 >
2025-11-06 12:09:41 +00:00
Natalie Vock
7ed1aea9c5
aco/ra: Also consider blocked registers as not containing temps
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37381 >
2025-11-06 12:09:41 +00:00
Natalie Vock
642b1f0dce
aco/ra: Add utility to clear PhysRegInterval
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37381 >
2025-11-06 12:09:40 +00:00
Natalie Vock
f0c613765c
aco: Add preload_preserved pseudo instruction
...
These are helper instructions for the spill_preserved pass to insert
reloads for registers that are preserved by the ABI, yet
clobbered by the callee shader.
There is one p_reload_preserved instruction at the end of each block.
This allows us to insert reloads early, to alleviate the high latency of
scratch reloads.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37381 >
2025-11-06 12:09:39 +00:00
David Rosca
9dbf49de2c
radv/video: Support intra only without dpb
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
For intra only we need to allocate internal dpb.
This was previously implemented for VP9 decode only, using a buffer.
Change it to image so that we don't have to handle it as special
case everywhere.
Reviewed-by: Benjamin Cheng <benjamin.cheng@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38158 >
2025-11-06 08:41:34 +00:00
David Rosca
bd151bf8b2
radv/video: Add NULL checks for picture parameters
...
Fixes vk_layer_validation_tests PositiveVideoDecode.* and
PositiveVideoDecode*.InlineSessionParams
Cc: mesa-stable
Reviewed-by: Benjamin Cheng <benjamin.cheng@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38158 >
2025-11-06 08:41:34 +00:00
David Rosca
23a3587aa6
radv/video: Correctly handle no feedback query for encode
...
Fixes vk_layer_validation_tests PositiveVideoEncodeAV1.*
Cc: mesa-stable
Reviewed-by: Benjamin Cheng <benjamin.cheng@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38158 >
2025-11-06 08:41:33 +00:00
David Rosca
5d28425a81
ac/parse_ib: Parse VCN_IB_COMMON_OP_RESOLVEINPUTPARAMLAYOUT
...
Reviewed-by: Benjamin Cheng <benjamin.cheng@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38158 >
2025-11-06 08:41:30 +00:00
David Rosca
ffb0b862dc
ac/parse_ib: Fix parsing multiple engine commands in one VCN IB
...
Reviewed-by: Benjamin Cheng <benjamin.cheng@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38158 >
2025-11-06 08:41:30 +00:00