[PATCH v2 1/1] winevulkan: Update to VK spec version 1.3.214.
Georg Lehmann
wine at gitlab.winehq.org
Tue May 17 15:34:27 CDT 2022
From: Georg Lehmann <dadschoorse at gmail.com>
Signed-off-by: Georg Lehmann <dadschoorse at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/winevulkan/loader_thunks.c | 11 +++
dlls/winevulkan/loader_thunks.h | 9 ++
dlls/winevulkan/make_vulkan | 6 +-
dlls/winevulkan/vulkan_thunks.c | 92 +++++++++++++++++++++
dlls/winevulkan/vulkan_thunks.h | 13 +++
dlls/winevulkan/winevulkan.json | 2 +-
include/wine/vulkan.h | 142 ++++++++++++++++++++++++++++----
7 files changed, 252 insertions(+), 23 deletions(-)
diff --git a/dlls/winevulkan/loader_thunks.c b/dlls/winevulkan/loader_thunks.c
index 055759518c0..9ba1d09703e 100644
--- a/dlls/winevulkan/loader_thunks.c
+++ b/dlls/winevulkan/loader_thunks.c
@@ -3246,6 +3246,16 @@ void WINAPI vkGetImageSubresourceLayout(VkDevice device, VkImage image, const Vk
vk_unix_call(unix_vkGetImageSubresourceLayout, ¶ms);
}
+void WINAPI vkGetImageSubresourceLayout2EXT(VkDevice device, VkImage image, const VkImageSubresource2EXT *pSubresource, VkSubresourceLayout2EXT *pLayout)
+{
+ struct vkGetImageSubresourceLayout2EXT_params params;
+ params.device = device;
+ params.image = image;
+ params.pSubresource = pSubresource;
+ params.pLayout = pLayout;
+ vk_unix_call(unix_vkGetImageSubresourceLayout2EXT, ¶ms);
+}
+
VkResult WINAPI vkGetImageViewAddressNVX(VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX *pProperties)
{
struct vkGetImageViewAddressNVX_params params;
@@ -4602,6 +4612,7 @@ static const struct vulkan_func vk_device_dispatch_table[] =
{"vkGetImageSparseMemoryRequirements2", vkGetImageSparseMemoryRequirements2},
{"vkGetImageSparseMemoryRequirements2KHR", vkGetImageSparseMemoryRequirements2KHR},
{"vkGetImageSubresourceLayout", vkGetImageSubresourceLayout},
+ {"vkGetImageSubresourceLayout2EXT", vkGetImageSubresourceLayout2EXT},
{"vkGetImageViewAddressNVX", vkGetImageViewAddressNVX},
{"vkGetImageViewHandleNVX", vkGetImageViewHandleNVX},
{"vkGetMemoryHostPointerPropertiesEXT", vkGetMemoryHostPointerPropertiesEXT},
diff --git a/dlls/winevulkan/loader_thunks.h b/dlls/winevulkan/loader_thunks.h
index e0641b0be3d..56bfb13bf90 100644
--- a/dlls/winevulkan/loader_thunks.h
+++ b/dlls/winevulkan/loader_thunks.h
@@ -355,6 +355,7 @@ enum unix_call
unix_vkGetImageSparseMemoryRequirements2,
unix_vkGetImageSparseMemoryRequirements2KHR,
unix_vkGetImageSubresourceLayout,
+ unix_vkGetImageSubresourceLayout2EXT,
unix_vkGetImageViewAddressNVX,
unix_vkGetImageViewHandleNVX,
unix_vkGetMemoryHostPointerPropertiesEXT,
@@ -3050,6 +3051,14 @@ struct vkGetImageSubresourceLayout_params
VkSubresourceLayout *pLayout;
};
+struct vkGetImageSubresourceLayout2EXT_params
+{
+ VkDevice device;
+ VkImage image;
+ const VkImageSubresource2EXT *pSubresource;
+ VkSubresourceLayout2EXT *pLayout;
+};
+
struct vkGetImageViewAddressNVX_params
{
VkDevice device;
diff --git a/dlls/winevulkan/make_vulkan b/dlls/winevulkan/make_vulkan
index 2d49eceb93b..da4c7033c40 100755
--- a/dlls/winevulkan/make_vulkan
+++ b/dlls/winevulkan/make_vulkan
@@ -64,7 +64,7 @@ from enum import Enum
LOGGER = logging.Logger("vulkan")
LOGGER.addHandler(logging.StreamHandler())
-VK_XML_VERSION = "1.3.213"
+VK_XML_VERSION = "1.3.214"
WINE_VK_VERSION = (1, 3)
# Filenames to create.
@@ -116,10 +116,6 @@ UNSUPPORTED_EXTENSIONS = [
# Extensions which require callback handling
"VK_EXT_device_memory_report",
- # Needs https://github.com/KhronosGroup/Vulkan-Docs/pull/1848
- # or a rework of how we detect returned structs.
- "VK_EXT_image_compression_control",
-
# Deprecated extensions
"VK_NV_external_memory_capabilities",
"VK_NV_external_memory_win32",
diff --git a/dlls/winevulkan/vulkan_thunks.c b/dlls/winevulkan/vulkan_thunks.c
index 20074e94887..fac36046250 100644
--- a/dlls/winevulkan/vulkan_thunks.c
+++ b/dlls/winevulkan/vulkan_thunks.c
@@ -1930,6 +1930,27 @@ static inline void convert_VkSubresourceLayout_host_to_win(const VkSubresourceLa
}
#endif /* USE_STRUCT_CONVERSION */
+#if defined(USE_STRUCT_CONVERSION)
+static inline void convert_VkSubresourceLayout2EXT_win_to_host(const VkSubresourceLayout2EXT *in, VkSubresourceLayout2EXT_host *out)
+{
+ if (!in) return;
+
+ out->pNext = in->pNext;
+ out->sType = in->sType;
+}
+#endif /* USE_STRUCT_CONVERSION */
+
+#if defined(USE_STRUCT_CONVERSION)
+static inline void convert_VkSubresourceLayout2EXT_host_to_win(const VkSubresourceLayout2EXT_host *in, VkSubresourceLayout2EXT *out)
+{
+ if (!in) return;
+
+ out->sType = in->sType;
+ out->pNext = in->pNext;
+ convert_VkSubresourceLayout_host_to_win(&in->subresourceLayout, &out->subresourceLayout);
+}
+#endif /* USE_STRUCT_CONVERSION */
+
#if defined(USE_STRUCT_CONVERSION)
static inline void convert_VkImageViewAddressPropertiesNVX_win_to_host(const VkImageViewAddressPropertiesNVX *in, VkImageViewAddressPropertiesNVX_host *out)
{
@@ -4853,6 +4874,38 @@ VkResult convert_VkDeviceCreateInfo_struct_chain(const void *pNext, VkDeviceCrea
break;
}
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT:
+ {
+ const VkPhysicalDeviceImageCompressionControlFeaturesEXT *in = (const VkPhysicalDeviceImageCompressionControlFeaturesEXT *)in_header;
+ VkPhysicalDeviceImageCompressionControlFeaturesEXT *out;
+
+ if (!(out = malloc(sizeof(*out)))) goto out_of_memory;
+
+ out->sType = in->sType;
+ out->pNext = NULL;
+ out->imageCompressionControl = in->imageCompressionControl;
+
+ out_header->pNext = (VkBaseOutStructure *)out;
+ out_header = out_header->pNext;
+ break;
+ }
+
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT:
+ {
+ const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT *in = (const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT *)in_header;
+ VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT *out;
+
+ if (!(out = malloc(sizeof(*out)))) goto out_of_memory;
+
+ out->sType = in->sType;
+ out->pNext = NULL;
+ out->imageCompressionControlSwapchain = in->imageCompressionControlSwapchain;
+
+ out_header->pNext = (VkBaseOutStructure *)out;
+ out_header = out_header->pNext;
+ break;
+ }
+
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT:
{
const VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT *in = (const VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT *)in_header;
@@ -4885,6 +4938,22 @@ VkResult convert_VkDeviceCreateInfo_struct_chain(const void *pNext, VkDeviceCrea
break;
}
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_EXT:
+ {
+ const VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesEXT *in = (const VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesEXT *)in_header;
+ VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesEXT *out;
+
+ if (!(out = malloc(sizeof(*out)))) goto out_of_memory;
+
+ out->sType = in->sType;
+ out->pNext = NULL;
+ out->shaderEarlyAndLateFragmentTests = in->shaderEarlyAndLateFragmentTests;
+
+ out_header->pNext = (VkBaseOutStructure *)out;
+ out_header = out_header->pNext;
+ break;
+ }
+
default:
FIXME("Application requested a linked structure of type %u.\n", in_header->sType);
}
@@ -8624,6 +8693,25 @@ static NTSTATUS wine_vkGetImageSubresourceLayout(void *args)
#endif
}
+static NTSTATUS wine_vkGetImageSubresourceLayout2EXT(void *args)
+{
+ struct vkGetImageSubresourceLayout2EXT_params *params = args;
+#if defined(USE_STRUCT_CONVERSION)
+ VkSubresourceLayout2EXT_host pLayout_host;
+ TRACE("%p, 0x%s, %p, %p\n", params->device, wine_dbgstr_longlong(params->image), params->pSubresource, params->pLayout);
+
+ convert_VkSubresourceLayout2EXT_win_to_host(params->pLayout, &pLayout_host);
+ params->device->funcs.p_vkGetImageSubresourceLayout2EXT(params->device->device, params->image, params->pSubresource, &pLayout_host);
+
+ convert_VkSubresourceLayout2EXT_host_to_win(&pLayout_host, params->pLayout);
+ return STATUS_SUCCESS;
+#else
+ TRACE("%p, 0x%s, %p, %p\n", params->device, wine_dbgstr_longlong(params->image), params->pSubresource, params->pLayout);
+ params->device->funcs.p_vkGetImageSubresourceLayout2EXT(params->device->device, params->image, params->pSubresource, params->pLayout);
+ return STATUS_SUCCESS;
+#endif
+}
+
static NTSTATUS wine_vkGetImageViewAddressNVX(void *args)
{
struct vkGetImageViewAddressNVX_params *params = args;
@@ -9755,6 +9843,7 @@ static const char * const vk_device_extensions[] =
"VK_AMD_shader_ballot",
"VK_AMD_shader_core_properties",
"VK_AMD_shader_core_properties2",
+ "VK_AMD_shader_early_and_late_fragment_tests",
"VK_AMD_shader_explicit_vertex_parameter",
"VK_AMD_shader_fragment_mask",
"VK_AMD_shader_image_load_store_lod",
@@ -9790,6 +9879,8 @@ static const char * const vk_device_extensions[] =
"VK_EXT_graphics_pipeline_library",
"VK_EXT_host_query_reset",
"VK_EXT_image_2d_view_of_3d",
+ "VK_EXT_image_compression_control",
+ "VK_EXT_image_compression_control_swapchain",
"VK_EXT_image_robustness",
"VK_EXT_image_view_min_lod",
"VK_EXT_index_type_uint8",
@@ -10374,6 +10465,7 @@ const unixlib_entry_t __wine_unix_call_funcs[] =
wine_vkGetImageSparseMemoryRequirements2,
wine_vkGetImageSparseMemoryRequirements2KHR,
wine_vkGetImageSubresourceLayout,
+ wine_vkGetImageSubresourceLayout2EXT,
wine_vkGetImageViewAddressNVX,
wine_vkGetImageViewHandleNVX,
wine_vkGetMemoryHostPointerPropertiesEXT,
diff --git a/dlls/winevulkan/vulkan_thunks.h b/dlls/winevulkan/vulkan_thunks.h
index f3886d8582e..a26f450e26a 100644
--- a/dlls/winevulkan/vulkan_thunks.h
+++ b/dlls/winevulkan/vulkan_thunks.h
@@ -1303,6 +1303,17 @@ typedef struct VkSubresourceLayout_host
typedef VkSubresourceLayout VkSubresourceLayout_host;
#endif
+#if defined(USE_STRUCT_CONVERSION)
+typedef struct VkSubresourceLayout2EXT_host
+{
+ VkStructureType sType;
+ void *pNext;
+ VkSubresourceLayout_host subresourceLayout;
+} VkSubresourceLayout2EXT_host;
+#else
+typedef VkSubresourceLayout2EXT VkSubresourceLayout2EXT_host;
+#endif
+
#if defined(USE_STRUCT_CONVERSION)
typedef struct VkImageViewAddressPropertiesNVX_host
{
@@ -2140,6 +2151,7 @@ struct vulkan_device_funcs
void (*p_vkGetImageSparseMemoryRequirements2)(VkDevice, const VkImageSparseMemoryRequirementsInfo2_host *, uint32_t *, VkSparseImageMemoryRequirements2 *);
void (*p_vkGetImageSparseMemoryRequirements2KHR)(VkDevice, const VkImageSparseMemoryRequirementsInfo2_host *, uint32_t *, VkSparseImageMemoryRequirements2 *);
void (*p_vkGetImageSubresourceLayout)(VkDevice, VkImage, const VkImageSubresource *, VkSubresourceLayout_host *);
+ void (*p_vkGetImageSubresourceLayout2EXT)(VkDevice, VkImage, const VkImageSubresource2EXT *, VkSubresourceLayout2EXT_host *);
VkResult (*p_vkGetImageViewAddressNVX)(VkDevice, VkImageView, VkImageViewAddressPropertiesNVX_host *);
uint32_t (*p_vkGetImageViewHandleNVX)(VkDevice, const VkImageViewHandleInfoNVX_host *);
VkResult (*p_vkGetMemoryHostPointerPropertiesEXT)(VkDevice, VkExternalMemoryHandleTypeFlagBits, const void *, VkMemoryHostPointerPropertiesEXT *);
@@ -2592,6 +2604,7 @@ struct vulkan_instance_funcs
USE_VK_FUNC(vkGetImageSparseMemoryRequirements2) \
USE_VK_FUNC(vkGetImageSparseMemoryRequirements2KHR) \
USE_VK_FUNC(vkGetImageSubresourceLayout) \
+ USE_VK_FUNC(vkGetImageSubresourceLayout2EXT) \
USE_VK_FUNC(vkGetImageViewAddressNVX) \
USE_VK_FUNC(vkGetImageViewHandleNVX) \
USE_VK_FUNC(vkGetMemoryHostPointerPropertiesEXT) \
diff --git a/dlls/winevulkan/winevulkan.json b/dlls/winevulkan/winevulkan.json
index 987249a6f08..dd9784d9e77 100644
--- a/dlls/winevulkan/winevulkan.json
+++ b/dlls/winevulkan/winevulkan.json
@@ -2,6 +2,6 @@
"file_format_version": "1.0.0",
"ICD": {
"library_path": ".\\winevulkan.dll",
- "api_version": "1.3.213"
+ "api_version": "1.3.214"
}
}
diff --git a/include/wine/vulkan.h b/include/wine/vulkan.h
index a1b9040715d..7f5c6b2091a 100644
--- a/include/wine/vulkan.h
+++ b/include/wine/vulkan.h
@@ -427,7 +427,7 @@
#define VK_EXT_PRIVATE_DATA_EXTENSION_NAME "VK_EXT_private_data"
#define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION 3
#define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME "VK_EXT_pipeline_creation_cache_control"
-#define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION 1
+#define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION 2
#define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME "VK_NV_device_diagnostics_config"
#define VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION 2
#define VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME "VK_QCOM_render_pass_store_ops"
@@ -435,6 +435,8 @@
#define VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME "VK_KHR_synchronization2"
#define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION 1
#define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME "VK_EXT_graphics_pipeline_library"
+#define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION 1
+#define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME "VK_AMD_shader_early_and_late_fragment_tests"
#define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION 1
#define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME "VK_KHR_shader_subgroup_uniform_control_flow"
#define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION 1
@@ -455,6 +457,8 @@
#define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME "VK_KHR_workgroup_memory_explicit_layout"
#define VK_KHR_COPY_COMMANDS_2_SPEC_VERSION 1
#define VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME "VK_KHR_copy_commands2"
+#define VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION 1
+#define VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME "VK_EXT_image_compression_control"
#define VK_EXT_4444_FORMATS_SPEC_VERSION 1
#define VK_EXT_4444_FORMATS_EXTENSION_NAME "VK_EXT_4444_formats"
#define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION 1
@@ -509,6 +513,8 @@
#define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME "VK_QCOM_fragment_density_map_offset"
#define VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION 1
#define VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME "VK_NV_linear_color_attachment"
+#define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION 1
+#define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME "VK_EXT_image_compression_control_swapchain"
#define VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION 1
#define VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME "VK_EXT_subpass_merge_feedback"
#define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 13
@@ -533,32 +539,32 @@
#define VK_API_VERSION_1_1 VK_MAKE_API_VERSION(0, 1, 1, 0)
#define VK_API_VERSION_1_2 VK_MAKE_API_VERSION(0, 1, 2, 0)
#define VK_API_VERSION_1_3 VK_MAKE_API_VERSION(0, 1, 3, 0)
-#define VK_HEADER_VERSION 213
+#define VK_HEADER_VERSION 214
#define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION)
#define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
#define VK_USE_64_BIT_PTR_DEFINES 0
#ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE
-#if (VK_USE_64_BIT_PTR_DEFINES==1)
-#if (defined(__cplusplus) && (__cplusplus >= 201103L)) || (defined(_MSVC_LANG) && (_MSVC_LANG >= 201103L))
-#define VK_NULL_HANDLE nullptr
-#else
-#define VK_NULL_HANDLE ((void*)0)
-#endif
-#else
-#define VK_NULL_HANDLE 0ULL
-#endif
+ #if (VK_USE_64_BIT_PTR_DEFINES==1)
+ #if (defined(__cplusplus) && (__cplusplus >= 201103L)) || (defined(_MSVC_LANG) && (_MSVC_LANG >= 201103L))
+ #define VK_NULL_HANDLE nullptr
+ #else
+ #define VK_NULL_HANDLE ((void*)0)
+ #endif
+ #else
+ #define VK_NULL_HANDLE 0ULL
+ #endif
#endif
#ifndef VK_NULL_HANDLE
-#define VK_NULL_HANDLE 0
+ #define VK_NULL_HANDLE 0
#endif
#ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE
-#if (VK_USE_64_BIT_PTR_DEFINES==1)
-#define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
-#else
-#define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
-#endif
+ #if (VK_USE_64_BIT_PTR_DEFINES==1)
+ #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
+ #else
+ #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
+ #endif
#endif
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureKHR)
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNV)
@@ -1487,6 +1493,7 @@ typedef enum VkDeviceDiagnosticsConfigFlagBitsNV
VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 0x00000001,
VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 0x00000002,
VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 0x00000004,
+ VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV = 0x00000008,
VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_NV_MAX_ENUM = 0x7fffffff,
} VkDeviceDiagnosticsConfigFlagBitsNV;
@@ -2245,6 +2252,45 @@ typedef enum VkImageAspectFlagBits
VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7fffffff,
} VkImageAspectFlagBits;
+typedef enum VkImageCompressionFixedRateFlagBitsEXT
+{
+ VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT = 0,
+ VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT = 0x00000001,
+ VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT = 0x00000002,
+ VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT = 0x00000004,
+ VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT = 0x00000008,
+ VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT = 0x00000010,
+ VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT = 0x00000020,
+ VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT = 0x00000040,
+ VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT = 0x00000080,
+ VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT = 0x00000100,
+ VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT = 0x00000200,
+ VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT = 0x00000400,
+ VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT = 0x00000800,
+ VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT = 0x00001000,
+ VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT = 0x00002000,
+ VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT = 0x00004000,
+ VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT = 0x00008000,
+ VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT = 0x00010000,
+ VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT = 0x00020000,
+ VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT = 0x00040000,
+ VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT = 0x00080000,
+ VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT = 0x00100000,
+ VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT = 0x00200000,
+ VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT = 0x00400000,
+ VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT = 0x00800000,
+ VK_IMAGE_COMPRESSION_FIXED_RATE_FLAG_BITS_EXT_MAX_ENUM = 0x7fffffff,
+} VkImageCompressionFixedRateFlagBitsEXT;
+
+typedef enum VkImageCompressionFlagBitsEXT
+{
+ VK_IMAGE_COMPRESSION_DEFAULT_EXT = 0,
+ VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = 0x00000001,
+ VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT = 0x00000002,
+ VK_IMAGE_COMPRESSION_DISABLED_EXT = 0x00000004,
+ VK_IMAGE_COMPRESSION_FLAG_BITS_EXT_MAX_ENUM = 0x7fffffff,
+} VkImageCompressionFlagBitsEXT;
+
typedef enum VkImageCreateFlagBits
{
VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
@@ -3032,6 +3078,7 @@ typedef VkResolveModeFlagBits VkResolveModeFlagBitsKHR;
typedef enum VkResult
{
+ VK_ERROR_COMPRESSION_EXHAUSTED_EXT = -1000338000,
VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS = -1000257000,
VK_ERROR_NOT_PERMITTED_KHR = -1000174001,
VK_ERROR_FRAGMENTATION = -1000161000,
@@ -3726,6 +3773,7 @@ typedef enum VkStructureType
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = 1000320000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = 1000320001,
VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = 1000320002,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_EXT = 1000321000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = 1000323000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES = 1000325000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000,
@@ -3751,6 +3799,11 @@ typedef enum VkStructureType
VK_STRUCTURE_TYPE_IMAGE_BLIT_2 = 1000337008,
VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2 = 1000337009,
VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2 = 1000337010,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = 1000338000,
+ VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = 1000338001,
+ VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = 1000338002,
+ VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = 1000338003,
+ VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT = 1000338004,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = 1000342000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = 1000344000,
@@ -3798,6 +3851,7 @@ typedef enum VkStructureType
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = 1000425001,
VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = 1000425002,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = 1000430000,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = 1000437000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = 1000458000,
VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT = 1000458001,
VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_INFO_EXT = 1000458002,
@@ -5434,6 +5488,23 @@ typedef struct VkGraphicsPipelineLibraryCreateInfoEXT
VkGraphicsPipelineLibraryFlagsEXT flags;
} VkGraphicsPipelineLibraryCreateInfoEXT;
+typedef struct VkImageCompressionControlEXT
+{
+ VkStructureType sType;
+ const void *pNext;
+ VkImageCompressionFlagsEXT flags;
+ uint32_t compressionControlPlaneCount;
+ VkImageCompressionFixedRateFlagsEXT *pFixedRateFlags;
+} VkImageCompressionControlEXT;
+
+typedef struct VkImageCompressionPropertiesEXT
+{
+ VkStructureType sType;
+ void *pNext;
+ VkImageCompressionFlagsEXT imageCompressionFlags;
+ VkImageCompressionFixedRateFlagsEXT imageCompressionFixedRateFlags;
+} VkImageCompressionPropertiesEXT;
+
typedef struct VkImageCreateInfo
{
VkStructureType sType;
@@ -5518,6 +5589,13 @@ typedef struct VkImageSubresource
uint32_t arrayLayer;
} VkImageSubresource;
+typedef struct VkImageSubresource2EXT
+{
+ VkStructureType sType;
+ void *pNext;
+ VkImageSubresource imageSubresource;
+} VkImageSubresource2EXT;
+
typedef struct VkImageSubresourceLayers
{
VkImageAspectFlags aspectMask;
@@ -6612,6 +6690,20 @@ typedef struct VkPhysicalDeviceImage2DViewOf3DFeaturesEXT
VkBool32 sampler2DViewOf3D;
} VkPhysicalDeviceImage2DViewOf3DFeaturesEXT;
+typedef struct VkPhysicalDeviceImageCompressionControlFeaturesEXT
+{
+ VkStructureType sType;
+ void *pNext;
+ VkBool32 imageCompressionControl;
+} VkPhysicalDeviceImageCompressionControlFeaturesEXT;
+
+typedef struct VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT
+{
+ VkStructureType sType;
+ void *pNext;
+ VkBool32 imageCompressionControlSwapchain;
+} VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT;
+
typedef struct VkPhysicalDeviceImageFormatInfo2
{
VkStructureType sType;
@@ -7337,6 +7429,13 @@ typedef struct VkPhysicalDeviceShaderDrawParametersFeatures
} VkPhysicalDeviceShaderDrawParametersFeatures;
typedef VkPhysicalDeviceShaderDrawParametersFeatures VkPhysicalDeviceShaderDrawParameterFeatures;
+typedef struct VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesEXT
+{
+ VkStructureType sType;
+ void *pNext;
+ VkBool32 shaderEarlyAndLateFragmentTests;
+} VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesEXT;
+
typedef struct VkPhysicalDeviceShaderFloat16Int8Features
{
VkStructureType sType;
@@ -8994,6 +9093,13 @@ typedef struct VkSubresourceLayout
VkDeviceSize WINE_VK_ALIGN(8) depthPitch;
} VkSubresourceLayout;
+typedef struct VkSubresourceLayout2EXT
+{
+ VkStructureType sType;
+ void *pNext;
+ VkSubresourceLayout WINE_VK_ALIGN(8) subresourceLayout;
+} VkSubresourceLayout2EXT;
+
typedef struct VkSurfaceCapabilitiesKHR
{
uint32_t minImageCount;
@@ -10455,6 +10561,7 @@ typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice, VkIma
typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2)(VkDevice, const VkImageSparseMemoryRequirementsInfo2 *, uint32_t *, VkSparseImageMemoryRequirements2 *);
typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2KHR)(VkDevice, const VkImageSparseMemoryRequirementsInfo2 *, uint32_t *, VkSparseImageMemoryRequirements2 *);
typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice, VkImage, const VkImageSubresource *, VkSubresourceLayout *);
+typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2EXT)(VkDevice, VkImage, const VkImageSubresource2EXT *, VkSubresourceLayout2EXT *);
typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewAddressNVX)(VkDevice, VkImageView, VkImageViewAddressPropertiesNVX *);
typedef uint32_t (VKAPI_PTR *PFN_vkGetImageViewHandleNVX)(VkDevice, const VkImageViewHandleInfoNVX *);
typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance, const char *);
@@ -10914,6 +11021,7 @@ void VKAPI_CALL vkGetImageSparseMemoryRequirements(VkDevice device, VkImage imag
void VKAPI_CALL vkGetImageSparseMemoryRequirements2(VkDevice device, const VkImageSparseMemoryRequirementsInfo2 *pInfo, uint32_t *pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2 *pSparseMemoryRequirements);
void VKAPI_CALL vkGetImageSparseMemoryRequirements2KHR(VkDevice device, const VkImageSparseMemoryRequirementsInfo2 *pInfo, uint32_t *pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2 *pSparseMemoryRequirements);
void VKAPI_CALL vkGetImageSubresourceLayout(VkDevice device, VkImage image, const VkImageSubresource *pSubresource, VkSubresourceLayout *pLayout);
+void VKAPI_CALL vkGetImageSubresourceLayout2EXT(VkDevice device, VkImage image, const VkImageSubresource2EXT *pSubresource, VkSubresourceLayout2EXT *pLayout);
VkResult VKAPI_CALL vkGetImageViewAddressNVX(VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX *pProperties);
uint32_t VKAPI_CALL vkGetImageViewHandleNVX(VkDevice device, const VkImageViewHandleInfoNVX *pInfo);
PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(VkInstance instance, const char *pName);
--
GitLab
https://gitlab.winehq.org/wine/wine/-/merge_requests/84
More information about the wine-devel
mailing list