summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilipp Zabel <p.zabel@pengutronix.de>2023-06-02 15:59:03 +0200
committerMichael Olbrich <m.olbrich@pengutronix.de>2023-06-02 23:34:05 +0200
commit51d702042185bec37022215b7ded0272c1673555 (patch)
treef099a4dc1013dae7d79bff2fd081b5bf166d8d39
parent56957d643ab7e9cfed9a4d6c496cf9b8a9c21b37 (diff)
downloadptxdist-51d702042185bec37022215b7ded0272c1673555.tar.gz
ptxdist-51d702042185bec37022215b7ded0272c1673555.tar.xz
vulkan-validationlayers: version bump 1.3.246.1 -> 1.3.250.0
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de> Message-Id: <20230602135903.694427-7-p.zabel@pengutronix.de> Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
-rw-r--r--patches/vulkan-validationlayers-1.3.246.1/0002-layers-Fix-UB-for-VK_IMAGE_TILING_DRM_FORMAT_MODIFIE.patch201
-rw-r--r--patches/vulkan-validationlayers-1.3.246.1/series5
-rw-r--r--patches/vulkan-validationlayers-1.3.250.0/0001-Revert-cmake-Fix-find_-support-when-cross-compiling.patch (renamed from patches/vulkan-validationlayers-1.3.246.1/0001-Revert-cmake-Fix-find_-support-when-cross-compiling.patch)4
-rw-r--r--patches/vulkan-validationlayers-1.3.250.0/series4
-rw-r--r--rules/vulkan-validationlayers.make4
5 files changed, 8 insertions, 210 deletions
diff --git a/patches/vulkan-validationlayers-1.3.246.1/0002-layers-Fix-UB-for-VK_IMAGE_TILING_DRM_FORMAT_MODIFIE.patch b/patches/vulkan-validationlayers-1.3.246.1/0002-layers-Fix-UB-for-VK_IMAGE_TILING_DRM_FORMAT_MODIFIE.patch
deleted file mode 100644
index 3b625e311..000000000
--- a/patches/vulkan-validationlayers-1.3.246.1/0002-layers-Fix-UB-for-VK_IMAGE_TILING_DRM_FORMAT_MODIFIE.patch
+++ /dev/null
@@ -1,201 +0,0 @@
-From: Niklas Haas <git@haasn.dev>
-Date: Thu, 20 Apr 2023 11:51:49 +0200
-Subject: [PATCH] layers: Fix UB for VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT
-
-Several codepaths in the layers called into
-vkGetPhysicalDeviceImageFormatProperties2KHR without including a valid
-VkPhysicalDeviceImageDrmFormatModifierInfoEXT, despite this being a
-requirement for images with DRM format modifier tiling.
-
-For the vkBindImageMemory check, there is a hypothetical possibility of
-the driver returning VK_ERROR_OUT_OF_HOST_MEMORY when querying the
-image's DRM format. In this case, for lack of anything better to do, we
-preserve the current behavior.
-
-It might make more sense to query the DRM format modifier immediately
-after image creation and cache it inside the image state, but I didn't
-want to make that (more invasive) change myself.
-
-As an aside, we also correctly specify the specified `sharingMode` when
-querying for DRM modifier support, which the current code failed to do
-properly.
-
-Co-authored-by: Simon Ser <contact@emersion.fr>
-
-closes #5649
-closes #5687
-
-(cherry picked from commit ce2c6eff3457a331efd64da800c5ac393285cf40)
-
-Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
----
- layers/core_checks/device_memory_validation.cpp | 18 ++++++-
- layers/core_checks/image_validation.cpp | 72 ++++++++++++++++---------
- 2 files changed, 62 insertions(+), 28 deletions(-)
-
-diff --git a/layers/core_checks/device_memory_validation.cpp b/layers/core_checks/device_memory_validation.cpp
-index 4a98d6f0922d..555985957dce 100644
---- a/layers/core_checks/device_memory_validation.cpp
-+++ b/layers/core_checks/device_memory_validation.cpp
-@@ -887,7 +887,7 @@ bool CoreChecks::PreCallValidateMapMemory(VkDevice device, VkDeviceMemory mem, V
- return skip;
- }
-
--bool CoreChecks::PreCallValidateMapMemory2KHR(VkDevice device, const VkMemoryMapInfoKHR* pMemoryMapInfo, void **ppData) const {
-+bool CoreChecks::PreCallValidateMapMemory2KHR(VkDevice device, const VkMemoryMapInfoKHR *pMemoryMapInfo, void **ppData) const {
- bool skip = false;
- auto mem_info = Get<DEVICE_MEMORY_STATE>(pMemoryMapInfo->memory);
- if (mem_info) {
-@@ -905,7 +905,7 @@ bool CoreChecks::PreCallValidateUnmapMemory(VkDevice device, VkDeviceMemory mem)
- return skip;
- }
-
--bool CoreChecks::PreCallValidateUnmapMemory2KHR(VkDevice device, const VkMemoryUnmapInfoKHR* pMemoryUnmapInfo) const {
-+bool CoreChecks::PreCallValidateUnmapMemory2KHR(VkDevice device, const VkMemoryUnmapInfoKHR *pMemoryUnmapInfo) const {
- bool skip = false;
- auto mem_info = Get<DEVICE_MEMORY_STATE>(pMemoryUnmapInfo->memory);
- if (mem_info && !mem_info->mapped_range.size) {
-@@ -1269,6 +1269,10 @@ bool CoreChecks::ValidateBindImageMemory(uint32_t bindInfoCount, const VkBindIma
-
- // Validate export memory handles
- if (mem_info->export_handle_type_flags != 0) {
-+ auto drm_format_modifier = LvlInitStruct<VkPhysicalDeviceImageDrmFormatModifierInfoEXT>();
-+ drm_format_modifier.sharingMode = image_state->createInfo.sharingMode;
-+ drm_format_modifier.queueFamilyIndexCount = image_state->createInfo.queueFamilyIndexCount;
-+ drm_format_modifier.pQueueFamilyIndices = image_state->createInfo.pQueueFamilyIndices;
- auto external_info = LvlInitStruct<VkPhysicalDeviceExternalImageFormatInfo>();
- auto image_info = LvlInitStruct<VkPhysicalDeviceImageFormatInfo2>(&external_info);
- image_info.format = image_state->createInfo.format;
-@@ -1283,6 +1287,16 @@ bool CoreChecks::ValidateBindImageMemory(uint32_t bindInfoCount, const VkBindIma
- // Check export operation support
- auto check_export_support = [&](VkExternalMemoryHandleTypeFlagBits flag) {
- external_info.handleType = flag;
-+ external_info.pNext = NULL;
-+ if (image_state->createInfo.tiling == VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT) {
-+ auto drm_modifier_properties = LvlInitStruct<VkImageDrmFormatModifierPropertiesEXT>();
-+ auto result =
-+ DispatchGetImageDrmFormatModifierPropertiesEXT(device, bind_info.image, &drm_modifier_properties);
-+ if (result == VK_SUCCESS) {
-+ external_info.pNext = &drm_format_modifier;
-+ drm_format_modifier.drmFormatModifier = drm_modifier_properties.drmFormatModifier;
-+ }
-+ }
- auto result =
- DispatchGetPhysicalDeviceImageFormatProperties2(physical_device, &image_info, &image_properties);
- if (result != VK_SUCCESS) {
-diff --git a/layers/core_checks/image_validation.cpp b/layers/core_checks/image_validation.cpp
-index c56b5dabdd27..35a84c86f8ef 100644
---- a/layers/core_checks/image_validation.cpp
-+++ b/layers/core_checks/image_validation.cpp
-@@ -176,30 +176,35 @@ bool CoreChecks::PreCallValidateCreateImage(VkDevice device, const VkImageCreate
- }
- }
-
-- VkImageFormatProperties format_limits = {};
-+ auto image_format_properties = LvlInitStruct<VkImageFormatProperties2>();
-+ auto image_format_info = LvlInitStruct<VkPhysicalDeviceImageFormatInfo2>();
-+ image_format_info.type = pCreateInfo->imageType;
-+ image_format_info.format = pCreateInfo->format;
-+ image_format_info.tiling = pCreateInfo->tiling;
-+ image_format_info.usage = pCreateInfo->usage;
-+ image_format_info.flags = pCreateInfo->flags;
- VkResult result = VK_SUCCESS;
- if (pCreateInfo->tiling != VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT) {
-- result = DispatchGetPhysicalDeviceImageFormatProperties(physical_device, pCreateInfo->format, pCreateInfo->imageType,
-- pCreateInfo->tiling, pCreateInfo->usage, pCreateInfo->flags,
-- &format_limits);
-+ if (IsExtEnabled(device_extensions.vk_khr_get_physical_device_properties2)) {
-+ result = DispatchGetPhysicalDeviceImageFormatProperties2(physical_device, &image_format_info, &image_format_properties);
-+ } else {
-+ result = DispatchGetPhysicalDeviceImageFormatProperties(physical_device, pCreateInfo->format, pCreateInfo->imageType,
-+ pCreateInfo->tiling, pCreateInfo->usage, pCreateInfo->flags,
-+ &image_format_properties.imageFormatProperties);
-+ }
- } else {
- auto modifier_list = LvlFindInChain<VkImageDrmFormatModifierListCreateInfoEXT>(pCreateInfo->pNext);
- auto explicit_modifier = LvlFindInChain<VkImageDrmFormatModifierExplicitCreateInfoEXT>(pCreateInfo->pNext);
-+ auto drm_format_modifier = LvlInitStruct<VkPhysicalDeviceImageDrmFormatModifierInfoEXT>();
-+ image_format_info.pNext = &drm_format_modifier;
-+ drm_format_modifier.sharingMode = pCreateInfo->sharingMode;
-+ drm_format_modifier.queueFamilyIndexCount = pCreateInfo->queueFamilyIndexCount;
-+ drm_format_modifier.pQueueFamilyIndices = pCreateInfo->pQueueFamilyIndices;
- if (modifier_list) {
- for (uint32_t i = 0; i < modifier_list->drmFormatModifierCount; i++) {
-- auto drm_format_modifier = LvlInitStruct<VkPhysicalDeviceImageDrmFormatModifierInfoEXT>();
- drm_format_modifier.drmFormatModifier = modifier_list->pDrmFormatModifiers[i];
-- auto image_format_info = LvlInitStruct<VkPhysicalDeviceImageFormatInfo2>(&drm_format_modifier);
-- image_format_info.type = pCreateInfo->imageType;
-- image_format_info.format = pCreateInfo->format;
-- image_format_info.tiling = pCreateInfo->tiling;
-- image_format_info.usage = pCreateInfo->usage;
-- image_format_info.flags = pCreateInfo->flags;
-- auto image_format_properties = LvlInitStruct<VkImageFormatProperties2>();
--
- result =
- DispatchGetPhysicalDeviceImageFormatProperties2(physical_device, &image_format_info, &image_format_properties);
-- format_limits = image_format_properties.imageFormatProperties;
-
- /* The application gives a list of modifier and the driver
- * selects one. If one is wrong, stop there.
-@@ -207,18 +212,8 @@ bool CoreChecks::PreCallValidateCreateImage(VkDevice device, const VkImageCreate
- if (result != VK_SUCCESS) break;
- }
- } else if (explicit_modifier) {
-- auto drm_format_modifier = LvlInitStruct<VkPhysicalDeviceImageDrmFormatModifierInfoEXT>();
- drm_format_modifier.drmFormatModifier = explicit_modifier->drmFormatModifier;
-- auto image_format_info = LvlInitStruct<VkPhysicalDeviceImageFormatInfo2>(&drm_format_modifier);
-- image_format_info.type = pCreateInfo->imageType;
-- image_format_info.format = pCreateInfo->format;
-- image_format_info.tiling = pCreateInfo->tiling;
-- image_format_info.usage = pCreateInfo->usage;
-- image_format_info.flags = pCreateInfo->flags;
-- auto image_format_properties = LvlInitStruct<VkImageFormatProperties2>();
--
- result = DispatchGetPhysicalDeviceImageFormatProperties2(physical_device, &image_format_info, &image_format_properties);
-- format_limits = image_format_properties.imageFormatProperties;
- }
- }
-
-@@ -238,6 +233,7 @@ bool CoreChecks::PreCallValidateCreateImage(VkDevice device, const VkImageCreate
- }
- #endif // VK_USE_PLATFORM_ANDROID_KHR
- } else {
-+ const auto format_limits = image_format_properties.imageFormatProperties;
- if (pCreateInfo->mipLevels > format_limits.maxMipLevels) {
- skip |= LogError(device, "VUID-VkImageCreateInfo-mipLevels-02255",
- "vkCreateImage(): Image mip levels=%d exceed image format maxMipLevels=%d for format %s.",
-@@ -468,8 +464,32 @@ bool CoreChecks::PreCallValidateCreateImage(VkDevice device, const VkImageCreate
-
- auto external_image_properties = LvlInitStruct<VkExternalImageFormatProperties>();
- auto image_properties = LvlInitStruct<VkImageFormatProperties2>(&external_image_properties);
-- result = DispatchGetPhysicalDeviceImageFormatProperties2(physical_device, &image_info, &image_properties);
-- const auto compatible_types = external_image_properties.externalMemoryProperties.compatibleHandleTypes;
-+ VkExternalMemoryHandleTypeFlags compatible_types = 0;
-+ if (pCreateInfo->tiling != VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT) {
-+ result = DispatchGetPhysicalDeviceImageFormatProperties2(physical_device, &image_info, &image_properties);
-+ compatible_types = external_image_properties.externalMemoryProperties.compatibleHandleTypes;
-+ } else {
-+ auto modifier_list = LvlFindInChain<VkImageDrmFormatModifierListCreateInfoEXT>(pCreateInfo->pNext);
-+ auto explicit_modifier = LvlFindInChain<VkImageDrmFormatModifierExplicitCreateInfoEXT>(pCreateInfo->pNext);
-+ auto drm_format_modifier = LvlInitStruct<VkPhysicalDeviceImageDrmFormatModifierInfoEXT>();
-+ external_image_info.pNext = &drm_format_modifier;
-+ drm_format_modifier.sharingMode = pCreateInfo->sharingMode;
-+ drm_format_modifier.queueFamilyIndexCount = pCreateInfo->queueFamilyIndexCount;
-+ drm_format_modifier.pQueueFamilyIndices = pCreateInfo->pQueueFamilyIndices;
-+ if (modifier_list) {
-+ for (uint32_t i = 0; i < modifier_list->drmFormatModifierCount; i++) {
-+ drm_format_modifier.drmFormatModifier = modifier_list->pDrmFormatModifiers[i];
-+ result = DispatchGetPhysicalDeviceImageFormatProperties2(physical_device, &image_info, &image_properties);
-+ compatible_types |= external_image_properties.externalMemoryProperties.compatibleHandleTypes;
-+ if (result != VK_SUCCESS)
-+ break;
-+ }
-+ } else if (explicit_modifier) {
-+ drm_format_modifier.drmFormatModifier = explicit_modifier->drmFormatModifier;
-+ result = DispatchGetPhysicalDeviceImageFormatProperties2(physical_device, &image_info, &image_properties);
-+ compatible_types = external_image_properties.externalMemoryProperties.compatibleHandleTypes;
-+ }
-+ }
-
- if (result != VK_SUCCESS) {
- skip |= LogError(
diff --git a/patches/vulkan-validationlayers-1.3.246.1/series b/patches/vulkan-validationlayers-1.3.246.1/series
deleted file mode 100644
index 33102174e..000000000
--- a/patches/vulkan-validationlayers-1.3.246.1/series
+++ /dev/null
@@ -1,5 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-Revert-cmake-Fix-find_-support-when-cross-compiling.patch
-0002-layers-Fix-UB-for-VK_IMAGE_TILING_DRM_FORMAT_MODIFIE.patch
-# e0d6af34fb6700edc57f14684c9a4c44 - git-ptx-patches magic
diff --git a/patches/vulkan-validationlayers-1.3.246.1/0001-Revert-cmake-Fix-find_-support-when-cross-compiling.patch b/patches/vulkan-validationlayers-1.3.250.0/0001-Revert-cmake-Fix-find_-support-when-cross-compiling.patch
index c3e3338b0..4716894cd 100644
--- a/patches/vulkan-validationlayers-1.3.246.1/0001-Revert-cmake-Fix-find_-support-when-cross-compiling.patch
+++ b/patches/vulkan-validationlayers-1.3.250.0/0001-Revert-cmake-Fix-find_-support-when-cross-compiling.patch
@@ -17,10 +17,10 @@ Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt
-index f3536cc2a05e..a71de73111a2 100644
+index 94c8528c83a4..b8aebdd6eca6 100644
--- a/scripts/CMakeLists.txt
+++ b/scripts/CMakeLists.txt
-@@ -127,8 +127,4 @@ if (MIMALLOC_INSTALL_DIR)
+@@ -123,8 +123,4 @@ if (MIMALLOC_INSTALL_DIR)
list(APPEND CMAKE_PREFIX_PATH ${MIMALLOC_INSTALL_DIR})
endif()
diff --git a/patches/vulkan-validationlayers-1.3.250.0/series b/patches/vulkan-validationlayers-1.3.250.0/series
new file mode 100644
index 000000000..ac294ce4f
--- /dev/null
+++ b/patches/vulkan-validationlayers-1.3.250.0/series
@@ -0,0 +1,4 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-Revert-cmake-Fix-find_-support-when-cross-compiling.patch
+# 6d856a1a207d0d3f7e4c957af59f9af8 - git-ptx-patches magic
diff --git a/rules/vulkan-validationlayers.make b/rules/vulkan-validationlayers.make
index a497ca942..1d9361a74 100644
--- a/rules/vulkan-validationlayers.make
+++ b/rules/vulkan-validationlayers.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_VULKAN_VALIDATIONLAYERS) += vulkan-validationlayers
#
# Paths and names
#
-VULKAN_VALIDATIONLAYERS_VERSION := 1.3.246.1
-VULKAN_VALIDATIONLAYERS_MD5 := beba63c5c96fadd027ee3c3bd230b19e
+VULKAN_VALIDATIONLAYERS_VERSION := 1.3.250.0
+VULKAN_VALIDATIONLAYERS_MD5 := 6452bc13fe2b6cb2b69641f572cb0b7a
VULKAN_VALIDATIONLAYERS := vulkan-validationlayers-$(VULKAN_VALIDATIONLAYERS_VERSION)
VULKAN_VALIDATIONLAYERS_SUFFIX := tar.gz
VULKAN_VALIDATIONLAYERS_URL := https://github.com/KhronosGroup/Vulkan-ValidationLayers/archive/sdk-$(VULKAN_VALIDATIONLAYERS_VERSION).$(VULKAN_VALIDATIONLAYERS_SUFFIX)