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
Friedrich Vock
d816859ede
radv: Use internal allocation helpers for internal allocations
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17331 >
2023-01-11 06:55:04 +00:00
Bas Nieuwenhuizen
8231f7eaa1
radv: Use a VkPipelineCache handle for meta shaders.
...
Prep work for using the common vk caches.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19047 >
2022-10-12 12:09:48 +02:00
Jason Ekstrand
441598eca6
radv: Switch to dynamic rendering only
...
Also, update list of expected failures.
dEQP-VK.image.sample_texture.*_bit_compressed_format_two_samplers_*
now reliably pass on Polaris10 (GFX8) and Pitcairn (GFX6).
Stoney has new failures but given there is already a lot of
depth/stencil resolve failures, we shouldn't worry about them.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15587 >
2022-09-09 09:24:59 +00:00
Dave Airlie
b644c7ca9f
radv: move to using common record_result.
...
v2 (Jason Ekstrand):
- Handle rename to vk_command_buffer_set_error
- Add more instances, especially in device generated commands
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16918 >
2022-09-01 14:11:55 +00:00
Samuel Pitoiset
1d82ec1b3f
radv: remove RADV_META_SAVE_SAMPLE_LOCATIONS
...
We already save/restore all other dynamic states unconditionally, it's
not really useful to make an exception for sample locations.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17649 >
2022-08-08 14:59:47 +00:00
Konstantin Seurer
19f8d33876
radv: Use vk_descriptor_set_layout
...
Use the common ref counting and the common destroy entrypoint.
Signed-off-by: Konstantin Seurer <konstantin.seurer@gmail.com >
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17818 >
2022-08-02 14:16:14 +00:00
Konstantin Seurer
1a95d43e55
radv: Simplify the meta init fail path
...
Move most of the the cleanup into radv_device_init_meta.
Signed-off-by: Konstantin Seurer <konstantin.seurer@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17652 >
2022-07-22 07:51:14 +00:00
Jason Ekstrand
c56f3dcbaa
radv: Use vk_image as the base for radv_image
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16376 >
2022-05-17 18:14:55 +00:00
Samuel Pitoiset
3dc86e4080
radv: implement VK_EXT_image_2d_view_of_3d
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16294 >
2022-05-13 17:53:25 +00:00
Rhys Perry
8e0e98a9af
radv: initialize meta shader options earlier
...
We might need this for NIR builders.
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/15854 >
2022-04-15 23:56:11 +00:00
Samuel Pitoiset
70e663aa21
radv: convert the meta depth decompression path to dynamic rendering
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15612 >
2022-04-01 08:21:52 +02:00
Samuel Pitoiset
9309c3d887
radv: rework the workaround that disables DCC for incompatible copies
...
Rely on the image view to avoid using an extra structure for the
render pass. This will allow to convert the meta operations to
dynamic rendering.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15612 >
2022-04-01 08:21:52 +02:00
Samuel Pitoiset
2b18234e61
radv: drop EXT or KHR suffixes for stuff promoted in Vulkan 1.3
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15663 >
2022-03-31 07:13:17 +00:00
Dave Airlie
1ec4e568de
radv: abstract queue family away from queue family index.
...
If we introduce another queue type (video decode) we can have a
disconnect between the RADV_QUEUE_ enum and the API queue_family_index.
currently the driver has
GENERAL, COMPUTE, TRANSFER which would end up at QFI 0, 1, <nothing>
since we don't create transfer.
Now if I add VDEC we get
GENERAL, COMPUTE, TRANSFER, VDEC at QFI 0, 1, <nothing>, 2
or if you do nocompute
GENERAL, COMPUTE, TRANSFER, VDEC at QFI 0, <nothing>, <nothing>, 1
This means we have to add a remapping table between the API qfi
and the internal qf.
This patches tries to do that, in theory right now it just adds
overhead, but I'd like to exercise these paths.
v2: add radv_queue_ring abstraction, and pass physical device in,
as it makes adding uvd later easier.
v3: rename, and drop one direction as unneeded now, drop queue_family_index
from cmd_buffers.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13687 >
2022-03-11 04:38:55 +00:00
Jason Ekstrand
29a164b088
radv: Use vk_command_pool
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14917 >
2022-02-11 08:06:24 +00:00
Rhys Perry
420170fabc
radv: initialize workgroup_size in radv_meta_init_shader
...
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/14087 >
2021-12-08 11:07:40 +00:00
Rhys Perry
d74498e617
radv: add radv_meta_init_shader
...
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/14087 >
2021-12-08 11:07:40 +00:00
Samuel Pitoiset
52b4185012
radv: switch the remaining stages/access to VK_PIPELINE_STAGE_2/VK_ACCESS_2
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13549 >
2021-11-26 13:41:23 +00:00
Jason Ekstrand
956199e870
nir: s/nir_var_mem_image/nir_var_image/g
...
We typically use nir_var_mem_* for stuff that has an explicit byte-based
memory layout. Images are opaque.
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13386 >
2021-10-16 03:47:10 +00:00
Rhys Perry
458b4d2095
radv: Use nir_var_mem_image in meta shaders
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4743 >
2021-10-15 14:58:56 +00:00
Samuel Pitoiset
f07e67272e
radv: fix vk_object_base_init/finish for internal image views
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13102 >
2021-10-01 07:26:37 +00:00
Samuel Pitoiset
0ac8731b6c
radv: implement depth/stencil expand on compute
...
This works as long as the image is TC-compatible HTILE.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12452 >
2021-09-20 15:17:42 +00:00
Samuel Pitoiset
966b780992
radv: rename radv_decompress_depth_stencil()
...
To radv_expand_depth_stencil() for consistency.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12452 >
2021-09-20 15:17:42 +00:00
Samuel Pitoiset
0b637919a8
radv: fix specifying the stencil layout for separate depth/stencil layouts
...
The Vulkan spec has been updated few months ago again and pNext is
always honored if present.
Found this with vkd3d-proton which implemented separate depth/stencil
layouts recently.
Cc: 21.2 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11903 >
2021-07-16 09:20:58 +02:00
Samuel Pitoiset
60348360a2
radv: create only one pipeline for decompressing depth/stencil images
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11263 >
2021-06-18 14:15:30 +02:00
Samuel Pitoiset
213c4c5f44
radv: always decompress both aspects of a depth/stencil image
...
If compressed rendering is only used for the depth aspect of a
depth/stencil image, stencil might also be compressed and it needs
to be decompressed. This only happens for non-TC compatible images.
As long as the driver needs to decompress the depth aspect, I don't
think that decompressing the stencil aspect introduces extra cost.
Fixes dEQP-VK.renderpass*late_fragment_tests*.d32_sfloat_s8_uint for
chips that don't support TC-compat HTILE.
Cc: 21.1 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11263 >
2021-06-18 14:15:30 +02:00
Bas Nieuwenhuizen
59c501ca35
radv: Format.
...
Using
find ./src/amd/vulkan -regex '.*/.*\.\(c\|h\|cpp\)' | xargs -P8 -n1 clang-format --style=file -i
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10091 >
2021-04-10 03:31:58 +02:00
Mike Blumenkrantz
1d1c7a965c
radv: use common interfaces for shader modules
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9508 >
2021-03-15 21:47:44 +00:00
Jason Ekstrand
8304b4eef7
radv/meta: Use CreateRenderPass2
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8857 >
2021-03-10 18:17:31 +00:00
Samuel Pitoiset
d47b13c028
radv: do not decompress/resummarize levels without HTILE
...
It's completely useless to decompress or resummarize levels that
are not compressed using HTILE.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8124 >
2021-01-27 09:02:17 +01:00
Samuel Pitoiset
c30f010e8f
radv: remove redundant check in radv_process_depth_stencil()
...
This is already checked in radv_handle_depth_image_transition().
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8579 >
2021-01-20 17:18:39 +00:00
Bas Nieuwenhuizen
f23eaf0db6
radv: Add option to disable DCC in renderpasses without layout.
...
If DCC is enabled for GENERAL then we cannot disable DCC by going
to the GENERAL layout.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7004 >
2020-12-21 18:32:24 +00:00
James Park
28d02b9d3e
ac,amd/llvm,radv: Initialize structs with {0}
...
Necessary to compile with MSVC.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7123 >
2020-10-14 12:15:23 +00:00
Samuel Pitoiset
ffea3e7348
radv: cleanup creating the decompress/resummarize pipelines
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4389 >
2020-04-08 07:55:14 +02:00
Samuel Pitoiset
6f6276bd24
radv: rename extra graphics pipeline decompress/resummarize fields
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4389 >
2020-04-08 07:55:12 +02:00
Samuel Pitoiset
8b7586655f
radv: rename decompress/resummarize depth/stencil functions
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4389 >
2020-04-08 07:55:10 +02:00
Samuel Pitoiset
e6e97ea92e
radv/sqtt: describe layout transitions with user markers
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4138 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4138 >
2020-03-12 17:04:55 +00:00
Samuel Pitoiset
b6cebf6439
radv: do not recursively begin/end render pass for meta operations
...
To avoid breaking SQTT user markers that are emitted to report
barriers and layout transitions to RGP.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4136 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4136 >
2020-03-11 07:54:43 +00:00
Samuel Pitoiset
0d2da2a8c0
radv: add explicit external subpass dependencies to meta operations
...
No functional changes because a subpass dependency with dstStageMask
set to VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT is a no-op.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3330 >
2020-01-23 11:25:38 +01:00
Samuel Pitoiset
2af39c719e
radv: select the depth decompress path based on the aspect mask
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-11-25 16:29:23 +01:00
Samuel Pitoiset
905c005561
radv: create decompress pipelines for separate depth/stencil layouts
...
No functional changes as the driver still uses the depth+stencil
pipeline.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-11-25 16:29:21 +01:00
Samuel Pitoiset
faa58201f3
radv: rework creation of decompress/resummarize meta pipelines
...
This refactoring will help for creating more decompress pipelines.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-11-25 16:29:18 +01:00
Samuel Pitoiset
76812339f7
radv: decompress mipmapped depth/stencil images during transitions
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-08-26 15:56:48 +02:00
Samuel Pitoiset
81c6473b7f
radv: add mipmaps support for decompress/resummarize
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-08-26 15:56:45 +02:00
Samuel Pitoiset
18ccde4d68
radv: add radv_process_depth_image_layer() helper
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-08-26 15:56:42 +02:00
Bas Nieuwenhuizen
216a9d8871
radv: Add extra struct to image view creation.
...
For extra args. Unlike image creation, I'm not embedding the vk
struct in there, so all the inline structs can be kept.
Reviewed-by: Dave Airlie <airlied@redhat.com >
2019-08-07 02:13:07 +02:00
Samuel Pitoiset
a21f23c811
radv: add radv_get_depth_pipeline() helper
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-07-03 08:51:42 +02:00
Samuel Pitoiset
a20925f2a9
radv: allow the depth decompress pass to emit dynamic sample locations
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-By: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-06-07 13:11:00 +02:00
Samuel Pitoiset
2dd8dfd913
radv: allow to set dynamic sample locations to the depth decompress pass
...
If VK_EXT_sample_locations is used, the driver might need to emit
the sample locations specified during layout transitions.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-By: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
2019-06-07 13:10:55 +02:00