Daniel Schürmann
26f430d6ce
radv/rt: move radv_pipeline_key from rt_variables to traversal_data
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21764 >
2023-03-07 17:00:50 +00:00
Daniel Schürmann
d87bbee0be
radv: remove unused parameters from radv_compute_pipeline_compile()
...
Also make this function static.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21764 >
2023-03-07 17:00:50 +00:00
Daniel Schürmann
d06aa7b71d
radv/rt: introduce and use radv_rt_pipeline_compile()
...
This is essentially a code-duplication of radv_compute_pipeline_compile()
but will later be more specialized for the needs of RT pipelines.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21764 >
2023-03-07 17:00:50 +00:00
Daniel Schürmann
f1565de4cc
radv: expose radv_pipeline_capture_shaders()
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21764 >
2023-03-07 17:00:50 +00:00
Daniel Schürmann
2fbd495ce7
radv: expose radv_postprocess_nir()
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21764 >
2023-03-07 17:00:50 +00:00
Samuel Pitoiset
c87c34bbba
radv: fix defining RADV_USE_WSI_PLATFORM
...
RADV_USE_WSI_PLATFORM was unused in radv_CreateImage().
Fixes: 2a5d7f4926 ("radv: fix missing implementation of creating images from swapchains")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21763 >
2023-03-07 16:37:17 +00:00
Samuel Pitoiset
7b2086d741
radv: fix border color swizzle for stencil-only format on GFX9+
...
Swizzle of 8-bit stencil format is defined as _x__ but the hw expects
BC_SWIZZLE_XYZW.
Fixes dEQP-VK.pipeline.monolithic.sampler.border_swizzle.*s8_uint*.
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21482 >
2023-03-07 15:10:33 +00:00
Samuel Pitoiset
c119b19f98
radv: fix incorrect stride for primitives generated query with GDS
...
When the query pool uses GDS (for NGG), the stride is 40.
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8412
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21650 >
2023-03-07 10:15:35 +01:00
Samuel Pitoiset
5ec80ab37c
radv: do not add descriptor BOs on update when the global BO list is used
...
It's unnecessary and already checked elsewhere like in
vkCmdBindDescriptorSets(). This improves performance of vkoverhead
test #76 (descriptor_1image) by +18%. It's the same performance as
PRO on my Threadripper 1950X now. This should also slightly improve
texel and buffer descriptors.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20699 >
2023-03-07 07:30:29 +00:00
Daniel Schürmann
7fadee9b70
radv/rt: only reserve stack_sizes after rt_case insertion
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21667 >
2023-03-06 13:58:54 +00:00
Daniel Schürmann
3e03fe44e7
radv/rt: move stack_sizes into radv_ray_tracing_module
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21667 >
2023-03-06 13:58:54 +00:00
Daniel Schürmann
48edcd03c5
radv/rt: introduce struct radv_ray_tracing_module
...
This is preliminary work for separate shader functions.
The ray_tracing_module is eventually intended as self-contained
pipeline struct per RT group.
For now, these modules only contain the group handles.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21667 >
2023-03-06 13:58:54 +00:00
Daniel Schürmann
4dafb69d61
radv/rt: defer library_pipeline allocation
...
We will need the number of groups at allocation time.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21667 >
2023-03-06 13:58:54 +00:00
Daniel Schürmann
a62d699664
radv/rt: rename library_pipeline->groups to library_pipeline->group_infos
...
'groups' will later be used for ray_tracing_modules.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21667 >
2023-03-06 13:58:54 +00:00
Friedrich Vock
f5061758be
radv: Use LDS for closest-hit hit attributes
...
Q2RTX: 23.1ms -> 22.9ms
shader-db:
Totals from 19 (0.69% of 2764) affected shaders:
MaxWaves: 197 -> 208 (+5.58%)
Instrs: 87702 -> 87817 (+0.13%); split: -0.03%, +0.16%
CodeSize: 474320 -> 475128 (+0.17%)
VGPRs: 1840 -> 1728 (-6.09%)
Latency: 2771599 -> 2773173 (+0.06%); split: -0.13%, +0.18%
InvThroughput: 561281 -> 533010 (-5.04%); split: -5.16%, +0.12%
VClause: 2782 -> 2788 (+0.22%); split: -0.18%, +0.40%
Copies: 12115 -> 12136 (+0.17%); split: -0.45%, +0.63%
Branches: 4116 -> 4122 (+0.15%)
PreVGPRs: 1665 -> 1638 (-1.62%); split: -1.92%, +0.30%
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21635 >
2023-03-05 21:53:34 +00:00
Friedrich Vock
c1651a1032
radv: Extend hit attribute lowering for LDS
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21635 >
2023-03-05 21:53:34 +00:00
Eric Engestrom
78578a6ddb
vk: move radv's linker symbols scripts for use in all drivers
...
Signed-off-by: Eric Engestrom <eric@igalia.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21631 >
2023-03-04 07:41:10 +00:00
Konstantin Seurer
f094e69469
radv/rt: Use ushr for extracting the cull mask
...
Fixes the following tests:
dEQP-VK.ray_tracing_pipeline.acceleration_structures.ray_cull_mask.gpu_built.ahit.4_bits
dEQP-VK.ray_tracing_pipeline.acceleration_structures.ray_cull_mask.gpu_built.ahit.16_bits
dEQP-VK.ray_tracing_pipeline.acceleration_structures.ray_cull_mask.gpu_built.chit.4_bits
dEQP-VK.ray_tracing_pipeline.acceleration_structures.ray_cull_mask.gpu_built.chit.16_bits
dEQP-VK.ray_tracing_pipeline.acceleration_structures.ray_cull_mask.gpu_built.isec.4_bits
dEQP-VK.ray_tracing_pipeline.acceleration_structures.ray_cull_mask.gpu_built.isec.16_bits
Fixes: 2d93ab7 ("radv/rt: Pre shift cull_mask")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21659 >
2023-03-03 23:56:49 +00:00
Timur Kristóf
05e6d945ad
radv: Emulate VGT_ESGS_ITEMSIZE in shaders on GFX9+.
...
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/21434 >
2023-03-03 20:15:10 +00:00
Samuel Pitoiset
3b9937c85e
radv: stop allocationg the attr ring BO for compute queues on GFX11
...
Only needed for graphics. This saves ~8Mib of 32-bit VRAM per compute
queue.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21632 >
2023-03-03 07:27:21 +00:00
Hans-Kristian Arntzen
b7926303e6
radv: Expose VK_EXT_swapchain_maintenance1.
...
Passes dEQP-VK.wsi.*.maintenance1.*.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
Reviewed-by: Joshua Ashton <joshua@froggi.es>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20235 >
2023-03-03 03:59:13 +00:00
Marek Olšák
4f7e353237
amd: lower multi-component subdword SSBO loads in NIR
...
because the hw and LLVM only support subdword single-component SSBO loads,
and ac_nir_to_llvm splits multi-component loads because of that, which is
inefficient.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19399 >
2023-03-03 03:27:40 +00:00
Marek Olšák
82919e2dcb
amd: lower subdword UBO loads in NIR
...
This fixes broken subdword UBO loads with LLVM.
It's only needed for LLVM, but it's done for both LLVM and ACO because
the pass can be fully validated only with ACO and the Vulkan CTS right now.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19399 >
2023-03-03 03:27:40 +00:00
Marek Olšák
ccaaf8fe04
amd: massively simplify how info->spi_cu_en is applied
...
Instead of having ac_set_reg_cu_en that sets the register, replace it with
ac_apply_cu_en that only returns the modified register value,
which allows a large simplification in both drivers because a lot of code
becomes duplicated after it's switched to ac_apply_cu_en.
RADV also didn't apply it to a few registers. Fixed.
This removes 82 lines of code in total.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21641 >
2023-03-03 00:41:48 +00:00
Marek Olšák
6e2e89e6d8
amd,radeonsi: change enabled_rb_mask to 64 bits
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21641 >
2023-03-03 00:41:48 +00:00
Rhys Perry
dc01f03d1b
radv: remove is_internal pipeline creation parameter
...
Instead, check if the cache is the meta shader cache. This catches the
shaders created by radv_create_radix_sort_u64().
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/21606 >
2023-03-02 16:48:09 +00:00
Samuel Pitoiset
4ec6850210
radv: fix DCC decompress on GFX11
...
The hardware requires one color output to be set by CB registers,
otherwise the DCC decompression does nothing.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8127
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8175
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8370
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21629 >
2023-03-02 16:03:31 +00:00
Tatsuyuki Ishi
57ab623f0b
radv: Use common helpers to translate format in SDMA copy.
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21585 >
2023-03-02 15:29:47 +00:00
Tatsuyuki Ishi
4f681d5e2c
radv: Remove SDMA padding from copy helpers.
...
These are handled in winsys already; no need to duplicate and complicate
the code paths.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21585 >
2023-03-02 15:29:47 +00:00
Tatsuyuki Ishi
e9a55b332a
radv: SDMA v4 size field is size - 1
...
After cross-checking with kernel and the old buffer copy code, it seems
that the size field should be size - 1 instead.
Fixes: 7b5ab48c40 ("radv: partial sdma support")
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21585 >
2023-03-02 15:29:47 +00:00
Samuel Pitoiset
427fd83d27
radv: use new EVENT_WRITE_ZPASS packet3 on GFX11
...
Ported from RadeonSI.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21621 >
2023-03-02 12:53:27 +00:00
Samuel Pitoiset
87444bb7ab
radv: ignore alpha_is_on_msb on GFX11 because the hw ignores it
...
Ported from RadeonSI.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21621 >
2023-03-02 12:53:27 +00:00
Samuel Pitoiset
3ced4ae816
radv: only expose EXT_pipeline_library_group_handles if RT is enabled
...
VK_EXT_pipeline_library_group_handles requires
VK_KHR_ray_tracing_pipeline to be enabled.
Fixes dEQP-VK.info.device_extensions.
Fixes: ed76833705 ("radv: Implement & expose VK_EXT_pipeline_library_group_handles.")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21618 >
2023-03-01 10:55:00 +00:00
Dave Airlie
24c09d4b16
radv: add video format support to format probing.
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21457 >
2023-03-01 07:16:47 +00:00
Tatsuyuki Ishi
bab235106e
radv: Replace radv_trap_handler_shader with radv_shader.
...
Now that the upload memory is tied to the shader itself, the trap handler
shader no longer needs an additional wrapper.
This is a cleanup to ease introduction of a new shader uploading code path.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21541 >
2023-03-01 05:12:10 +00:00
Konstantin Seurer
5ce99bc568
radv: Only init geometry infos if RRA is enabled
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21532 >
2023-02-28 20:49:33 +00:00
Konstantin Seurer
7bd265bc86
radv: Move header and geometry info init into separate functions
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21532 >
2023-02-28 20:49:33 +00:00
Samuel Pitoiset
c356f1b4ed
radv: fix draw calls with 0-sized index buffers and robustness on NAVI10
...
The correct workaround is to bind an internal index buffer to handle
robustness2 correctly.
Fixes dEQP-VK.robustness.index_access.* in CTS 1.3.5.0 on NAVI10.
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21471 >
2023-02-28 14:12:29 +00:00
Samuel Pitoiset
7c62f6fa01
radv: fix flushing non-coherent images in EndCommandBuffer()
...
The condition was inverted.
This doesn't fix anything known.
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21549 >
2023-02-28 09:35:07 +00:00
Samuel Pitoiset
6750a9094f
radv: fix flushing non-coherent images inside secondaries on GFX9+
...
Fixes
dEQP-VK.draw.dynamic_rendering.complete_secondary_cmd_buff.multi_draw.mosaic.*
on VEGA10 (related to the use of HTILE).
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21549 >
2023-02-28 09:35:07 +00:00
Eric Engestrom
735df516e9
radv: split linker script for android since it requires different symbols
...
Fixes: 4956f6d0bf ("radv: Add Android module info to linker script.")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8338
Signed-off-by: Eric Engestrom <eric@igalia.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Acked-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21518 >
2023-02-27 14:34:16 +00:00
Mike Blumenkrantz
7c8a5f6e37
vulkan/wsi: switch to using an options struct for last param
...
this makes adding values easier since the drivers won't need to be updated
Acked-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21447 >
2023-02-27 13:21:21 +00:00
Georg Lehmann
9f155c21c3
amd: d16 uses rtz conversion for 32bit float
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21404 >
2023-02-27 09:55:34 +00:00
Georg Lehmann
77252687fa
amd: don't use d16 for integer loads
...
D16 saturates to min/max instead of just truncating.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21404 >
2023-02-27 09:55:34 +00:00
Georg Lehmann
a00b50d820
nir: change 16bit image dest folding option to per type
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21404 >
2023-02-27 09:55:34 +00:00
Samuel Pitoiset
a14d46fde2
radv: enable primitiveUnderestimation on GFX9+
...
It's passing dEQP-VK.rasterization.conservative.underestimate.* on
NAVI21.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21459 >
2023-02-27 09:04:01 +00:00
Samuel Pitoiset
dba7a66429
radv: set MSAA_NUM_SAMPLES to 0 for underestimate rasterization
...
Based on PAL.
Fixes
dEQP-VK.rasterization.conservative.underestimate.samples_*.triangles.normal.test.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21459 >
2023-02-27 09:04:01 +00:00
Samuel Pitoiset
0eae617826
radv: stop setting ENABLE_POSTZ_OVERRASTERIZATION to 1
...
According to PAL this isn't set.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21459 >
2023-02-27 09:04:01 +00:00
Samuel Pitoiset
05732f4519
radv: cleanup radv_emit_{conservative,msaa}_state() functions
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21459 >
2023-02-27 09:04:01 +00:00
Tatsuyuki Ishi
ed03821442
radv/sqtt: Use code buffer from radv_shader directly instead of copying.
...
The reference-counted radv_shader always outlives the pipeline, so we can
use this buffer directly when dumping code objects to the trace.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21513 >
2023-02-27 07:16:48 +00:00