Samuel Pitoiset
a5bdc4b19a
radv: fix a compilation warning in radv_bind_graphics_shaders()
...
../src/amd/vulkan/radv_cmd_buffer.c: In function ‘radv_bind_graphics_shaders’:
../src/amd/vulkan/radv_cmd_buffer.c:9366:65: warning: array subscript -1 is below array bounds of ‘struct radv_shader *[14]’ [-Warray-bounds=]
9366 | cmd_buffer->state.last_vgt_shader = cmd_buffer->state.shaders[last_vgt_api_stage];
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27670 >
2024-02-20 08:47:18 +00:00
Samuel Pitoiset
2deaf632e2
radv: use radv_shader_info for computing NGG LDS layout
...
This should be similar.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27575 >
2024-02-19 16:30:08 +00:00
Samuel Pitoiset
21577bfacb
radv: store the number of outputs for VS/TES as NGG
...
To compute NGG info without relying on NIR.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27575 >
2024-02-19 16:30:08 +00:00
Samuel Pitoiset
5e1da1d10f
radv: determine the number of invocations only for VS/TES as NGG
...
To make it clear that this doesn't depend on GS.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27575 >
2024-02-19 16:30:08 +00:00
Samuel Pitoiset
12b5c3f00e
radv: set radv_vgt_shader_key::ngg_streamout for ESO
...
Not used yet, but will be needed.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27575 >
2024-02-19 16:30:08 +00:00
Samuel Pitoiset
9f660d8c72
radv: prefix radv_vgt_shader_key::streamout with ngg
...
This is only for NGG streamout (GFX11).
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27575 >
2024-02-19 16:30:08 +00:00
Samuel Pitoiset
b98a7abcd6
radv: determine the ES stage for merged NGG shaders compiled separately
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27575 >
2024-02-19 16:30:08 +00:00
Samuel Pitoiset
eea75777be
radv: pass the ES stage when emitting geometry shader with ESO
...
Not used yet, but will be needed for NGG support.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27575 >
2024-02-19 16:30:08 +00:00
Samuel Pitoiset
10b8e52780
radv: disable conditional rendering if enabled when preprocessing DGC
...
vkCmdPreprocessGeneratedCommandsNV() shouldn't be affected by
conditional rendering. Confirmed with Ricardo after writing some
tests against NVIDIA.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27658 >
2024-02-19 08:07:41 +01:00
Samuel Pitoiset
5b0e4dd6e8
radv: stop using conditional rendering internally when preprocessing DGC
...
Preprocess and execute can be executed on different queue families. If
preprocess is executed on GFX and the indirect count optimization is
enabled, this will generate an empty cmdbuf. Expect GPU hangs if this
DGC IB is then executed on ACE.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27658 >
2024-02-19 08:05:13 +01:00
Bas Nieuwenhuizen
c7b2ac3377
radv: Remove ray_launch_size_addr_amd system value.
...
Not used anymore, so clean it up.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27664 >
2024-02-17 11:08:16 +00:00
Chia-I Wu
ec5d0ffb04
radv: fix pipeline stats mask
...
Left-shifting by 11*8 or 14*8 is undefined. This fixes many
dEQP-VK.query_pool.statistics_query.* failures (but not pre-existing
flakes) for release builds using clang.
Fixes: 48aabaf225 ("radv: do not harcode the pipeline stats mask for query resolves")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27651 >
2024-02-16 17:04:30 +00:00
Samuel Pitoiset
7009f00ae0
radv: re-enable GS_FAST_LAUNCH=2 by default on GFX11
...
The performance issue is fixed. This adds RADV_DEBUG=nogsfastlaunch2
to disable it in case users still report issues with it.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27636 >
2024-02-16 15:58:31 +00:00
Samuel Pitoiset
3713f27260
radv: only configure {XYZ_DIM,DRAW_INDEX}_REG for mesh shaders if enabled
...
This seems to be the root cause of the huge performance issue with
GS_FAST_LAUNCH=2 on RDNA3 dGPUs. Probably a firmware bug, but on dGPUs
only, because on RDNA3 APUs this is just working...
With that GS_FAST_LAUNCH=2 can be re-enabled by default on GFX11.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27636 >
2024-02-16 15:58:31 +00:00
Martin Roukala (né Peres)
dce2069054
radv/ci: switch vkcts-polaris10 from mupuf to KWS' farm
...
The DUT that currently hosts the Polaris10 will be used for NVK
testing, so let's move the polaris10 job to another farm.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27652 >
2024-02-16 14:08:33 +00:00
Samuel Pitoiset
6894692d27
radv: enable GS_FAST_LAUNCH=2 by default for RDNA3 APUs (Phoenix)
...
GS_FAST_LAUNCH=1 shouldn't be used on GFX11 but it's still needed for
dGPUs (eg. NAVI31) because it destroys performance for unknown reasons.
On RDNA3 APUs, GS_FAST_LAUNCH=2 seems to be required for working
mesh shaders and performance is fine. There is possibly a firmware bug
on APUs that would explain why GS_FAST_LAUNCH=1 doesn't work on Phoenix.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10583
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10397
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27618 >
2024-02-16 07:32:18 +00:00
Samuel Pitoiset
0c2213cbbd
radv: fix setting the rasterized primitive for ESO
...
This was missing.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27479 >
2024-02-16 07:08:36 +00:00
Samuel Pitoiset
b199aa1bda
radv: fix selecting shader variants with ESO
...
The shader BO for variants (like as LS) wasn't added to the BO list.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27479 >
2024-02-16 07:08:36 +00:00
Samuel Pitoiset
a47de04ff3
radv: make sure to reset the GS copy shader with ESO
...
It should be NULL when not used. This is also slightly more optimal
than doing it in the loop.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27479 >
2024-02-16 07:08:36 +00:00
Samuel Pitoiset
b1d4a7a95e
radv: fix re-emitting DB_RENDER_CONTROL when resetting gfx pipeline state
...
This is only used by internal operations but the state wasn't
re-emitted.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27479 >
2024-02-16 07:08:36 +00:00
Samuel Pitoiset
64e18b04d9
radv: clear the custom blend mode when resetting gfx pipeline state
...
This custom blend mode is only used by internal operations and they
don't use shader objects.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27479 >
2024-02-16 07:08:35 +00:00
Samuel Pitoiset
b0a31a62e4
radv: clear RADV_CMD_DIRTY_SHADERS when resetting the shader object state
...
Binding a pipeline resets the shader object state and it's more optimal
to clear this flag here.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27479 >
2024-02-16 07:08:35 +00:00
Georg Lehmann
ad5fbc4407
aco: use fmamk/ak instead of fma with inline constant for more VOPD
...
Foz-DB navi31, forced wave32:
Totals from 24438 (31.29% of 78112) affected shaders:
Instrs: 21632788 -> 21551766 (-0.37%); split: -0.38%, +0.01%
CodeSize: 126181860 -> 126083848 (-0.08%); split: -0.10%, +0.02%
Latency: 162491062 -> 162516234 (+0.02%); split: -0.05%, +0.07%
InvThroughput: 31121194 -> 31002125 (-0.38%); split: -0.40%, +0.02%
VClause: 420176 -> 420169 (-0.00%); split: -0.00%, +0.00%
SClause: 791844 -> 791762 (-0.01%); split: -0.01%, +0.00%
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27523 >
2024-02-15 12:38:55 +01:00
Hans-Kristian Arntzen
786c1b8322
radv: export multiview in VS/TES/GS for depth-only rendering
...
For depth-only rendering, a VS would not export layer properly.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10606
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27615 >
2024-02-15 09:07:42 +00:00
Georg Lehmann
e136a0629d
radv/gfx11+: add rtwave32 perftest option
...
Useful for testing compiler changes and performance considerations.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27584 >
2024-02-14 17:11:01 +00:00
Samuel Pitoiset
32c1e45718
radv: fix emitting VS prologs for merged shaders compiled separately on GFX10+
...
RSRC1 isn't equal to the VS RSRC1 and both config registers need to
be re-emitted.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27574 >
2024-02-13 14:01:42 +00:00
Samuel Pitoiset
6762307698
radv: cleanup radv_shader_combine_cfg_vs_tcs()
...
To match radv_shader_combine_cfg_vs_gs().
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27574 >
2024-02-13 14:01:42 +00:00
Georg Lehmann
6121497228
aco/gfx11+: limit hard clauses to 32 instructions
...
https://github.com/llvm/llvm-project/pull/81287
Foz-DB Navi31:
Totals from 406 (0.52% of 78112) affected shaders:
Instrs: 585342 -> 585750 (+0.07%)
CodeSize: 3077856 -> 3079456 (+0.05%); split: -0.00%, +0.05%
Latency: 3263165 -> 3263326 (+0.00%); split: -0.00%, +0.01%
InvThroughput: 664092 -> 664114 (+0.00%); split: -0.00%, +0.00%
VClause: 11143 -> 11537 (+3.54%)
SClause: 11878 -> 11884 (+0.05%)
Copies: 39807 -> 39815 (+0.02%)
Cc: mesa-stable
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27569 >
2024-02-13 13:40:52 +00:00
Samuel Pitoiset
0c05bdf1c1
radv/ci: enable RADV_PERFTEST=shader_object on VEGA10
...
Renoir currently hangs in Mesa CI. Needs to be investigated.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27433 >
2024-02-13 09:14:21 +00:00
Samuel Pitoiset
bead3f2ec3
radv: allow RADV_PERFTEST=shader_object on GFX9/VEGA10
...
It's passing VKCTS on VEGA10 but for some reasons RENOIR currently
hangs.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27433 >
2024-02-13 09:14:21 +00:00
Rhys Perry
926d9f1cef
radv: support minmax filter for more formats
...
Support should be the same as AMDVLK, except for these formats:
- VK_FORMAT_R4G4_UNORM_PACK8
- VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT
- VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT
- VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR
- VK_FORMAT_A8_UNORM_KHR
- VK_FORMAT_X8_D24_UNORM_PACK32
- VK_FORMAT_D24_UNORM_S8_UINT
And the various emulated compressed formats.
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/27551 >
2024-02-12 20:05:27 +00:00
Konstantin Seurer
fb62bffcda
radv: Wire up ac_gather_context_rolls
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27322 >
2024-02-12 14:04:24 +00:00
Konstantin Seurer
ba6d6e5ee1
amd/common: Use the correct register table for GFX10_3
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27322 >
2024-02-12 14:04:24 +00:00
Samuel Pitoiset
6cab5559f9
radv: add support for emitting TES+GS compiled separately on GFX9+
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27432 >
2024-02-12 08:09:28 +00:00
Samuel Pitoiset
dd92f5f664
radv: bind the vertex input SGPR only for relevant stages
...
Otherwise, user_data_0 is wrong if merged shaders are compiled
separately and if we have GS.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27432 >
2024-02-12 08:09:28 +00:00
Samuel Pitoiset
d64d7373f3
radv: declare AC_UD_TES_STATE for separate compilation of GS on GFX9+
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27432 >
2024-02-12 08:09:28 +00:00
Samuel Pitoiset
e15d1ed7cb
radv: declare streamout buffers for TES+GS compiled separately on GFX9+
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27432 >
2024-02-12 08:09:28 +00:00
Samuel Pitoiset
83bc7e27a5
radv: force GS stage for TES as ES compiled separately on GFX9+
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27432 >
2024-02-12 08:09:28 +00:00
Samuel Pitoiset
b58de424f4
radv: fix RGP barrier reason for RP barriers inserted by the runtime
...
Without that, RGP is confused and it's reporting CmdPipelineBarrier()
instead of CmdRenderPassSync().
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27546 >
2024-02-12 07:50:16 +00:00
Hans-Kristian Arntzen
8b4259e69b
wsi/x11: Disable vk_xwayland_wait_ready by default on most drivers.
...
Venus is special and still requires extra waits.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27074 >
2024-02-10 11:47:22 +00:00
Georg Lehmann
36f23bf96d
aco: print exec/vcc_lo/hi for single dword access
...
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27455 >
2024-02-09 22:14:44 +00:00
Georg Lehmann
684014ff12
aco: print permlane16 bc/fi
...
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27455 >
2024-02-09 22:14:44 +00:00
Georg Lehmann
f469fda44c
aco: don't print hi() for permlane opsel
...
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27455 >
2024-02-09 22:14:44 +00:00
Georg Lehmann
b59f5f9c85
aco: print neg prettier for packed math
...
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27455 >
2024-02-09 22:14:44 +00:00
Georg Lehmann
767eb15ddc
aco/print_ir: don't use alloca for input modifiers
...
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27455 >
2024-02-09 22:14:44 +00:00
Georg Lehmann
cd6d9c5918
aco: don't remove branches that skip v_writelane_b32
...
Cc: mesa-stable
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27537 >
2024-02-09 21:55:02 +00:00
Georg Lehmann
2c4980716f
aco: add packed fma dpp note to README-ISA
...
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27533 >
2024-02-09 21:36:53 +00:00
Georg Lehmann
e927c5004f
aco/gfx11+: disable v_pk_fmac_f16_dpp
...
Public docs are apparently wrong: https://github.com/llvm/llvm-project/pull/79598#issuecomment-1933988048
Cc: mesa-stable
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27533 >
2024-02-09 21:36:52 +00:00
Pierre-Eric Pelloux-Prayer
6c3a294eef
radv: don't remove the blit queue from the device queues
...
I don't remember why I implemented it like this in !13959 , but
AFAICT there's no need to manually remove this queue from vk_device's
queues list.
On the other hand, this hack causes issues if syncobj timeline isn't
supported; amdgpu always support timeline, but amdgpu over virtio-gpu
doesn't.
The issue is as follow: the sequence in vk_queue.c:
case VK_QUEUE_SUBMIT_MODE_DEFERRED:
vk_queue_push_submit(queue, submit);
return vk_device_flush(queue->base.device);
Would fail to produce the expected result, because vk_device_flush would
fail to realize that the blit queue has some pending work because
"vk_foreach_queue(queue, device)" would never process the queue.
Then, the call to vk_drm_syncobj_export_sync_file() would fail, because
the syncobj handle was never used in a submit.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27412 >
2024-02-09 09:20:52 +01:00
Samuel Pitoiset
61a125647b
radv: add radv_disable_ngg_gs and enable it for Persona 3 Reload
...
Persona 3 Reload is largely affected by the way amplification works with
NGG GS and disabling it drastically improve performance.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27518 >
2024-02-09 07:24:16 +00:00