* [ptxdist] [PATCH 1/7] glslang: version bump 1.3.243.0 -> 1.3.246.1
@ 2023-05-16 11:40 Philipp Zabel
2023-05-16 11:40 ` [ptxdist] [PATCH 2/7] spirv-headers: " Philipp Zabel
` (6 more replies)
0 siblings, 7 replies; 14+ messages in thread
From: Philipp Zabel @ 2023-05-16 11:40 UTC (permalink / raw)
To: ptxdist; +Cc: Philipp Zabel
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
---
rules/glslang.make | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/rules/glslang.make b/rules/glslang.make
index 5d3cb477ad1e..f79d60f7d458 100644
--- a/rules/glslang.make
+++ b/rules/glslang.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_GLSLANG) += glslang
#
# Paths and names
#
-GLSLANG_VERSION := 1.3.243.0
-GLSLANG_MD5 := 513695ced128d1bde2726d57ad676cf6
+GLSLANG_VERSION := 1.3.246.1
+GLSLANG_MD5 := b55b5074e5d3e587b564d9159a1551a1
GLSLANG := glslang-$(GLSLANG_VERSION)
GLSLANG_SUFFIX := tar.gz
GLSLANG_URL := https://github.com/KhronosGroup/glslang/archive/sdk-$(GLSLANG_VERSION).$(GLSLANG_SUFFIX)
--
2.39.2
^ permalink raw reply [flat|nested] 14+ messages in thread
* [ptxdist] [PATCH 2/7] spirv-headers: version bump 1.3.243.0 -> 1.3.246.1
2023-05-16 11:40 [ptxdist] [PATCH 1/7] glslang: version bump 1.3.243.0 -> 1.3.246.1 Philipp Zabel
@ 2023-05-16 11:40 ` Philipp Zabel
2023-05-17 16:14 ` [ptxdist] [APPLIED] " Michael Olbrich
2023-05-16 11:40 ` [ptxdist] [PATCH 3/7] spirv-tools: " Philipp Zabel
` (5 subsequent siblings)
6 siblings, 1 reply; 14+ messages in thread
From: Philipp Zabel @ 2023-05-16 11:40 UTC (permalink / raw)
To: ptxdist; +Cc: Philipp Zabel
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
---
| 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--git a/rules/spirv-headers.make b/rules/spirv-headers.make
index 66c8f9167adf..af0770cf22b7 100644
--- a/rules/spirv-headers.make
+++ b/rules/spirv-headers.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_SPIRV_HEADERS) += spirv-headers
#
# Paths and names
#
-SPIRV_HEADERS_VERSION := 1.3.243.0
-SPIRV_HEADERS_MD5 := f3025c0e1a7846ac948a8118fbb85a9b
+SPIRV_HEADERS_VERSION := 1.3.246.1
+SPIRV_HEADERS_MD5 := 34931d32974d05449ddbbe0b86820f2e
SPIRV_HEADERS := spirv-headers-$(SPIRV_HEADERS_VERSION)
SPIRV_HEADERS_SUFFIX := tar.gz
SPIRV_HEADERS_URL := https://github.com/KhronosGroup/SPIRV-Headers/archive/sdk-$(SPIRV_HEADERS_VERSION).$(SPIRV_HEADERS_SUFFIX)
--
2.39.2
^ permalink raw reply [flat|nested] 14+ messages in thread
* [ptxdist] [PATCH 3/7] spirv-tools: version bump 1.3.243.0 -> 1.3.246.1
2023-05-16 11:40 [ptxdist] [PATCH 1/7] glslang: version bump 1.3.243.0 -> 1.3.246.1 Philipp Zabel
2023-05-16 11:40 ` [ptxdist] [PATCH 2/7] spirv-headers: " Philipp Zabel
@ 2023-05-16 11:40 ` Philipp Zabel
2023-05-17 16:14 ` [ptxdist] [APPLIED] " Michael Olbrich
2023-05-16 11:40 ` [ptxdist] [PATCH 4/7] vulkan-headers: " Philipp Zabel
` (4 subsequent siblings)
6 siblings, 1 reply; 14+ messages in thread
From: Philipp Zabel @ 2023-05-16 11:40 UTC (permalink / raw)
To: ptxdist; +Cc: Philipp Zabel
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
---
rules/spirv-tools.make | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/rules/spirv-tools.make b/rules/spirv-tools.make
index 64ce4ae00a8b..fb469949ec9b 100644
--- a/rules/spirv-tools.make
+++ b/rules/spirv-tools.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_SPIRV_TOOLS) += spirv-tools
#
# Paths and names
#
-SPIRV_TOOLS_VERSION := 1.3.243.0
-SPIRV_TOOLS_MD5 := 463d1144e7339a7338e69b74e01acabd
+SPIRV_TOOLS_VERSION := 1.3.246.1
+SPIRV_TOOLS_MD5 := 9039e41e8294d1a6388935ad8d03837d
SPIRV_TOOLS := spirv-tools-$(SPIRV_TOOLS_VERSION)
SPIRV_TOOLS_SUFFIX := tar.gz
SPIRV_TOOLS_URL := https://github.com/KhronosGroup/SPIRV-Tools/archive/sdk-$(SPIRV_TOOLS_VERSION).$(SPIRV_TOOLS_SUFFIX)
--
2.39.2
^ permalink raw reply [flat|nested] 14+ messages in thread
* [ptxdist] [PATCH 4/7] vulkan-headers: version bump 1.3.243.0 -> 1.3.246.1
2023-05-16 11:40 [ptxdist] [PATCH 1/7] glslang: version bump 1.3.243.0 -> 1.3.246.1 Philipp Zabel
2023-05-16 11:40 ` [ptxdist] [PATCH 2/7] spirv-headers: " Philipp Zabel
2023-05-16 11:40 ` [ptxdist] [PATCH 3/7] spirv-tools: " Philipp Zabel
@ 2023-05-16 11:40 ` Philipp Zabel
2023-05-17 16:14 ` [ptxdist] [APPLIED] " Michael Olbrich
2023-05-16 11:40 ` [ptxdist] [PATCH 5/7] vulkan-tools: " Philipp Zabel
` (3 subsequent siblings)
6 siblings, 1 reply; 14+ messages in thread
From: Philipp Zabel @ 2023-05-16 11:40 UTC (permalink / raw)
To: ptxdist; +Cc: Philipp Zabel
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
---
| 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--git a/rules/vulkan-headers.make b/rules/vulkan-headers.make
index 80eb4e62ef8f..7b9bb2acbc38 100644
--- a/rules/vulkan-headers.make
+++ b/rules/vulkan-headers.make
@@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_VULKAN_HEADERS) += vulkan-headers
# Paths and names
#
-VULKAN_HEADERS_VERSION := 1.3.243.0
-VULKAN_HEADERS_MD5 := 848df8eb68f8f79a2b5b39aecc0595c4
+VULKAN_HEADERS_VERSION := 1.3.246.1
+VULKAN_HEADERS_MD5 := 0b27bf3501317564abaa796adb8bfb00
VULKAN_HEADERS := vulkan-headers-$(VULKAN_HEADERS_VERSION)
VULKAN_HEADERS_SUFFIX := tar.gz
VULKAN_HEADERS_URL := https://github.com/KhronosGroup/Vulkan-Headers/archive/sdk-$(VULKAN_HEADERS_VERSION).$(VULKAN_HEADERS_SUFFIX)
--
2.39.2
^ permalink raw reply [flat|nested] 14+ messages in thread
* [ptxdist] [PATCH 5/7] vulkan-tools: version bump 1.3.243.0 -> 1.3.246.1
2023-05-16 11:40 [ptxdist] [PATCH 1/7] glslang: version bump 1.3.243.0 -> 1.3.246.1 Philipp Zabel
` (2 preceding siblings ...)
2023-05-16 11:40 ` [ptxdist] [PATCH 4/7] vulkan-headers: " Philipp Zabel
@ 2023-05-16 11:40 ` Philipp Zabel
2023-05-17 16:14 ` [ptxdist] [APPLIED] " Michael Olbrich
2023-05-16 11:41 ` [ptxdist] [PATCH 6/7] vulkan-loader: " Philipp Zabel
` (2 subsequent siblings)
6 siblings, 1 reply; 14+ messages in thread
From: Philipp Zabel @ 2023-05-16 11:40 UTC (permalink / raw)
To: ptxdist; +Cc: Philipp Zabel
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
---
rules/vulkan-tools.make | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/rules/vulkan-tools.make b/rules/vulkan-tools.make
index 57aad9d5df98..dfe608e4a389 100644
--- a/rules/vulkan-tools.make
+++ b/rules/vulkan-tools.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_VULKAN_TOOLS) += vulkan-tools
#
# Paths and names
#
-VULKAN_TOOLS_VERSION := 1.3.243.0
-VULKAN_TOOLS_MD5 := f2c7fd687dd526b8a077c78908d02518
+VULKAN_TOOLS_VERSION := 1.3.246.1
+VULKAN_TOOLS_MD5 := b6a7c6c46d9ca6c75ce6b9f3777b8e5f
VULKAN_TOOLS := vulkan-tools-$(VULKAN_TOOLS_VERSION)
VULKAN_TOOLS_SUFFIX := tar.gz
VULKAN_TOOLS_URL := https://github.com/KhronosGroup/Vulkan-Tools/archive/sdk-$(VULKAN_TOOLS_VERSION).$(VULKAN_TOOLS_SUFFIX)
@@ -39,6 +39,7 @@ VULKAN_TOOLS_CONF_OPT := \
-DBUILD_WSI_WAYLAND_SUPPORT=$(call ptx/onoff, PTXCONF_VULKAN_TOOLS_WAYLAND) \
-DBUILD_WSI_XCB_SUPPORT=$(call ptx/onoff, PTXCONF_VULKAN_TOOLS_XCB) \
-DBUILD_WSI_XLIB_SUPPORT=OFF \
+ -DENABLE_ADDRESS_SANITIZER=OFF \
-DINSTALL_ICD=OFF
ifdef PTXCONF_VULKAN_TOOLS_CUBE
--
2.39.2
^ permalink raw reply [flat|nested] 14+ messages in thread
* [ptxdist] [PATCH 6/7] vulkan-loader: version bump 1.3.243.0 -> 1.3.246.1
2023-05-16 11:40 [ptxdist] [PATCH 1/7] glslang: version bump 1.3.243.0 -> 1.3.246.1 Philipp Zabel
` (3 preceding siblings ...)
2023-05-16 11:40 ` [ptxdist] [PATCH 5/7] vulkan-tools: " Philipp Zabel
@ 2023-05-16 11:41 ` Philipp Zabel
2023-05-17 16:14 ` [ptxdist] [APPLIED] " Michael Olbrich
2023-05-16 11:41 ` [ptxdist] [PATCH 7/7] vulkan-validationlayers: " Philipp Zabel
2023-05-17 16:14 ` [ptxdist] [APPLIED] glslang: " Michael Olbrich
6 siblings, 1 reply; 14+ messages in thread
From: Philipp Zabel @ 2023-05-16 11:41 UTC (permalink / raw)
To: ptxdist; +Cc: Philipp Zabel
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
---
rules/vulkan-loader.make | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/rules/vulkan-loader.make b/rules/vulkan-loader.make
index 4a7ee72379e0..02981278de60 100644
--- a/rules/vulkan-loader.make
+++ b/rules/vulkan-loader.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_VULKAN_LOADER) += vulkan-loader
#
# Paths and names
#
-VULKAN_LOADER_VERSION := 1.3.243.0
-VULKAN_LOADER_MD5 := 87284897301309f54a14965796987764
+VULKAN_LOADER_VERSION := 1.3.246.1
+VULKAN_LOADER_MD5 := ff7ef0192c49f5d16883bb32f49c4adf
VULKAN_LOADER := vulkan-loader-$(VULKAN_LOADER_VERSION)
VULKAN_LOADER_SUFFIX := tar.gz
VULKAN_LOADER_URL := https://github.com/KhronosGroup/Vulkan-Loader/archive/sdk-$(VULKAN_LOADER_VERSION).$(VULKAN_LOADER_SUFFIX)
--
2.39.2
^ permalink raw reply [flat|nested] 14+ messages in thread
* [ptxdist] [PATCH 7/7] vulkan-validationlayers: version bump 1.3.243.0 -> 1.3.246.1
2023-05-16 11:40 [ptxdist] [PATCH 1/7] glslang: version bump 1.3.243.0 -> 1.3.246.1 Philipp Zabel
` (4 preceding siblings ...)
2023-05-16 11:41 ` [ptxdist] [PATCH 6/7] vulkan-loader: " Philipp Zabel
@ 2023-05-16 11:41 ` Philipp Zabel
2023-05-17 16:14 ` [ptxdist] [APPLIED] " Michael Olbrich
2023-05-17 16:14 ` [ptxdist] [APPLIED] glslang: " Michael Olbrich
6 siblings, 1 reply; 14+ messages in thread
From: Philipp Zabel @ 2023-05-16 11:41 UTC (permalink / raw)
To: ptxdist; +Cc: Philipp Zabel
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
---
...x-find_-support-when-cross-compiling.patch | 32 +++
...r-VK_IMAGE_TILING_DRM_FORMAT_MODIFIE.patch | 201 ++++++++++++++++++
.../vulkan-validationlayers-1.3.246.1/series | 5 +
rules/vulkan-validationlayers.make | 7 +-
4 files changed, 241 insertions(+), 4 deletions(-)
create mode 100644 patches/vulkan-validationlayers-1.3.246.1/0001-Revert-cmake-Fix-find_-support-when-cross-compiling.patch
create mode 100644 patches/vulkan-validationlayers-1.3.246.1/0002-layers-Fix-UB-for-VK_IMAGE_TILING_DRM_FORMAT_MODIFIE.patch
create mode 100644 patches/vulkan-validationlayers-1.3.246.1/series
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.246.1/0001-Revert-cmake-Fix-find_-support-when-cross-compiling.patch
new file mode 100644
index 000000000000..c3e3338b0009
--- /dev/null
+++ b/patches/vulkan-validationlayers-1.3.246.1/0001-Revert-cmake-Fix-find_-support-when-cross-compiling.patch
@@ -0,0 +1,32 @@
+From: Philipp Zabel <p.zabel@pengutronix.de>
+Date: Tue, 16 May 2023 10:04:03 +0200
+Subject: [PATCH] Revert "cmake: Fix find_* support when cross compiling"
+
+PTXdist uses CMAKE_FIND_ROOT_PATH [1] to instruct CMake where to find
+package information when cross-compiling. Stop overwriting this with
+the contents of CMAKE_PREFIX_PATH [2] in the build system.
+
+[1] https://cmake.org/cmake/help/v3.25/variable/CMAKE_FIND_ROOT_PATH.html
+[2] https://cmake.org/cmake/help/v3.25/variable/CMAKE_PREFIX_PATH.html
+
+This reverts commit b7c5ad2eed4405140fd062e5b915950011f4d7d0.
+
+Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
+---
+ scripts/CMakeLists.txt | 6 +-----
+ 1 file changed, 1 insertion(+), 5 deletions(-)
+
+diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt
+index f3536cc2a05e..a71de73111a2 100644
+--- a/scripts/CMakeLists.txt
++++ b/scripts/CMakeLists.txt
+@@ -127,8 +127,4 @@ if (MIMALLOC_INSTALL_DIR)
+ list(APPEND CMAKE_PREFIX_PATH ${MIMALLOC_INSTALL_DIR})
+ endif()
+
+-if (CMAKE_CROSSCOMPILING)
+- set(CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} PARENT_SCOPE)
+-else()
+- set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} PARENT_SCOPE)
+-endif()
++set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} PARENT_SCOPE)
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
new file mode 100644
index 000000000000..3b625e31120f
--- /dev/null
+++ b/patches/vulkan-validationlayers-1.3.246.1/0002-layers-Fix-UB-for-VK_IMAGE_TILING_DRM_FORMAT_MODIFIE.patch
@@ -0,0 +1,201 @@
+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
new file mode 100644
index 000000000000..33102174e7c3
--- /dev/null
+++ b/patches/vulkan-validationlayers-1.3.246.1/series
@@ -0,0 +1,5 @@
+# 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/rules/vulkan-validationlayers.make b/rules/vulkan-validationlayers.make
index d895cb498624..a497ca942c37 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.243.0
-VULKAN_VALIDATIONLAYERS_MD5 := 75cec7ae6450ba60db40cf1a3c84bb11
+VULKAN_VALIDATIONLAYERS_VERSION := 1.3.246.1
+VULKAN_VALIDATIONLAYERS_MD5 := beba63c5c96fadd027ee3c3bd230b19e
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)
@@ -43,8 +43,7 @@ VULKAN_VALIDATIONLAYERS_CONF_OPT := \
-DUSE_ROBIN_HOOD_HASHING=OFF \
-DVVL_CLANG_TIDY=OFF \
-DVVL_CPP_STANDARD=20 \
- -DVVL_ENABLE_ASAN=OFF \
- -DVVL_ENABLE_TSAN=OFF
+ -DVVL_ENABLE_ASAN=OFF
# ----------------------------------------------------------------------------
# Target-Install
--
2.39.2
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [ptxdist] [APPLIED] glslang: version bump 1.3.243.0 -> 1.3.246.1
2023-05-16 11:40 [ptxdist] [PATCH 1/7] glslang: version bump 1.3.243.0 -> 1.3.246.1 Philipp Zabel
` (5 preceding siblings ...)
2023-05-16 11:41 ` [ptxdist] [PATCH 7/7] vulkan-validationlayers: " Philipp Zabel
@ 2023-05-17 16:14 ` Michael Olbrich
6 siblings, 0 replies; 14+ messages in thread
From: Michael Olbrich @ 2023-05-17 16:14 UTC (permalink / raw)
To: ptxdist; +Cc: Philipp Zabel
Thanks, applied as 4c1ef1661bb3f5b0f606436eec0df898e5e146f2.
Michael
[sent from post-receive hook]
On Wed, 17 May 2023 18:14:34 +0200, Philipp Zabel <p.zabel@pengutronix.de> wrote:
> Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
> Message-Id: <20230516114101.1044027-1-p.zabel@pengutronix.de>
> Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
>
> diff --git a/rules/glslang.make b/rules/glslang.make
> index 5d3cb477ad1e..f79d60f7d458 100644
> --- a/rules/glslang.make
> +++ b/rules/glslang.make
> @@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_GLSLANG) += glslang
> #
> # Paths and names
> #
> -GLSLANG_VERSION := 1.3.243.0
> -GLSLANG_MD5 := 513695ced128d1bde2726d57ad676cf6
> +GLSLANG_VERSION := 1.3.246.1
> +GLSLANG_MD5 := b55b5074e5d3e587b564d9159a1551a1
> GLSLANG := glslang-$(GLSLANG_VERSION)
> GLSLANG_SUFFIX := tar.gz
> GLSLANG_URL := https://github.com/KhronosGroup/glslang/archive/sdk-$(GLSLANG_VERSION).$(GLSLANG_SUFFIX)
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [ptxdist] [APPLIED] spirv-headers: version bump 1.3.243.0 -> 1.3.246.1
2023-05-16 11:40 ` [ptxdist] [PATCH 2/7] spirv-headers: " Philipp Zabel
@ 2023-05-17 16:14 ` Michael Olbrich
0 siblings, 0 replies; 14+ messages in thread
From: Michael Olbrich @ 2023-05-17 16:14 UTC (permalink / raw)
To: ptxdist; +Cc: Philipp Zabel
Thanks, applied as a59ab40b7e67f9e3142c7046fac306c22c02fda7.
Michael
[sent from post-receive hook]
On Wed, 17 May 2023 18:14:35 +0200, Philipp Zabel <p.zabel@pengutronix.de> wrote:
> Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
> Message-Id: <20230516114101.1044027-2-p.zabel@pengutronix.de>
> Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
>
> diff --git a/rules/spirv-headers.make b/rules/spirv-headers.make
> index 66c8f9167adf..af0770cf22b7 100644
> --- a/rules/spirv-headers.make
> +++ b/rules/spirv-headers.make
> @@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_SPIRV_HEADERS) += spirv-headers
> #
> # Paths and names
> #
> -SPIRV_HEADERS_VERSION := 1.3.243.0
> -SPIRV_HEADERS_MD5 := f3025c0e1a7846ac948a8118fbb85a9b
> +SPIRV_HEADERS_VERSION := 1.3.246.1
> +SPIRV_HEADERS_MD5 := 34931d32974d05449ddbbe0b86820f2e
> SPIRV_HEADERS := spirv-headers-$(SPIRV_HEADERS_VERSION)
> SPIRV_HEADERS_SUFFIX := tar.gz
> SPIRV_HEADERS_URL := https://github.com/KhronosGroup/SPIRV-Headers/archive/sdk-$(SPIRV_HEADERS_VERSION).$(SPIRV_HEADERS_SUFFIX)
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [ptxdist] [APPLIED] spirv-tools: version bump 1.3.243.0 -> 1.3.246.1
2023-05-16 11:40 ` [ptxdist] [PATCH 3/7] spirv-tools: " Philipp Zabel
@ 2023-05-17 16:14 ` Michael Olbrich
0 siblings, 0 replies; 14+ messages in thread
From: Michael Olbrich @ 2023-05-17 16:14 UTC (permalink / raw)
To: ptxdist; +Cc: Philipp Zabel
Thanks, applied as a03ba20bc0a2e6e31b66c35419a994e3cdcb882b.
Michael
[sent from post-receive hook]
On Wed, 17 May 2023 18:14:35 +0200, Philipp Zabel <p.zabel@pengutronix.de> wrote:
> Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
> Message-Id: <20230516114101.1044027-3-p.zabel@pengutronix.de>
> Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
>
> diff --git a/rules/spirv-tools.make b/rules/spirv-tools.make
> index 64ce4ae00a8b..fb469949ec9b 100644
> --- a/rules/spirv-tools.make
> +++ b/rules/spirv-tools.make
> @@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_SPIRV_TOOLS) += spirv-tools
> #
> # Paths and names
> #
> -SPIRV_TOOLS_VERSION := 1.3.243.0
> -SPIRV_TOOLS_MD5 := 463d1144e7339a7338e69b74e01acabd
> +SPIRV_TOOLS_VERSION := 1.3.246.1
> +SPIRV_TOOLS_MD5 := 9039e41e8294d1a6388935ad8d03837d
> SPIRV_TOOLS := spirv-tools-$(SPIRV_TOOLS_VERSION)
> SPIRV_TOOLS_SUFFIX := tar.gz
> SPIRV_TOOLS_URL := https://github.com/KhronosGroup/SPIRV-Tools/archive/sdk-$(SPIRV_TOOLS_VERSION).$(SPIRV_TOOLS_SUFFIX)
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [ptxdist] [APPLIED] vulkan-headers: version bump 1.3.243.0 -> 1.3.246.1
2023-05-16 11:40 ` [ptxdist] [PATCH 4/7] vulkan-headers: " Philipp Zabel
@ 2023-05-17 16:14 ` Michael Olbrich
0 siblings, 0 replies; 14+ messages in thread
From: Michael Olbrich @ 2023-05-17 16:14 UTC (permalink / raw)
To: ptxdist; +Cc: Philipp Zabel
Thanks, applied as b2d287e10e9ac81fa249c2cce5b5599de981a0f7.
Michael
[sent from post-receive hook]
On Wed, 17 May 2023 18:14:36 +0200, Philipp Zabel <p.zabel@pengutronix.de> wrote:
> Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
> Message-Id: <20230516114101.1044027-4-p.zabel@pengutronix.de>
> Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
>
> diff --git a/rules/vulkan-headers.make b/rules/vulkan-headers.make
> index 80eb4e62ef8f..7b9bb2acbc38 100644
> --- a/rules/vulkan-headers.make
> +++ b/rules/vulkan-headers.make
> @@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_VULKAN_HEADERS) += vulkan-headers
> # Paths and names
> #
>
> -VULKAN_HEADERS_VERSION := 1.3.243.0
> -VULKAN_HEADERS_MD5 := 848df8eb68f8f79a2b5b39aecc0595c4
> +VULKAN_HEADERS_VERSION := 1.3.246.1
> +VULKAN_HEADERS_MD5 := 0b27bf3501317564abaa796adb8bfb00
> VULKAN_HEADERS := vulkan-headers-$(VULKAN_HEADERS_VERSION)
> VULKAN_HEADERS_SUFFIX := tar.gz
> VULKAN_HEADERS_URL := https://github.com/KhronosGroup/Vulkan-Headers/archive/sdk-$(VULKAN_HEADERS_VERSION).$(VULKAN_HEADERS_SUFFIX)
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [ptxdist] [APPLIED] vulkan-tools: version bump 1.3.243.0 -> 1.3.246.1
2023-05-16 11:40 ` [ptxdist] [PATCH 5/7] vulkan-tools: " Philipp Zabel
@ 2023-05-17 16:14 ` Michael Olbrich
0 siblings, 0 replies; 14+ messages in thread
From: Michael Olbrich @ 2023-05-17 16:14 UTC (permalink / raw)
To: ptxdist; +Cc: Philipp Zabel
Thanks, applied as 233e11fc1bac169f6cdeacdb5dc8ea476ed1c83f.
Michael
[sent from post-receive hook]
On Wed, 17 May 2023 18:14:37 +0200, Philipp Zabel <p.zabel@pengutronix.de> wrote:
> Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
> Message-Id: <20230516114101.1044027-5-p.zabel@pengutronix.de>
> Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
>
> diff --git a/rules/vulkan-tools.make b/rules/vulkan-tools.make
> index 57aad9d5df98..dfe608e4a389 100644
> --- a/rules/vulkan-tools.make
> +++ b/rules/vulkan-tools.make
> @@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_VULKAN_TOOLS) += vulkan-tools
> #
> # Paths and names
> #
> -VULKAN_TOOLS_VERSION := 1.3.243.0
> -VULKAN_TOOLS_MD5 := f2c7fd687dd526b8a077c78908d02518
> +VULKAN_TOOLS_VERSION := 1.3.246.1
> +VULKAN_TOOLS_MD5 := b6a7c6c46d9ca6c75ce6b9f3777b8e5f
> VULKAN_TOOLS := vulkan-tools-$(VULKAN_TOOLS_VERSION)
> VULKAN_TOOLS_SUFFIX := tar.gz
> VULKAN_TOOLS_URL := https://github.com/KhronosGroup/Vulkan-Tools/archive/sdk-$(VULKAN_TOOLS_VERSION).$(VULKAN_TOOLS_SUFFIX)
> @@ -39,6 +39,7 @@ VULKAN_TOOLS_CONF_OPT := \
> -DBUILD_WSI_WAYLAND_SUPPORT=$(call ptx/onoff, PTXCONF_VULKAN_TOOLS_WAYLAND) \
> -DBUILD_WSI_XCB_SUPPORT=$(call ptx/onoff, PTXCONF_VULKAN_TOOLS_XCB) \
> -DBUILD_WSI_XLIB_SUPPORT=OFF \
> + -DENABLE_ADDRESS_SANITIZER=OFF \
> -DINSTALL_ICD=OFF
>
> ifdef PTXCONF_VULKAN_TOOLS_CUBE
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [ptxdist] [APPLIED] vulkan-loader: version bump 1.3.243.0 -> 1.3.246.1
2023-05-16 11:41 ` [ptxdist] [PATCH 6/7] vulkan-loader: " Philipp Zabel
@ 2023-05-17 16:14 ` Michael Olbrich
0 siblings, 0 replies; 14+ messages in thread
From: Michael Olbrich @ 2023-05-17 16:14 UTC (permalink / raw)
To: ptxdist; +Cc: Philipp Zabel
Thanks, applied as e24c8838fe96c6186ab01fa4c84193beeebbb22c.
Michael
[sent from post-receive hook]
On Wed, 17 May 2023 18:14:37 +0200, Philipp Zabel <p.zabel@pengutronix.de> wrote:
> Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
> Message-Id: <20230516114101.1044027-6-p.zabel@pengutronix.de>
> Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
>
> diff --git a/rules/vulkan-loader.make b/rules/vulkan-loader.make
> index 4a7ee72379e0..02981278de60 100644
> --- a/rules/vulkan-loader.make
> +++ b/rules/vulkan-loader.make
> @@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_VULKAN_LOADER) += vulkan-loader
> #
> # Paths and names
> #
> -VULKAN_LOADER_VERSION := 1.3.243.0
> -VULKAN_LOADER_MD5 := 87284897301309f54a14965796987764
> +VULKAN_LOADER_VERSION := 1.3.246.1
> +VULKAN_LOADER_MD5 := ff7ef0192c49f5d16883bb32f49c4adf
> VULKAN_LOADER := vulkan-loader-$(VULKAN_LOADER_VERSION)
> VULKAN_LOADER_SUFFIX := tar.gz
> VULKAN_LOADER_URL := https://github.com/KhronosGroup/Vulkan-Loader/archive/sdk-$(VULKAN_LOADER_VERSION).$(VULKAN_LOADER_SUFFIX)
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [ptxdist] [APPLIED] vulkan-validationlayers: version bump 1.3.243.0 -> 1.3.246.1
2023-05-16 11:41 ` [ptxdist] [PATCH 7/7] vulkan-validationlayers: " Philipp Zabel
@ 2023-05-17 16:14 ` Michael Olbrich
0 siblings, 0 replies; 14+ messages in thread
From: Michael Olbrich @ 2023-05-17 16:14 UTC (permalink / raw)
To: ptxdist; +Cc: Philipp Zabel
Thanks, applied as ecf0bb672955460caf9326492e246246dd9b1878.
Michael
[sent from post-receive hook]
On Wed, 17 May 2023 18:14:38 +0200, Philipp Zabel <p.zabel@pengutronix.de> wrote:
> Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
> Message-Id: <20230516114101.1044027-7-p.zabel@pengutronix.de>
> Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
>
> 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.246.1/0001-Revert-cmake-Fix-find_-support-when-cross-compiling.patch
> new file mode 100644
> index 000000000000..c3e3338b0009
> --- /dev/null
> +++ b/patches/vulkan-validationlayers-1.3.246.1/0001-Revert-cmake-Fix-find_-support-when-cross-compiling.patch
> @@ -0,0 +1,32 @@
> +From: Philipp Zabel <p.zabel@pengutronix.de>
> +Date: Tue, 16 May 2023 10:04:03 +0200
> +Subject: [PATCH] Revert "cmake: Fix find_* support when cross compiling"
> +
> +PTXdist uses CMAKE_FIND_ROOT_PATH [1] to instruct CMake where to find
> +package information when cross-compiling. Stop overwriting this with
> +the contents of CMAKE_PREFIX_PATH [2] in the build system.
> +
> +[1] https://cmake.org/cmake/help/v3.25/variable/CMAKE_FIND_ROOT_PATH.html
> +[2] https://cmake.org/cmake/help/v3.25/variable/CMAKE_PREFIX_PATH.html
> +
> +This reverts commit b7c5ad2eed4405140fd062e5b915950011f4d7d0.
> +
> +Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
> +---
> + scripts/CMakeLists.txt | 6 +-----
> + 1 file changed, 1 insertion(+), 5 deletions(-)
> +
> +diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt
> +index f3536cc2a05e..a71de73111a2 100644
> +--- a/scripts/CMakeLists.txt
> ++++ b/scripts/CMakeLists.txt
> +@@ -127,8 +127,4 @@ if (MIMALLOC_INSTALL_DIR)
> + list(APPEND CMAKE_PREFIX_PATH ${MIMALLOC_INSTALL_DIR})
> + endif()
> +
> +-if (CMAKE_CROSSCOMPILING)
> +- set(CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} PARENT_SCOPE)
> +-else()
> +- set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} PARENT_SCOPE)
> +-endif()
> ++set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} PARENT_SCOPE)
> 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
> new file mode 100644
> index 000000000000..3b625e31120f
> --- /dev/null
> +++ b/patches/vulkan-validationlayers-1.3.246.1/0002-layers-Fix-UB-for-VK_IMAGE_TILING_DRM_FORMAT_MODIFIE.patch
> @@ -0,0 +1,201 @@
> +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
> new file mode 100644
> index 000000000000..33102174e7c3
> --- /dev/null
> +++ b/patches/vulkan-validationlayers-1.3.246.1/series
> @@ -0,0 +1,5 @@
> +# 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/rules/vulkan-validationlayers.make b/rules/vulkan-validationlayers.make
> index d895cb498624..a497ca942c37 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.243.0
> -VULKAN_VALIDATIONLAYERS_MD5 := 75cec7ae6450ba60db40cf1a3c84bb11
> +VULKAN_VALIDATIONLAYERS_VERSION := 1.3.246.1
> +VULKAN_VALIDATIONLAYERS_MD5 := beba63c5c96fadd027ee3c3bd230b19e
> 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)
> @@ -43,8 +43,7 @@ VULKAN_VALIDATIONLAYERS_CONF_OPT := \
> -DUSE_ROBIN_HOOD_HASHING=OFF \
> -DVVL_CLANG_TIDY=OFF \
> -DVVL_CPP_STANDARD=20 \
> - -DVVL_ENABLE_ASAN=OFF \
> - -DVVL_ENABLE_TSAN=OFF
> + -DVVL_ENABLE_ASAN=OFF
>
> # ----------------------------------------------------------------------------
> # Target-Install
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2023-05-17 16:15 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-05-16 11:40 [ptxdist] [PATCH 1/7] glslang: version bump 1.3.243.0 -> 1.3.246.1 Philipp Zabel
2023-05-16 11:40 ` [ptxdist] [PATCH 2/7] spirv-headers: " Philipp Zabel
2023-05-17 16:14 ` [ptxdist] [APPLIED] " Michael Olbrich
2023-05-16 11:40 ` [ptxdist] [PATCH 3/7] spirv-tools: " Philipp Zabel
2023-05-17 16:14 ` [ptxdist] [APPLIED] " Michael Olbrich
2023-05-16 11:40 ` [ptxdist] [PATCH 4/7] vulkan-headers: " Philipp Zabel
2023-05-17 16:14 ` [ptxdist] [APPLIED] " Michael Olbrich
2023-05-16 11:40 ` [ptxdist] [PATCH 5/7] vulkan-tools: " Philipp Zabel
2023-05-17 16:14 ` [ptxdist] [APPLIED] " Michael Olbrich
2023-05-16 11:41 ` [ptxdist] [PATCH 6/7] vulkan-loader: " Philipp Zabel
2023-05-17 16:14 ` [ptxdist] [APPLIED] " Michael Olbrich
2023-05-16 11:41 ` [ptxdist] [PATCH 7/7] vulkan-validationlayers: " Philipp Zabel
2023-05-17 16:14 ` [ptxdist] [APPLIED] " Michael Olbrich
2023-05-17 16:14 ` [ptxdist] [APPLIED] glslang: " Michael Olbrich
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox