Faith Ekstrand
c488dc9f50
vulkan: Add a BLAKE3 hash to vk_descriptor_set_layout
...
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27024 >
2024-02-27 22:17:09 +00:00
Faith Ekstrand
682b99a63f
vulkan: Add push constant ranges to vk_pipeline_layout
...
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27024 >
2024-02-27 22:17:09 +00:00
Faith Ekstrand
e2cb395a1f
vulkan: Add a vk_pipeline base struct
...
We need to be able to thunk through a destroy callback if we want to
have different kinds of pipelines implemented in different parts of the
stack.
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27024 >
2024-02-27 22:17:09 +00:00
Faith Ekstrand
5e71e6f3f6
vulkan: Add a new dynamic state for render pass attachments
...
This is useful for implementing VK_EXT_dynamic_rendering_unused_attachments
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27024 >
2024-02-27 22:17:09 +00:00
Faith Ekstrand
6ec177b116
vulkan: Rework vk_render_pass_state::attachments
...
The new bitfield has a separat flag for each of the color attachments.
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27024 >
2024-02-27 22:17:09 +00:00
Faith Ekstrand
c09c086c12
vulkan: Add a vk_render_pass_state_has_attachment_info() helper
...
We already have a helper like this internally. Give it a better name
and expose it.
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27024 >
2024-02-27 22:17:09 +00:00
Faith Ekstrand
9f62008bff
vulkan: Add runtime code for VK_EXT_shader_object
...
This adds a new base vk_shader object along with vtables for creating,
binding, and working with shader objects.
Unlike other parts of the runtime, the new shader object code is a bit
more sanitized and opinionated than just handing you the Vulkan
entrypoints. For one thing, the create_shaders() calback takes a NIR
shader, not SPIR-V. Conversion of SPIR-V into NIR, handling of magic
meta NIR shaders, etc. is all done in common code. [De]serialization is
done via `struct blob` and the common code does a checksum of the binary
and handles rejecting invalid binaries based on shaderBinaryUUID and
shaderBinaryVersion. This should make life a bit easier for driver
authors as well as provides a bit nicer interface for building the
common pipeline implementation on top of shader objects.
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27024 >
2024-02-27 22:17:09 +00:00
Connor Abbott
0d225c9e43
vk/graphics_state: Add stubs required by VK_EXT_shader_objects
...
Because these functions were introduced by VK_EXT_shader_objects, we
technically have to expose them even though they have to do with NV
extensions that no one else supports.
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27024 >
2024-02-27 22:17:09 +00:00
Connor Abbott
657b8e5264
vk/graphics_state: Remove bogus assert in CmdSetSampleMaskEXT
...
We're supposed to just ignore samples above what we support, and there's
no VU matching this assert. Fixes a crash in
dEQP-VK.pipeline.shader_object_unlinked_spirv.extended_dynamic_state.misc.sample_shading_dynamic_sample_count.
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27024 >
2024-02-27 22:17:08 +00:00
Faith Ekstrand
6ad294202e
vulkan: Move the descriptor set limit to vk_limits.h
...
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27024 >
2024-02-27 22:17:08 +00:00
Faith Ekstrand
498d58a5f8
vulkan: Add a vk_get_subgroup_size() helper
...
No reason to duplicate this logic between pipelines and shader objects.
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27024 >
2024-02-27 22:17:08 +00:00
Faith Ekstrand
a72bcc0a26
vulkan/meta: Handle VK_REMAINING_ARRAY_LAYERS in blit and resolve
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27795 >
2024-02-26 16:25:08 +00:00
Gurchetan Singh
0525dac7f8
vk_image.c: #ifndef _WIN32 --> DETECT_OS_LINUX + DETECT_OS_BSD
...
DRM modifiers are a BSD/Linux phenomenon.
We can also remove a bunch of these checks too. No Linux specific
symbol or header is **actually** used, and the DRM modifier is
just represented as uint64_t. But kept the style of the file
as is.
Reviewed-by: Serdar Kocdemir <kocdemir@google.com >
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27425 >
2024-02-02 23:11:21 +00:00
Dave Airlie
60d2ea83e8
vulkan/video: add AV1 decode support to common code
...
This adds the av1 decode parameters handling.
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27423 >
2024-02-02 03:18:52 +00:00
Yiwei Zhang
2dd95bc4b7
vulkan/runtime: refactor to use DETECT_OS_ANDROID instead of ANDROID
...
Also update vk_android_native_buffer.h to use __ANDROID__ directly.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27374 >
2024-02-01 19:29:49 +00:00
Lionel Landwerlin
03490ec019
vulkan/runtime: rework VK_KHR_dynamic_rendering_local_read state tracking
...
I missed a bunch of things like input tracking. Also take the
opportunity to rename things.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Fixes: fe19405c46 ("vulkan/runtime: handle new dynamic states for attachment remapping")
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27380 >
2024-02-01 13:20:21 +00:00
Sagar Ghuge
9a4d951ef9
vulkan/runtime: Track VkSharingMode in vk_image
...
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27349 >
2024-01-31 19:28:12 +00:00
Friedrich Vock
7ea96ff75b
vulkan: Use secure_getenv for trigger files
...
Reviewed-by: Eric Engestrom <eric@igalia.com >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27381 >
2024-01-31 17:28:11 +00:00
Lionel Landwerlin
fe19405c46
vulkan/runtime: handle new dynamic states for attachment remapping
...
Signed-off-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/27307 >
2024-01-29 08:24:14 +00:00
Lionel Landwerlin
76cf391255
vulkan/runtime: add helper to query attachment layout
...
The runtime is turning GENERAL layouts into FEEDBACK_LOOP ones when it
detects feedback loops in a render pass. This is breaking drivers that
would like to use a different HW layout for those 2 layouts because if
the application inserts barrier in the render pass, the barriers the
driver sees are inconsistent.
This could lead to barrier of this type :
- GENERAL -> FEEDBACK_LOOP (runtime)
- GENERAL -> GENERAL (app)
- FEEDBACK_LOOP -> GENERAL (runtime)
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23523 >
2024-01-26 13:39:01 +00:00
Samuel Pitoiset
a8142a6051
vulkan: promote VK_EXT_line_rasterization to KHR
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27261 >
2024-01-25 19:55:14 +00:00
Lionel Landwerlin
ccaec08012
vulkan/runtime: handle new image layout
...
To prevent compiler warnings.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27260 >
2024-01-25 14:57:51 +01:00
Gurchetan Singh
a1e67b3933
mesa/vulkan: use DETECT_OS_ANDROID
...
This uses DETECT_OS_ANDROID instead of defined(ANDROID).
This better supports glibc based host builds in the Soong
build system.
Reviewed-by: Aaron Ruby <aruby@blackberry.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26874 >
2024-01-18 18:45:40 +00:00
Dave Airlie
6bd31b60e1
vulkan/video: constify the encoding apis.
...
There is no need for these to be modified in here.
Reviewed-by: Hyunjun Ko <zzoon@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27082 >
2024-01-18 11:32:26 +10:00
Dave Airlie
34e72579cd
vulkan/video: start deep copying the parameters structures
...
Joshua Ashton pointed out we aren't copying these deeply,
and we really should be.
This introduces deep copies of all the h264/h265 parameter sets.
Reviewed-by: Hyunjun Ko <zzoon@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27066 >
2024-01-16 00:54:35 +00:00
Dave Airlie
b4a6a876be
vulkan/video: start to wrap the video structs for deep copies.
...
This doesn't do any of the deep copies, it's just more non-functional changes
in preparation.
v2: fix alloc sizes
Reviewed-by: Hyunjun Ko <zzoon@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27066 >
2024-01-16 00:54:35 +00:00
Dave Airlie
b72b4d8a0e
vulkan/video: rename some of the parameter tracking structs.
...
This will make it easier to add deep copy support.
Reviewed-by: Hyunjun Ko <zzoon@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27066 >
2024-01-16 00:54:35 +00:00
Dave Airlie
57d83cb99c
vulkan/video: drop unused function.
...
This looks to have been left over.
Reviewed-by: Hyunjun Ko <zzoon@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27066 >
2024-01-16 00:54:35 +00:00
George Ouzounoudis
48d510ac57
vulkan: Fix null pointer dereferencing on sample locations state
...
In the case both sample locations and rasterization samples is supported by a
driver as dynamic state, there is a case vk_multisample_sample_locations_state_init()
does not fill ms->sample_locations at all. In this case we need to check
this pointer when dereferencing it in vk_dynamic_graphics_state_init_ms().
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27025 >
2024-01-13 18:25:20 +00:00
Mike Blumenkrantz
b6bfa73dc7
vk/cmdbuf: add back deleted maint6 workgraph bits
...
this otherwise breaks workgraph support in lavapipe
Fixes: ec656e1984 ("lavapipe: maint6")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26977 >
2024-01-11 15:59:17 +00:00
Yiwei Zhang
3923d43908
meson/vulkan/util: allow venus to drop compiler deps
...
Files to compile: 451 => 232
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26783 >
2024-01-10 21:06:35 +00:00
Mike Blumenkrantz
f60dafb4bd
vulkan: add wrappers for descriptor '2' functions
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26849 >
2024-01-02 11:28:07 +00:00
Dave Airlie
b4cde1b2a6
vulkan/video: drop encode beta checks and rename EXT->KHR
...
The latest headers move encode support out of beta, so clean up the tree.
Reviewed-by: Lynne <dev@lynne.ee >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26763 >
2023-12-19 20:48:59 +00:00
Samuel Pitoiset
7afd7299bf
vulkan: drop VK_ENABLE_BETA_EXTENSIONS for video encode layouts
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26756 >
2023-12-19 14:44:07 +00:00
George Ouzounoudis
d8945dd51e
vulkan: Fix dynamic graphics state enum usage
...
Simply replace the correct rasterization stream enum
Fixes: 9d0ed9cbcc ("vulkan: Add more dynamic rasterizer state")
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24872 >
2023-12-15 22:28:51 -06:00
Colin Marc
a26119e124
vulkan video: correctly set SPS VUI bits
...
According to the spec section E.1 flags such as overscan_info_present_flag are
independent of aspect_ratio_info_present_flag.
Reviewed-by: Hyunjun Ko <zzoon@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26669 >
2023-12-15 07:13:13 +00:00
Chris Spencer
342dba5102
vulkan/android: Only limit advertised extensions in strict mode
...
Signed-off-by: Chris Spencer <spencercw@gmail.com >
Acked-by: Chia-I Wu <olvaffe@gmail.com >
Acked-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25101 >
2023-12-13 20:09:37 +00:00
Samuel Pitoiset
24c755316b
vulkan/runtime: promote VK_EXT_vertex_attribute_divisor to KHR
...
Just rename existing structs.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26595 >
2023-12-13 08:08:21 +00:00
Echo J
9342635903
vulkan: Remove nonexistent output in vk_synchronization_helpers target
...
I noticed that my NVK build was always LTOing the library twice
(I managed to trace it to the vk_synchronization_helpers change)
This change fixes the double compilation/LTO issue (which should
definitely cut packaging times a bit) 🐸
Fixes: fe12c1c29e ("vulkan: Add some auto-generated synchronization helpers")
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26630 >
2023-12-12 17:01:00 +00:00
Yonggang Luo
e7c614bd20
util,vulkan,mesa,compiler: Generate source files with utf8 encoding from mako template
...
This is for fixes the following error:
FAILED: src/vulkan/runtime/vk_synchronization_helpers.c src/vulkan/runtime/vk_synchronization_helpers.h
"C:\CI-Tools\msys64\mingw64\bin/python3.EXE" "../../src/vulkan/util/vk_synchronization_helpers_gen.py" "--xml" "../../src/vulkan/registry/vk.xml" "--out-c" "src/vulkan/runtime/vk_synchronization_helpers.c" "--beta" "false"
Traceback (most recent call last):
File "C:/work/xemu/mesa/src/vulkan/util/vk_synchronization_helpers_gen.py", line 213, in main
f.write(TEMPLATE_C.render(**environment))
UnicodeEncodeError: 'gbk' codec can't encode character '\xa9' in position 15: illegal multibyte sequence
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Acked-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26515 >
2023-12-07 12:41:07 +00:00
Lionel Landwerlin
e8a96e6ba0
vulkan/runtime: retain video session creation flags
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26519 >
2023-12-06 19:17:17 +00:00
Eric Engestrom
84c27ea42c
vk/runtime: update symbols that have become aliases for newer ones
...
All of these have been renamed in the spec (usually by being promoted);
renamed them in our code too.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26487 >
2023-12-04 23:27:29 +00:00
Faith Ekstrand
00e88584af
vulkan: Add helpers for access flags
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26407 >
2023-12-01 17:59:51 +00:00
Faith Ekstrand
44add595af
vulkan: Add helpers for pipeline stage flags
...
This adds hand-written helpers for detecting if a set of stage flags
contains shaders as well as expand helpers that properly handle
TOP/BOTTOM_OF_PIPE_BIT.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26407 >
2023-12-01 17:59:51 +00:00
Faith Ekstrand
fe12c1c29e
vulkan: Add some auto-generated synchronization helpers
...
These are helpful for drivers to implement synchronization rules
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26407 >
2023-12-01 17:59:51 +00:00
Faith Ekstrand
9ad51980de
vulkan: Move vk_synchronization2 to vk_synchronization
...
I'm about to add more stuff that isn't really for sync2 so it makes
sense to give it a slightly more generic name.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26407 >
2023-12-01 17:59:50 +00:00
Hyunjun Ko
fbc9811241
vulkan/video: fix a typo
...
Fixes: d46162981a ("vulkan/video: add h264 headers encode")
Signed-off-by: Hyunjun Ko <zzoon@igalia.com >
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26139 >
2023-11-17 00:45:55 +00:00
Friedrich Vock
8ffdad731c
vulkan: Don't use set_foreach_remove when destroying pipeline caches
...
set_foreach_remove assumes no entries have been removed. That assumption
only holds if no errors occur, since pipeline cache objects can get
removed if an error occurs during deserialization.
This fixes
dEQP-VK.api.device_init.create_instance_device_intentional_alloc_fail.basic
crashing on RADV.
Cc: mesa-stable
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
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/26164 >
2023-11-13 20:09:31 +00:00
antonino
2d49f834b2
vulkan: use instance allocator for object_name in some objects
...
The allocator passed to VkDevice won't be available once it is destroyed
and thefore it cannot be used to allocate `object_name` for instance
level objects such as `VkInstance` or `VkPhysicalDevice` or else there
would be no way of deallocating it when those objects are destroyed.
Cc: mesa-stable
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Mark Collins <mark@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26085 >
2023-11-10 20:57:19 +00:00
Paulo Zanoni
17e135d3d4
vulkan: fix potential memory leak in create_rect_list_pipeline()
...
I was playing around with possible improvements to STACK_ARRAY(), and
one of my experiments made gcc point us that we were not freeing
'stages'.
Fixes: 514c10344e ("vulkan/meta: Add a concept of rect pipelines")
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26041 >
2023-11-09 18:22:36 +00:00