Faith Ekstrand
c0cc508cd0
vulkan: Add a vk_device_memory base struct
...
This lets us provide a vk_device_memory_range helper similar to what's
provided for buffers for dealing with VK_WHOLE_SIZE. We can also handle
flags and some annoyance around Android hardware buffer import.
Reviewed-by: Lina Versace <lina@kiwitree.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22038 >
2023-03-31 14:57:03 +00:00
Faith Ekstrand
b16cfe23ef
vulkan,anv,hasvk,radv: Unify Android hardware buffer creation
...
Reviewed-by: Lina Versace <lina@kiwitree.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22038 >
2023-03-31 14:57:03 +00:00
Faith Ekstrand
906944b210
vulkan: Add an ahardware_buffer_format field to vk_image
...
Reviewed-by: Lina Versace <lina@kiwitree.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22038 >
2023-03-31 14:57:03 +00:00
Faith Ekstrand
dc0749adab
vulkan/android: Fix hardware buffer usage flags
...
We now add the correct usage flags for input attachments, storage
images, and depth/stencil attachments.
Reviewed-by: Lina Versace <lina@kiwitree.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22038 >
2023-03-31 14:57:03 +00:00
Faith Ekstrand
41f88be282
vulkan,anv,hasvk,radv: Add a common vk_image_usage_to_ahb_usage helper
...
Reviewed-by: Lina Versace <lina@kiwitree.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22038 >
2023-03-31 14:57:03 +00:00
Samuel Pitoiset
1577906d9f
vulkan: add dynamic support for rectangles enable/mode
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21360 >
2023-03-31 07:59:18 +00:00
Faith Ekstrand
9d1c1379e7
vulkan: vk_android.c should be copyright Intel
...
That's where I copied+pasted it from.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22120 >
2023-03-26 00:16:26 +00:00
Danylo Piliaiev
1600b310bc
vk/util: Generate defines to help casting structs with vk_find_struct
...
C++ doesn't like implicit casts from void *.
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21931 >
2023-03-24 15:49:25 +00:00
Lionel Landwerlin
1c64952e65
vulkan/runtime: also copy strings on queue debug utils
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22006 >
2023-03-24 09:38:06 +02:00
Constantine Shablya
4659a94cfe
vulkan: depend idep_vulkan_runtime_headers on vk_physical_device_features.h
...
Fixes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8643
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21958 >
2023-03-21 14:25:40 +00:00
Faith Ekstrand
b4497e54be
vulkan: Provide wrappers for VK_EXT_map_memory2 functions
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Iván Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22031 >
2023-03-20 23:11:09 +00:00
Constantine Shablya
723825f5c7
vulkan: use vk_features for vk_device::enabled_features
...
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21754 >
2023-03-16 08:23:28 +00:00
Constantine Shablya
c7300a6a3b
vulkan: add hepler for vkGetPhysicalDeviceFeatures2
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21754 >
2023-03-16 08:23:28 +00:00
Constantine Shablya
efaf3fd5fc
vulkan: delete trailing namespace
...
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21754 >
2023-03-16 08:23:28 +00:00
Constantine Shablya
b0b3b9e8b1
vulkan: relocate rmv to its correct home
...
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21754 >
2023-03-16 08:23:28 +00:00
Mohamed Ahmed
2649ee0724
vulkan/runtime: implement vkGetBufferMemoryRequirements2()
...
Signed-off-by: Mohamed Ahmed <mohamedahmedegypt2001@gmail.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21898 >
2023-03-15 00:30:35 +00:00
Mohamed Ahmed
10a4412966
vulkan/runtime: move common buffer related entrypoints to vk_buffer.c
...
Signed-off-by: Mohamed Ahmed <mohamedahmedegypt2001@gmail.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21898 >
2023-03-15 00:30:35 +00:00
Konstantin Seurer
ef5cba56a0
vulkan: Add vk_shader_module_init
...
This will be used for allocating shader modules using ralloc by RADV.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21707 >
2023-03-12 13:18:15 +00:00
Rob Clark
8e7511ea7f
vk/runtime: Use libdrm shim
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21636 >
2023-03-05 16:31:51 +00:00
Lionel Landwerlin
4ee1908ab6
vulkan/runtime: only consider slice info with 3D image views
...
Because we can have 2D views of 3D images, we want to consider the
slice info only with 3D *image views*.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Fixes: 66e3ccbcac ("vulkan/runtime: store parameters of VK_EXT_sliced_view_of_3d")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21376 >
2023-03-04 06:12:46 +00:00
Faith Ekstrand
3384e4f768
vulkan/runtime: Rename and document storage image Z range
...
This makes it more clear that the fields specifically apply to the Z
range and aren't array slices.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21376 >
2023-03-04 06:12:46 +00:00
Lionel Landwerlin
66e3ccbcac
vulkan/runtime: store parameters of VK_EXT_sliced_view_of_3d
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21514 >
2023-02-27 07:49:48 +00:00
Rob Clark
73dfcbf7e8
vk/runtime: Allow enumerate and try_create_for_drm to coexist
...
For drivers that can support both drm and non-drm kernel mode drivers it
is useful to be able to provide both entrypoints.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21394 >
2023-02-25 17:02:34 +00:00
Iván Briano
6e60612d42
vulkan: track the right value on CmdSetColorWriteMasks
...
Fixes: 092be5a329 ("vulkan: Add more dynamic color blend states")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21509 >
2023-02-24 22:07:52 +00:00
Eric Engestrom
fbd644c59d
meson: replace vk_wsi_args with dependencies to let meson take care of transitivity
...
Signed-off-by: Eric Engestrom <eric@igalia.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19497 >
2023-02-23 09:42:46 +00:00
Konstantin Seurer
eb33a1adb0
vulkan: Add vk_acceleration_structure
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21047 >
2023-02-22 11:58:57 +00:00
Faith Ekstrand
5021344fa6
vulkan: Move the features generator to vulkan/util
...
This makes it easier to start depending on vk_extensions.py
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21225 >
2023-02-17 03:42:34 +00:00
Faith Ekstrand
15e332073c
Revert "vk/runtime: turn vk.xml extension requirements into asserts"
...
This reverts commit 6ac830ccb1 .
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21225 >
2023-02-17 03:42:34 +00:00
Erik Faye-Lund
29ffc79410
meson: don't pass vk wsi args where they don't belong
...
Only code that cares about Vulkan WSI should get the corresponding
arguments passed. Otherwise, the Vulkan headers might end up including
other headers that we don't have the correct dependencies passed for.
So let's give those a dedicated variable, and only pass that where it's
actually needed.
Fixes: b39958a3a1 ("anv,nir: Move the ANV YCbCr lowering pass to common code")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8193
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21185 >
2023-02-15 18:35:14 +00:00
Erik Faye-Lund
7ea85871fe
vulkan: prefer vulkan_core.h over vulkan.h
...
If we include vulkan.h, we risk including the WSI bits as well, which we
don't need here. Only trouble can follow from including these where
they're not needed.
So let's include vulkan_core.h in these places instead.
Fixes: b39958a3a1 ("anv,nir: Move the ANV YCbCr lowering pass to common code")
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21185 >
2023-02-15 18:35:14 +00:00
Eric Engestrom
6ac830ccb1
vk/runtime: turn vk.xml extension requirements into asserts
...
More specifically, turn
<extension name="VK_KHR_foo" requires="VK_KHR_bar">
into
assert(!ext->KHR_foo || ext->KHR_bar);
Signed-off-by: Eric Engestrom <eric@igalia.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21261 >
2023-02-14 23:28:29 +00:00
Eric Engestrom
a654a303f8
vk/runtime: keep track of supported instance extensions
...
Signed-off-by: Eric Engestrom <eric@igalia.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21261 >
2023-02-14 23:28:29 +00:00
Alyssa Rosenzweig
2854dca898
tu,vulkan: Add common Get*OpaqueCaptureDescriptorDataEXT
...
In both tu and radv, these are all trivial. Move the trivial implementation from
tu to common code to deduplicate the boilerplate.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by; Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21230 >
2023-02-13 07:43:11 +00:00
Konstantin Seurer
9104dafb6f
vulkan,nir: Refactor ycbcr conversion state into a struct
...
This will be useful for RADV since it hashes the state.
v3dv changes:
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20731 >
2023-02-06 18:36:29 +00:00
Hyunjun Ko
c489b3eadb
vulkan/runtime: match the spec when taking pipeline subsets.
...
Signed-off-by: Hyunjun Ko <zzoon@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21006 >
2023-01-31 11:21:22 +00:00
Dave Airlie
41dbeca4c2
vulkan/video: add common h264/h265 parameter set management code.
...
The video session and video session parameters objects can have a common
base class the drivers can inherit from if needed.
This creates code to parse the h264/h265 parameter sets into common
structs.
v2: add h265 VPS, add a macro for FIND/ADD generations, changes the API
to make generation easier.
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20389 >
2023-01-18 06:36:27 +00:00
Jason Ekstrand
1cc342f5e1
vulkan: Add a common vk_ycbcr_conversion struct
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19950 >
2023-01-16 14:10:21 +00:00
Konstantin Seurer
2d738803b5
vulkan: Track the nullDescriptor feature
...
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20539 >
2023-01-15 21:30:21 +00:00
Lionel Landwerlin
662e05c9fb
vulkan/debug_utils: copy debug util labels
...
The copied structures currently can point to freed memory.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16655 >
2023-01-13 01:22:15 +00:00
Dave Airlie
3ec428bb32
vk_cmd_queue: add a callback to free push descriptors set khr
...
This should clean this up properly.
Fixes: eb7eccc76f ("lavapipe: Use generated command queue code")
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20630 >
2023-01-12 01:46:26 +00:00
Friedrich Vock
defed48104
vulkan: Add common RMV tracing infrastructure
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17331 >
2023-01-11 06:55:04 +00:00
Chad Versace
0a256f79d4
vulkan/runtime: Preserve pNext when upgrading to synchronization2 structs
...
The functions that upgraded VkFooMemoryBarrier to VkFooMemoryBarrier2
dropped the pNext pointers. It loses VkSampleLocationsInfoEXT, and may
lose additional structs too if VkFooMemoryBarrier receives further
extensions in the future.
Signed-off-by: Chad Versace <chadversary@chromium.org >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20477 >
2023-01-03 17:20:30 +00:00
Konstantin Seurer
b0e55c4d60
vulkan: Allow passing NULL dispatch tables to vk_device_init
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20439 >
2023-01-02 14:39:23 +00:00
Dave Airlie
c90e5ddc71
vulkan: update headers/registry to 1.3.238 for video decode
...
This moves the video decoding to KHR and out of beta.
Acked-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Acked-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20384 >
2022-12-20 07:28:07 +10:00
Connor Abbott
b28899a261
vk/descriptor_set_layout: Add optional destructor
...
Drivers implementing descriptor buffers will want to allocate and free
descriptors with the layout for embedded samplers, so we need a hook to
allow them to free any GPU buffers.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19849 >
2022-12-12 17:38:19 +00:00
Rebecca Mckeever
83400af043
vulkan/runtime: Add VK_KHR_device_group provided entrypoints
...
Add entrypoints vk_common_CmdDispatch, vk_common_CmdSetDeviceMask,
and vk_common_GetDeviceGroupPeerMemoryFeatures in Mesa Vulkan runtime so
that they are available to all drivers.
Signed-off-by: Rebecca Mckeever <rebecca.mckeever@collabora.com >
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20218 >
2022-12-09 14:06:14 -06:00
Iván Briano
e1ab7629f8
vulkan: VkPolygonMode has a bit more than two values
...
Fixes: 9d0ed9cbcc ("vulkan: Add more dynamic rasterizer state")
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20212 >
2022-12-08 00:40:11 +00:00
Konstantin Seurer
f89708c2c5
vulkan: Use vk_image_sanitize_extent
...
We set the image type before the extend which allows us to use
vk_image_sanitize_extent.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20112 >
2022-12-02 20:46:33 +00:00
Bas Nieuwenhuizen
13d755441c
vulkan: Remove asserts that weren't valid for RADV ETC2 emulation.
...
Wasn't caught when radv was modified to use these helpers ...
Tried to move the aspects assert so it still checks application inputs.
Fixes: d9048e31a0 ("radv: Use vk_image_view as the base for radv_image_view")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19914 >
2022-11-25 17:16:14 +00:00
Hans-Kristian Arntzen
f2e535e4fe
vk/runtime: Fix narrowing of timeline signal and wait value to u32.
...
They are u64. Fixes deadlock in
dEQP-VK.wsi.xcb.present_id_wait.wait.past_no_timeout.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no >
Fixes: 9bffd81f1c ("vulkan: Add common implementations of vkQueueSubmit
and vkQueueWaitIdle")
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com >
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19951 >
2022-11-23 16:02:27 +00:00