Erik Faye-Lund
c69dc01796
vulkan: avoid needless constant-folding
...
While we're at it, also switch to the nir_f{add,mul}_imm helpers.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23855 >
2023-06-29 07:08:18 +00:00
Konstantin Seurer
b0beca8c7a
vulkan/rmv,radv: Use common trace trigger
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20573 >
2023-06-27 06:25:56 +00:00
Konstantin Seurer
291fa05545
vulkan/wsi/x11: Capture traces using a hotkey
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20573 >
2023-06-27 06:25:56 +00:00
Konstantin Seurer
70489edce4
vulkan: Common trace capturing infrastructure
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20573 >
2023-06-27 06:25:56 +00:00
Hyunjun Ko
e2f95ad296
vulkan/video: keep delta weight and offsets of predicted weight tables in h265 slice parsing
...
Signed-off-by: Hyunjun Ko <zzoon@igalia.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23790 >
2023-06-26 15:07:53 +09:00
Tatsuyuki Ishi
b69a1b4153
vulkan: Migrate shader module hash to BLAKE3.
...
Shaders are the largest thing we hash now, so they benefit from a faster
hash.
Change the field name from `sha1` to `hash` to avoid tying the definition
to a particular algorithm. This doubles down as a precaution against
callers still assuming a 20-byte hash (in which case the compilation will
error out).
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22571 >
2023-06-23 09:28:04 +00:00
Michel Zou
badb85edb8
util: reinstate ENUM_PACKED
...
gets rid of warning: 'gcc_struct' attribute ignored [-Wattributes] introduced by !23338
Fixes: 86532fa21d ("util: Use the gcc_struct attribute for packed structures in mingw")
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23478 >
2023-06-21 21:51:59 +00:00
Hyunjun Ko
240b419c03
vulkan/video: consider removed bits when calculating the size of comsumed data.
...
Closes : mesa/mesa#9170
Signed-off-by: Hyunjun Ko <zzoon@igalia.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23688 >
2023-06-21 19:24:49 +09:00
Hyunjun Ko
6f2e260d2b
vulkan/video: move parsing longterm rps in h265 slice parsing.
...
It was just by mistake.
Fixes: efdcacb230 ("vulkan/video: add to parse h265 slice.")
Signed-off-by: Hyunjun Ko <zzoon@igalia.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23688 >
2023-06-21 19:24:08 +09:00
Hyunjun Ko
b10631865d
vulkan/video: adds more conditions for setting loop_filter_across_slices_enable in h265 slice parsing.
...
Fixes: efdcacb230 ("vulkan/video: add to parse h265 slice.")
Signed-off-by: Hyunjun Ko <zzoon@igalia.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23688 >
2023-06-21 19:20:59 +09:00
Caio Oliveira
59a72570b6
compiler: Move spirv into a module of its own
...
For historical reasons, nir and vtn were compiled together,
and a bunch of vtn specific targets were defined in
src/compiler/meson.build.
Now that we can, make src/compiler/spirv produce an internal
library that depends on NIR, and is used by the drivers/tools.
Also move the vtn specific targets into that directory's
meson.build.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23668 >
2023-06-20 16:18:08 +00:00
Samuel Pitoiset
0432a748ee
vulkan/runtime: call CmdSetDepthBias2EXT() from CmdSetDepthBias()
...
Signed-off-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/23696 >
2023-06-20 12:46:28 +00:00
Lionel Landwerlin
f39fa39809
vulkan/runtime: add support for EXT_depth_bias_control
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23716 >
2023-06-20 03:05:01 +00:00
Yonggang Luo
b687fa4ccb
vulkan: move nir_convert_ycbcr into vulkan runtime
...
This only used by vulkan drivers and depends on vulkan util, so do the move to decouple
nir from vulkan utils
Reviewed-by: Rob Clark <robdclark@chromium.org >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23444 >
2023-06-07 08:42:03 +00:00
Dave Airlie
45a92f14b2
vk/video: add a common function to get block alignments for profiles
...
This is to be used by drivers for internal image alignments.
This just adds a common profile to alignment helper.
Cc: mesa-stable
Reviewed-by: Lynne <dev@lynne.ee >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23227 >
2023-05-30 02:53:32 +00:00
Víctor Manuel Jáquez Leal
0e886a93ce
vulkan: complete the usage flags for video layouts
...
Otherwise Vulkan decoding with FFmpeg crashes on anv.
Reviewed-by: Dave Airlie <airlied@redhat.com >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23184 >
2023-05-29 02:59:05 +00:00
Samuel Pitoiset
8126e0287d
vulkan/pipeline_cache: remove a bogus assert when inserting objects
...
If two threads deserialize the raw object at the same time, the
refcount could be more than 1 temporarily.
This can be reproduced with Granite during the multi-threaded pipeline
cache pre-warm on startup, and also with Dota2.
Fixes: cbab396f54 ("vulkan/pipeline_cache: replace raw data objects on cache insertion of real objects")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22853 >
2023-05-25 10:07:35 +00:00
Mike Blumenkrantz
dfc01aea83
vk/graphics_state: handle null pipeline state structs in creation
...
when these members are null, the corresponding graphics states should be
initialized with sensible default values
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22236 >
2023-05-22 23:51:22 +00:00
Hyunjun Ko
b08614b96b
vulkan/video: add h265 reference structures and relevant util functions.
...
Signed-off-by: Hyunjun Ko <zzoon@igalia.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22202 >
2023-05-19 06:15:01 +00:00
Hyunjun Ko
efdcacb230
vulkan/video: add to parse h265 slice.
...
Vulkan spec doesn't provide any interface for slice decoding while some
devices may require them. So we need to keep this inside.
Signed-off-by: Hyunjun Ko <zzoon@igalia.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22202 >
2023-05-19 06:15:01 +00:00
Daniel Schürmann
8bfd18b8c5
vulkan/pipeline_cache: don't log warnings for client-invisible caches
...
Fixes: d3f06cf5ce ('vulkan/pipeline_cache: don't log warnings for internal caches')
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22986 >
2023-05-17 20:40:12 +00:00
Jesse Natalie
c9146794d4
vulkan: Win32 sync import/export support
...
Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22879 >
2023-05-15 17:14:20 +00:00
Chia-I Wu
47b37651f8
vulkan: add vk_image_format_to_ahb_format
...
There should be no functional change.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22619 >
2023-05-11 22:18:03 +00:00
Chia-I Wu
380180516c
anv,hasvk,radv: do not fall back to AHARDWAREBUFFER_FORMAT_BLOB
...
When allocating a VkDeviceMemory exportable as AHB, it seems incorrect
to fall back to AHARDWAREBUFFER_FORMAT_BLOB when the image has no known
AHB format. We should fail the allocation instead.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22619 >
2023-05-11 22:18:03 +00:00
Chia-I Wu
50e703f347
vulkan: add vk_ahb_format_to_image_format
...
There should be no functional change.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22619 >
2023-05-11 22:18:02 +00:00
Chia-I Wu
2bbe0462e8
vulkan: define inline stubs when android api level < 26
...
This allows us to reduce ANDROID #ifdef's.
v2: always include vk_android.h in radv_formats.c
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22619 >
2023-05-11 22:18:02 +00:00
Chia-I Wu
f81dce9bcc
vulkan: rename vk_image::ahardware_buffer_format
...
Rename it to ahb_format.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22619 >
2023-05-11 22:18:02 +00:00
Chia-I Wu
5561abcb2c
vulkan: make sure vk_image_view::format is never UNDEFINED
...
Remove redundant override in anv and hasvk as well.
Fixed
android.graphics.cts.BasicVulkanGpuTest#testBasicBufferImportAndRenderingExternalFormat
for radv.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22619 >
2023-05-11 22:18:02 +00:00
Chia-I Wu
df8ec99c81
vulkan: make sure vk_image::format is never UNDEFINED
...
vk_image::android_external_format is only used for sanity check and is
removed.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22619 >
2023-05-11 22:18:02 +00:00
Daniel Schürmann
d3f06cf5ce
vulkan/pipeline_cache: don't log warnings for internal caches
...
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22850 >
2023-05-11 08:36:12 +00:00
Mike Blumenkrantz
ae4692db49
vulkan/runtime: add VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT
...
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22849 >
2023-05-09 13:29:34 +00:00
Faith Ekstrand
fcdf28ad94
vulkan: Document vk_physical_device::supported_features
...
While we're here, move it to after supported extensions to stay
consistent with the vk_physical_device_init parameters.
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22845 >
2023-05-04 17:38:30 +00:00
Dave Airlie
fa938dd975
vulkan: write beta extensions into generator scripts.
...
Updated by: Hyunjun Ko <zzoon@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21806 >
2023-05-04 02:40:06 +00:00
Constantine Shablya
64f4b277ea
vulkan: inline vk_get_physical_device_features into vk_common_GetPhysicalDeviceFeatures2
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22333 >
2023-05-03 03:27:54 +00:00
Constantine Shablya
61413d70a0
vulkan: introduce supported_features parameter to vk_physical_device_init
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22333 >
2023-05-03 03:27:54 +00:00
Constantine Shablya
cc02214304
vulkan: add common implementation of vkGetPhysicalDeviceFeatures2
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22333 >
2023-05-03 03:27:54 +00:00
Emma Anholt
c93b179d76
vulkan: Actually increment the count of objects in GetPipelineCacheData.
...
Otherwise a load of the cache won't load any of the objects in it!
Fixes: 591da98779 ("vulkan: Add a common VkPipelineCache implementation")
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22700 >
2023-05-03 00:27:49 +00:00
Emma Anholt
bc257928d7
vulkan: Handle alignment failure in the pipeline cache.
...
On malloc failure, or more likely a passed in pDataSize < pipeline cache
data size, we should return incomplete. Otherwise,
vk_pipeline_cache_object_serialize will assertion fail about the start not
being aligned.
Closes : #8868
Fixes: 591da98779 ("vulkan: Add a common VkPipelineCache implementation")
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22700 >
2023-05-03 00:27:49 +00:00
Daniel Schürmann
9afb52a122
vulkan/pipeline_cache: expose vk_raw_data_cache_object
...
together with vk_raw_data_cache_object_ops and vk_raw_data_cache_object_create().
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22100 >
2023-05-02 19:15:10 +00:00
Daniel Schürmann
df262d80da
vulkan/pipeline_cache: use vk_pipeline_cache_insert_object() to replace raw data objects
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22735 >
2023-05-02 14:33:56 +00:00
Daniel Schürmann
cbab396f54
vulkan/pipeline_cache: replace raw data objects on cache insertion of real objects
...
It might happen that a raw data object (from pipeline cache creation)
was never looked up, and thus never deserialized, before it gets
inserted again into the cache. In this case, the deserialized object
got replaced by the raw data object.
Instead, replace the raw data object with the real object in the cache.
Fixes: 8b13ee75ba ('vulkan: Fall back to raw data objects when deserializing if ops == NULL')
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22735 >
2023-05-02 14:33:56 +00:00
Michel Dänzer
4ec052187a
vulkan: Fix GetPhysicalDeviceSparseImageFormatProperties definition
...
To match its declaration (and the corresponding definition in Vulkan
headers).
Pointed out by GCC 13:
../src/vulkan/runtime/vk_physical_device.c:230:1: warning: conflicting types for ‘vk_common_GetPhysicalDeviceSparseImageFormatProperties’ due to enum/integer mismatch; have ‘void(struct VkPhysicalDevice_T *, VkFormat, VkImageType, uint32_t, VkImageUsageFlags, VkImageTiling, uint32_t *, VkSparseImageFormatProperties *)’ {aka ‘void(struct VkPhysicalDevice_T *, VkFormat, VkImageType, unsigned int, unsigned int, VkImageTiling, unsigned int *, VkSparseImageFormatProperties *)’} [-Wenum-int-mismatch]
230 | vk_common_GetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/vulkan/runtime/vk_physical_device.c:26:
src/vulkan/runtime/vk_common_entrypoints.h:116:30: note: previous declaration of ‘vk_common_GetPhysicalDeviceSparseImageFormatProperties’ with type ‘void(struct VkPhysicalDevice_T *, VkFormat, VkImageType, VkSampleCountFlagBits, VkImageUsageFlags, VkImageTiling, uint32_t *, VkSparseImageFormatProperties *)’ {aka ‘void(struct VkPhysicalDevice_T *, VkFormat, VkImageType, VkSampleCountFlagBits, unsigned int, VkImageTiling, unsigned int *, VkSparseImageFormatProperties *)’}
116 | VKAPI_ATTR void VKAPI_CALL vk_common_GetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22517 >
2023-04-18 09:49:44 +00:00
Samuel Pitoiset
bdb03ecdd9
vulkan: ignore rasterizationSamples when the state is dynamic
...
Fixes: 1deb83fb86 ("vulkan: Add more dynamic multisample states")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22444 >
2023-04-14 12:26:53 +00:00
Lionel Landwerlin
5dc4212cc1
vulkan/runtime: discard unused graphics stages in libraries
...
Anv is trying to rely on the stages put into the library graphics
state.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Cc: mesa-stable
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/22460 >
2023-04-14 02:44:04 +00:00
Danylo Piliaiev
17df75d47d
vulkan: Sanitize pSampleMask in CmdSetSampleMaskEXT
...
ms.sample_mask is only 16b, while VkSampleMask is 32b and it is allowed
to have all of them set even if maximum 16 samples are supported.
E.g. happens with Zink running supertuxkart:
supertuxkart: ../../../source/mesa/src/vulkan/runtime/vk_graphics_state.c:2346: vk_common_CmdSetSampleMaskEXT: Assertion `(dyn)->ms.sample_mask == (*pSampleMask)' failed.
vk_common_CmdSetSampleMaskEXT (commandBuffer=0x5556e903f0, samples=VK_SAMPLE_COUNT_1_BIT, pSampleMask=0x5556819ccc) at vk_graphics_state.c:2346
zink_draw<(zink_multidraw)1, (zink_dynamic_state)5, true, false> (...) at zink_draw.cpp:639
zink_draw_vbo<(zink_multidraw)1, (zink_dynamic_state)5, true> (...) at zink_draw.cpp:922
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22360 >
2023-04-11 19:20:50 +00:00
Daniel Schürmann
719a0e269e
vulkan/pipeline_cache: move vk_log on failed deserialization to vk_pipeline_cache_load()
...
Partially evicted or corrupted disk cache entries should not create
application cache log entries.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21967 >
2023-04-10 09:14:30 +00:00
Daniel Schürmann
53eb3ad375
vulkan/pipeline_cache: add cache parameter to deserialize() function
...
This allows for secondary cache lookups during deserialization.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21967 >
2023-04-10 09:14:30 +00:00
Daniel Schürmann
a6360a3203
vulkan/pipeline_cache: use vk_pipeline_cache_create_and_insert_object() during vk_pipeline_cache_load()
...
This avoids an extra serialize() step for disk-cache insertion.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21967 >
2023-04-10 09:14:30 +00:00
Daniel Schürmann
f524f91d6f
vulkan/pipeline_cache: implement vk_pipeline_cache_create_and_insert_object()
...
This function directly inserts the serialized data into the disk cache
before calling deserialize() and inserting into the pipeline cache.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21967 >
2023-04-10 09:14:30 +00:00
Daniel Schürmann
84fa7b1745
vulkan/pipeline_cache: Don't re-insert disk-cache hits into disk-cache
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21967 >
2023-04-10 09:14:30 +00:00