Eric Engestrom
75938f9d1f
venus: use updated tokens from vk.xml
...
Signed-off-by: Eric Engestrom <eric@igalia.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Acked-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17342 >
2022-07-12 15:53:11 +00:00
Eric Engestrom
9035408d62
radv: use updated tokens from vk.xml
...
Signed-off-by: Eric Engestrom <eric@igalia.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Acked-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17342 >
2022-07-12 15:53:11 +00:00
Eric Engestrom
e706a915b0
vulkan: use updated tokens from vk.xml
...
Signed-off-by: Eric Engestrom <eric@igalia.com >
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17342 >
2022-07-12 15:53:11 +00:00
Eric Engestrom
c3d8395a14
vulkan/runtime: use updated tokens from vk.xml
...
Signed-off-by: Eric Engestrom <eric@igalia.com >
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17342 >
2022-07-12 15:53:11 +00:00
Eric Engestrom
66af355a00
vulkan: add script to detect & replace identifiers that have been renamed
...
Signed-off-by: Eric Engestrom <eric@engestrom.ch >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17342 >
2022-07-12 15:53:11 +00:00
Jason Ekstrand
af6f6ce065
vulkan/wsi: Add debug variables to force the SW and PRIME buffer blit paths
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17436 >
2022-07-12 14:14:01 +00:00
Jason Ekstrand
3ff7494a97
vulkan/wsi/wayland: Add a BUFFER_TYPE flag
...
This makes all the different ways of presenting a bit more clear.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17436 >
2022-07-12 14:14:01 +00:00
Jason Ekstrand
c5af8bcc37
vulkan: Add a vk_pipeline_shader_stage_is_null() helper
...
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17337 >
2022-07-08 22:47:22 +00:00
Jason Ekstrand
8851f50753
spirv,vulkan: Set shader_info::subgroup_size
...
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17337 >
2022-07-08 22:47:22 +00:00
Jason Ekstrand
beb5b17d82
vulkan: Constify vk_spirv_version
...
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17337 >
2022-07-08 22:47:22 +00:00
Jason Ekstrand
a73c4d5098
vulkan: Re-order pipeline hashing
...
Match the order in vkPipelineShaderStageCreateInfo
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17337 >
2022-07-08 22:47:22 +00:00
Jason Ekstrand
048435b44c
vulkan/wsi: Fix structure chaining in wsi_create_buffer_image_mem
...
First, because we're using __vk_append_struct which attacks it on the
end, memory_wsi_info is modified even though it's const. Make things
non-const so we aren't silently violating assumptions. Also, we set a
pNext in memory_export_info which causes a loop in the pNext chain in
the handle_types != 0 case.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6826
Fixes: 124848bf9e ("vulkan/wsi: Support tiled CPU images")
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17434 >
2022-07-08 21:50:55 +00:00
Jason Ekstrand
a084ee7209
vulkan/wsi/wayland: Only memcpy if the swapchain is actually software
...
Otherwise, we'll segfault. :-(
Fixes: aca545d616 ("vulkan/wsi/wayland: Use host pointer import when available")
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17434 >
2022-07-08 21:50:55 +00:00
Pierre-Eric Pelloux-Prayer
835364ea0c
vulkan/wsi: define pWaitDstStageMask in the blit submission
...
Otherwise we get a crash in vk_common_QueueSubmit when doing:
.stageMask = pSubmits[s].pWaitDstStageMask[i],
cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6712
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17310 >
2022-07-07 21:49:39 +00:00
Jesse Natalie
8faf3781c8
vulkan/wsi/win32: Use the new helpers and persistent map
...
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17388 >
2022-07-07 11:44:19 -05:00
Jason Ekstrand
aca545d616
vulkan/wsi/wayland: Use host pointer import when available
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17388 >
2022-07-07 11:44:19 -05:00
Jason Ekstrand
54fa5ff406
vulkan/wsi/x11: Only use MIT_SHM if the device supports EXT_external_memory_host
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17388 >
2022-07-07 11:44:19 -05:00
Jason Ekstrand
5abc05f1df
vulkan/wsi/x11: Don't leak shm_reply if we don't have dri3 or present
...
Fixes: b5c390c113 ("vulkan/wsi: add support for detecting mit-shm pixmaps.")
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17388 >
2022-07-07 11:44:19 -05:00
Jason Ekstrand
124848bf9e
vulkan/wsi: Support tiled CPU images
...
Some drivers such as lavapipe are 100% fine with using linear for WSI
images. Most HW drivers, however, would rather render tiled and eat a
blit.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17388 >
2022-07-07 11:44:19 -05:00
Jason Ekstrand
83fb6fe569
vulkan/wsi: Align buffer image strides to optimalBufferCopyRowPitchAlignment
...
This isn't a big deal for the current buffer paths because the required
alignment for PRIME is already higher than any driver advertises.
However, the SW path we're about to add won't have the PRIME requirement.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17388 >
2022-07-07 11:44:17 -05:00
Jason Ekstrand
13148b9c68
vulkan/wsi: Compute stride and size in configure_buffer_image
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17388 >
2022-07-07 11:44:10 -05:00
Jason Ekstrand
cf37837d36
vulkan/wsi: Persistently map CPU images
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17388 >
2022-07-07 11:44:09 -05:00
Jason Ekstrand
1d0290fbfe
vulkan/wsi: Delete SW support from configure_native_image
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17388 >
2022-07-07 10:21:35 -05:00
Jason Ekstrand
4c79ec1934
vulkan/wsi/wayland: Use wsi_configure_cpu_image
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17388 >
2022-07-07 10:21:34 -05:00
Jason Ekstrand
3d48b3c6f8
vulkan/wsi/x11: Use wsi_configure_cpu_image
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17388 >
2022-07-07 10:21:33 -05:00
Jason Ekstrand
afe2cb7b11
vulkan/wsi: Add a helper for creating CPU images
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17388 >
2022-07-07 10:21:30 -05:00
Jason Ekstrand
1cc20fbefd
vulkan/wsi: Move select_memory_type to common and rework it a bit
...
Instead of taking a single boolean for device-local, take a set of
required properties and denied properties. This will let us require
additional things like being CPU mappable in the future.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17388 >
2022-07-07 10:21:29 -05:00
Jason Ekstrand
fbb7b6e052
vulkan/wsi/wayland: Use a single memcpy in the SW path
...
The strides match. There's no reason to loop over image height.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17388 >
2022-07-07 10:21:27 -05:00
Jason Ekstrand
ca6bd57e76
vulkan/wsi: Pass the size to MapMemory in the SW path
...
Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17388 >
2022-07-07 10:21:24 -05:00
Chia-I Wu
3831079fdf
vulkan/device_select: remove get_pdevice_proc_addr
...
It is optional and is needed only when a layer has physical device
extensions that may be unknown to the loader.
This simplifies the layer a bit, but more importantly, it works around a
bug in the loader when there is another layer in the layer chain that
wraps VkInstance.
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16307 >
2022-07-06 23:53:25 +00:00
Hans-Kristian Arntzen
0119de08f2
vulkan: Add common code for VK_EXT_shader_module_identifier.
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17332 >
2022-07-06 16:27:21 +00:00
Hans-Kristian Arntzen
6d66a43a70
vulkan: Update Vulkan XML and headers to 1.3.219.
...
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17332 >
2022-07-06 16:27:21 +00:00
Jordan Justen
d5884a716f
vulkan/wsi: Disable dma-buf sync file if ENOSYS is returned
...
ENOSYS is commented as "Invalid system call number". This is returned
by qemu-user for unbridged ioctls.
Fixes: 30b57f10b3 ("vulkan/wsi: Signal semaphores and fences from the dma-buf")
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com >
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17325 >
2022-07-01 10:28:34 +00:00
Jason Ekstrand
d06335ed76
vulkan: Depend on vk_pipeline_layout in vk_cmd_enqueue
...
Now that we have a common pipeline layout with reference counting, we
don't need these driver hooks for reference counting anymore.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17286 >
2022-06-29 20:31:58 +00:00
Jason Ekstrand
e6c75bcd9c
vulkan: Add a common implementation of pipeline layouts
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17286 >
2022-06-29 20:31:57 +00:00
Jason Ekstrand
949ce92f05
vulkan: Add a base struct for descriptor set layouts
...
There's some tricky stuff in here with properly handling Vulkan
allocation scopes and reference counting. Probably best to do it once.
Also, this means that common code can now take references to descriptor
set layouts which seems useful.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17286 >
2022-06-29 20:31:57 +00:00
Jason Ekstrand
d46db2e5a6
vulkan: Fix a comment
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17286 >
2022-06-29 20:31:57 +00:00
Jesse Natalie
d4f7f21fa5
vulkan_entrypoints_gen: For Windows ARM64EC, prefix symbols with '#'
...
Acked-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17267 >
2022-06-29 01:18:19 +00:00
Boris Brezillon
542538cf02
vulkan: Add a vk_pipeline_hash_shader_stage() helper
...
All drivers implement some sort of shader hashing, but each of
them does it slightly differently. Let's provide a generic helper
to avoid new copies of the same logic and encourage new drivers
to use one of the already implemented function.
Reviewed-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/17186 >
2022-06-28 09:07:32 +00:00
Jason Ekstrand
21374eb777
vulkan/render_pass: Support VkAttachmentSampleCountInfoAMD
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16953 >
2022-06-24 22:37:53 +00:00
Jason Ekstrand
541819b2d6
vulkan/render_pass: Allow for mixed sample counts
...
RADV supports VK_AMD_mixed_attachment_samples which does exactly what it
sounds like.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16953 >
2022-06-24 22:37:53 +00:00
Jason Ekstrand
7e11cdc77a
vulkan/render_pass: Pass sample locations to barriers
...
This is required for depth/stencil images created with
VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16953 >
2022-06-24 22:37:53 +00:00
Jason Ekstrand
6216c59dbb
vulkan/render_pass: Use a special layout for self-dependencies
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16953 >
2022-06-24 22:37:53 +00:00
Jason Ekstrand
3a204d5cf3
vulkan/render_pass: Add a better helper for render pass inheritance
...
Instead of making drivers dive into the render pass and framebuffer
themselves, provide a helper that constructs a VkRenderingInfo for a
render pass resume that they can use instead. This should reduce code
duplication between driver implementations of BeginRendering and
BeginCommandBuffer.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16953 >
2022-06-24 22:37:53 +00:00
Jason Ekstrand
8ce7faab47
vulkan: Add a vk_pipeline_shader_stage_to_nir helper
...
This is similar to vk_shader_module_to_nir only it takes a
VkPipelineShaderStageCreateInfo and handles
VK_KHR_graphics_pipeline_library semantics for when a
VkShaderModuleCreateInfo is provided instead of an actual module.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17196 >
2022-06-23 15:41:00 +00:00
Jason Ekstrand
288c1c29fb
vulkan/nir: Make spirv_data const in vk_spirv_to_nir
...
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17196 >
2022-06-23 15:41:00 +00:00
Jason Ekstrand
981cf8a41d
vulkan: Add some border color helpers
...
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15359 >
2022-06-23 00:01:41 +00:00
Dave Airlie
d3e723fb77
wsi/x11: add xcb_put_image support for larger transfers.
...
This was noticed as a problem in the EGL code, just fixup wsi.
Cc: mesa-stable
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17155 >
2022-06-22 03:28:21 +00:00
Jason Ekstrand
64d074879b
vulkan/wsi: Use HAVE_LIBDRM to detect DRM instead of !_WIN32
...
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Acked-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17170 >
2022-06-22 01:15:20 +00:00
Lionel Landwerlin
efc398c722
vulkan/wsi: fix crash with debug names on swapchain
...
If you set a name of on a swapchain object, because the base object
struct has not been initialized with a VkDevice,
vk_object_base_finish() will segfault when trying to free the object
name.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Fixes: cb1e0db23e ("vulkan/wsi: Make wsi_swapchain inherit from vk_object_base")
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17165 >
2022-06-21 17:05:10 +00:00