winevulkan: Update to VK spec version 1.2.201.

Signed-off-by: Georg Lehmann <dadschoorse@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Georg Lehmann 2021-12-01 13:04:55 +01:00 committed by Alexandre Julliard
parent 550511855b
commit 2b4d1bd0ae
4 changed files with 115 additions and 79 deletions

View File

@ -64,7 +64,7 @@ from enum import Enum
LOGGER = logging.Logger("vulkan") LOGGER = logging.Logger("vulkan")
LOGGER.addHandler(logging.StreamHandler()) LOGGER.addHandler(logging.StreamHandler())
VK_XML_VERSION = "1.2.200" VK_XML_VERSION = "1.2.201"
WINE_VK_VERSION = (1, 2) WINE_VK_VERSION = (1, 2)
# Filenames to create. # Filenames to create.
@ -119,9 +119,6 @@ UNSUPPORTED_EXTENSIONS = [
# Deprecated extensions # Deprecated extensions
"VK_NV_external_memory_capabilities", "VK_NV_external_memory_capabilities",
"VK_NV_external_memory_win32", "VK_NV_external_memory_win32",
# Broken extensions
"VK_ARM_rasterization_order_attachment_access", # https://github.com/KhronosGroup/Vulkan-Docs/issues/1703
] ]
# Either internal extensions which aren't present on the win32 platform which # Either internal extensions which aren't present on the win32 platform which

View File

@ -4666,6 +4666,24 @@ VkResult convert_VkDeviceCreateInfo_struct_chain(const void *pNext, VkDeviceCrea
break; break;
} }
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM:
{
const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM *in = (const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM *)in_header;
VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM *out;
if (!(out = malloc(sizeof(*out)))) goto out_of_memory;
out->sType = in->sType;
out->pNext = NULL;
out->rasterizationOrderColorAttachmentAccess = in->rasterizationOrderColorAttachmentAccess;
out->rasterizationOrderDepthAttachmentAccess = in->rasterizationOrderDepthAttachmentAccess;
out->rasterizationOrderStencilAttachmentAccess = in->rasterizationOrderStencilAttachmentAccess;
out_header->pNext = (VkBaseOutStructure *)out;
out_header = out_header->pNext;
break;
}
default: default:
FIXME("Application requested a linked structure of type %u.\n", in_header->sType); FIXME("Application requested a linked structure of type %u.\n", in_header->sType);
} }
@ -8396,6 +8414,7 @@ static const char * const vk_device_extensions[] =
"VK_AMD_shader_info", "VK_AMD_shader_info",
"VK_AMD_shader_trinary_minmax", "VK_AMD_shader_trinary_minmax",
"VK_AMD_texture_gather_bias_lod", "VK_AMD_texture_gather_bias_lod",
"VK_ARM_rasterization_order_attachment_access",
"VK_EXT_4444_formats", "VK_EXT_4444_formats",
"VK_EXT_astc_decode_mode", "VK_EXT_astc_decode_mode",
"VK_EXT_blend_operation_advanced", "VK_EXT_blend_operation_advanced",

View File

@ -2,6 +2,6 @@
"file_format_version": "1.0.0", "file_format_version": "1.0.0",
"ICD": { "ICD": {
"library_path": ".\\winevulkan.dll", "library_path": ".\\winevulkan.dll",
"api_version": "1.2.200" "api_version": "1.2.201"
} }
} }

View File

@ -450,6 +450,8 @@
#define VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME "VK_KHR_copy_commands2" #define VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME "VK_KHR_copy_commands2"
#define VK_EXT_4444_FORMATS_SPEC_VERSION 1 #define VK_EXT_4444_FORMATS_SPEC_VERSION 1
#define VK_EXT_4444_FORMATS_EXTENSION_NAME "VK_EXT_4444_formats" #define VK_EXT_4444_FORMATS_EXTENSION_NAME "VK_EXT_4444_formats"
#define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION 1
#define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_ARM_rasterization_order_attachment_access"
#define VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION 1 #define VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION 1
#define VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME "VK_EXT_rgba10x6_formats" #define VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME "VK_EXT_rgba10x6_formats"
#define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1 #define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1
@ -505,7 +507,7 @@
#define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0) #define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)
#define VK_API_VERSION_1_1 VK_MAKE_API_VERSION(0, 1, 1, 0) #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_2 VK_MAKE_API_VERSION(0, 1, 2, 0)
#define VK_HEADER_VERSION 200 #define VK_HEADER_VERSION 201
#define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 2, VK_HEADER_VERSION) #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 2, VK_HEADER_VERSION)
#define VK_DEFINE_HANDLE(object) typedef struct object##_T* object; #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
#define VK_USE_64_BIT_PTR_DEFINES 0 #define VK_USE_64_BIT_PTR_DEFINES 0
@ -754,11 +756,13 @@ typedef VkFlags VkVideoEncodeH264CapabilityFlagsEXT;
typedef VkFlags VkVideoEncodeH264CreateFlagsEXT; typedef VkFlags VkVideoEncodeH264CreateFlagsEXT;
typedef VkFlags VkVideoEncodeH264InputModeFlagsEXT; typedef VkFlags VkVideoEncodeH264InputModeFlagsEXT;
typedef VkFlags VkVideoEncodeH264OutputModeFlagsEXT; typedef VkFlags VkVideoEncodeH264OutputModeFlagsEXT;
typedef VkFlags VkVideoEncodeH264RateControlStructureFlagsEXT;
typedef VkFlags VkVideoEncodeH265CapabilityFlagsEXT; typedef VkFlags VkVideoEncodeH265CapabilityFlagsEXT;
typedef VkFlags VkVideoEncodeH265CreateFlagsEXT; typedef VkFlags VkVideoEncodeH265CreateFlagsEXT;
typedef VkFlags VkVideoEncodeH265CtbSizeFlagsEXT; typedef VkFlags VkVideoEncodeH265CtbSizeFlagsEXT;
typedef VkFlags VkVideoEncodeH265InputModeFlagsEXT; typedef VkFlags VkVideoEncodeH265InputModeFlagsEXT;
typedef VkFlags VkVideoEncodeH265OutputModeFlagsEXT; typedef VkFlags VkVideoEncodeH265OutputModeFlagsEXT;
typedef VkFlags VkVideoEncodeH265RateControlStructureFlagsEXT;
typedef VkFlags VkVideoEncodeRateControlFlagsKHR; typedef VkFlags VkVideoEncodeRateControlFlagsKHR;
typedef VkFlags VkVideoEncodeRateControlModeFlagsKHR; typedef VkFlags VkVideoEncodeRateControlModeFlagsKHR;
typedef VkFlags VkVideoEndCodingFlagsKHR; typedef VkFlags VkVideoEndCodingFlagsKHR;
@ -2497,6 +2501,7 @@ typedef enum VkPipelineCacheHeaderVersion
typedef enum VkPipelineColorBlendStateCreateFlagBits typedef enum VkPipelineColorBlendStateCreateFlagBits
{ {
VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM = 0x00000001,
VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7fffffff, VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7fffffff,
} VkPipelineColorBlendStateCreateFlagBits; } VkPipelineColorBlendStateCreateFlagBits;
@ -2539,6 +2544,8 @@ typedef enum VkPipelineCreateFlagBits
typedef enum VkPipelineDepthStencilStateCreateFlagBits typedef enum VkPipelineDepthStencilStateCreateFlagBits
{ {
VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = 0x00000001,
VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = 0x00000002,
VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7fffffff, VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7fffffff,
} VkPipelineDepthStencilStateCreateFlagBits; } VkPipelineDepthStencilStateCreateFlagBits;
@ -3525,6 +3532,7 @@ typedef enum VkStructureType
VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = 1000337009, VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = 1000337009,
VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = 1000337010, VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = 1000337010,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000, 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, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = 1000344000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR = 1000347000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR = 1000347000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR = 1000347001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR = 1000347001,
@ -3706,6 +3714,9 @@ typedef enum VkSubpassDescriptionFlagBits
{ {
VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 0x00000004, VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 0x00000004,
VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 0x00000008, VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 0x00000008,
VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM = 0x00000010,
VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = 0x00000020,
VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = 0x00000040,
VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7fffffff, VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7fffffff,
} VkSubpassDescriptionFlagBits; } VkSubpassDescriptionFlagBits;
@ -6103,30 +6114,13 @@ typedef struct VkVertexInputBindingDivisorDescriptionEXT
uint32_t divisor; uint32_t divisor;
} VkVertexInputBindingDivisorDescriptionEXT; } VkVertexInputBindingDivisorDescriptionEXT;
typedef struct VkViewport typedef struct VkViewportSwizzleNV
{ {
float x; VkViewportCoordinateSwizzleNV x;
float y; VkViewportCoordinateSwizzleNV y;
float width; VkViewportCoordinateSwizzleNV z;
float height; VkViewportCoordinateSwizzleNV w;
float minDepth; } VkViewportSwizzleNV;
float maxDepth;
} VkViewport;
typedef struct VkViewportWScalingNV
{
float xcoeff;
float ycoeff;
} VkViewportWScalingNV;
typedef struct VkWin32SurfaceCreateInfoKHR
{
VkStructureType sType;
const void *pNext;
VkWin32SurfaceCreateFlagsKHR flags;
HINSTANCE hinstance;
HWND hwnd;
} VkWin32SurfaceCreateInfoKHR;
typedef struct VkWriteDescriptorSetAccelerationStructureKHR typedef struct VkWriteDescriptorSetAccelerationStructureKHR
{ {
@ -6307,14 +6301,13 @@ typedef struct VkCommandBufferInheritanceInfo
VkQueryPipelineStatisticFlags pipelineStatistics; VkQueryPipelineStatisticFlags pipelineStatistics;
} VkCommandBufferInheritanceInfo; } VkCommandBufferInheritanceInfo;
typedef struct VkCommandBufferInheritanceViewportScissorInfoNV typedef struct VkCommandPoolCreateInfo
{ {
VkStructureType sType; VkStructureType sType;
const void *pNext; const void *pNext;
VkBool32 viewportScissor2D; VkCommandPoolCreateFlags flags;
uint32_t viewportDepthCount; uint32_t queueFamilyIndex;
const VkViewport *pViewportDepths; } VkCommandPoolCreateInfo;
} VkCommandBufferInheritanceViewportScissorInfoNV;
typedef struct VkConformanceVersion typedef struct VkConformanceVersion
{ {
@ -7269,14 +7262,22 @@ typedef struct VkPipelineViewportShadingRateImageStateCreateInfoNV
const VkShadingRatePaletteNV *pShadingRatePalettes; const VkShadingRatePaletteNV *pShadingRatePalettes;
} VkPipelineViewportShadingRateImageStateCreateInfoNV; } VkPipelineViewportShadingRateImageStateCreateInfoNV;
typedef struct VkPipelineViewportWScalingStateCreateInfoNV typedef struct VkPipelineViewportSwizzleStateCreateInfoNV
{ {
VkStructureType sType; VkStructureType sType;
const void *pNext; const void *pNext;
VkBool32 viewportWScalingEnable; VkPipelineViewportSwizzleStateCreateFlagsNV flags;
uint32_t viewportCount; uint32_t viewportCount;
const VkViewportWScalingNV *pViewportWScalings; const VkViewportSwizzleNV *pViewportSwizzles;
} VkPipelineViewportWScalingStateCreateInfoNV; } VkPipelineViewportSwizzleStateCreateInfoNV;
typedef struct VkPresentIdKHR
{
VkStructureType sType;
const void *pNext;
uint32_t swapchainCount;
const uint64_t *pPresentIds;
} VkPresentIdKHR;
typedef struct VkQueryPoolCreateInfo typedef struct VkQueryPoolCreateInfo
{ {
@ -7573,21 +7574,29 @@ typedef struct VkVertexInputBindingDescription2EXT
uint32_t divisor; uint32_t divisor;
} VkVertexInputBindingDescription2EXT; } VkVertexInputBindingDescription2EXT;
typedef struct VkViewportSwizzleNV typedef struct VkViewport
{ {
VkViewportCoordinateSwizzleNV x; float x;
VkViewportCoordinateSwizzleNV y; float y;
VkViewportCoordinateSwizzleNV z; float width;
VkViewportCoordinateSwizzleNV w; float height;
} VkViewportSwizzleNV; float minDepth;
float maxDepth;
} VkViewport;
typedef struct VkWriteDescriptorSetAccelerationStructureNV typedef struct VkWriteDescriptorSet
{ {
VkStructureType sType; VkStructureType sType;
const void *pNext; const void *pNext;
uint32_t accelerationStructureCount; VkDescriptorSet WINE_VK_ALIGN(8) dstSet;
const VkAccelerationStructureNV *pAccelerationStructures; uint32_t dstBinding;
} VkWriteDescriptorSetAccelerationStructureNV; uint32_t dstArrayElement;
uint32_t descriptorCount;
VkDescriptorType descriptorType;
const VkDescriptorImageInfo *pImageInfo;
const VkDescriptorBufferInfo *pBufferInfo;
const VkBufferView *pTexelBufferView;
} VkWriteDescriptorSet;
typedef struct VkAccelerationStructureGeometryTrianglesDataKHR typedef struct VkAccelerationStructureGeometryTrianglesDataKHR
{ {
@ -7679,13 +7688,14 @@ typedef struct VkCoarseSampleOrderCustomNV
const VkCoarseSampleLocationNV *pSampleLocations; const VkCoarseSampleLocationNV *pSampleLocations;
} VkCoarseSampleOrderCustomNV; } VkCoarseSampleOrderCustomNV;
typedef struct VkCommandPoolCreateInfo typedef struct VkCommandBufferInheritanceViewportScissorInfoNV
{ {
VkStructureType sType; VkStructureType sType;
const void *pNext; const void *pNext;
VkCommandPoolCreateFlags flags; VkBool32 viewportScissor2D;
uint32_t queueFamilyIndex; uint32_t viewportDepthCount;
} VkCommandPoolCreateInfo; const VkViewport *pViewportDepths;
} VkCommandBufferInheritanceViewportScissorInfoNV;
typedef struct VkCooperativeMatrixPropertiesNV typedef struct VkCooperativeMatrixPropertiesNV
{ {
@ -8214,15 +8224,6 @@ typedef struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV
const VkCoarseSampleOrderCustomNV *pCustomSampleOrders; const VkCoarseSampleOrderCustomNV *pCustomSampleOrders;
} VkPipelineViewportCoarseSampleOrderStateCreateInfoNV; } VkPipelineViewportCoarseSampleOrderStateCreateInfoNV;
typedef struct VkPipelineViewportSwizzleStateCreateInfoNV
{
VkStructureType sType;
const void *pNext;
VkPipelineViewportSwizzleStateCreateFlagsNV flags;
uint32_t viewportCount;
const VkViewportSwizzleNV *pViewportSwizzles;
} VkPipelineViewportSwizzleStateCreateInfoNV;
typedef struct VkPresentRegionKHR typedef struct VkPresentRegionKHR
{ {
uint32_t rectangleCount; uint32_t rectangleCount;
@ -8380,19 +8381,14 @@ typedef struct VkVertexInputAttributeDescription2EXT
uint32_t offset; uint32_t offset;
} VkVertexInputAttributeDescription2EXT; } VkVertexInputAttributeDescription2EXT;
typedef struct VkWriteDescriptorSet typedef struct VkWin32SurfaceCreateInfoKHR
{ {
VkStructureType sType; VkStructureType sType;
const void *pNext; const void *pNext;
VkDescriptorSet WINE_VK_ALIGN(8) dstSet; VkWin32SurfaceCreateFlagsKHR flags;
uint32_t dstBinding; HINSTANCE hinstance;
uint32_t dstArrayElement; HWND hwnd;
uint32_t descriptorCount; } VkWin32SurfaceCreateInfoKHR;
VkDescriptorType descriptorType;
const VkDescriptorImageInfo *pImageInfo;
const VkDescriptorBufferInfo *pBufferInfo;
const VkBufferView *pTexelBufferView;
} VkWriteDescriptorSet;
typedef union VkAccelerationStructureGeometryDataKHR typedef union VkAccelerationStructureGeometryDataKHR
{ {
@ -8656,6 +8652,15 @@ typedef struct VkPhysicalDeviceProperties
VkPhysicalDeviceSparseProperties sparseProperties; VkPhysicalDeviceSparseProperties sparseProperties;
} VkPhysicalDeviceProperties; } VkPhysicalDeviceProperties;
typedef struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM
{
VkStructureType sType;
const void *pNext;
VkBool32 rasterizationOrderColorAttachmentAccess;
VkBool32 rasterizationOrderDepthAttachmentAccess;
VkBool32 rasterizationOrderStencilAttachmentAccess;
} VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM;
typedef struct VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures typedef struct VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures
{ {
VkStructureType sType; VkStructureType sType;
@ -8819,6 +8824,14 @@ typedef struct VkValidationCacheCreateInfoEXT
const void *pInitialData; const void *pInitialData;
} VkValidationCacheCreateInfoEXT; } VkValidationCacheCreateInfoEXT;
typedef struct VkWriteDescriptorSetAccelerationStructureNV
{
VkStructureType sType;
const void *pNext;
uint32_t accelerationStructureCount;
const VkAccelerationStructureNV *pAccelerationStructures;
} VkWriteDescriptorSetAccelerationStructureNV;
typedef struct VkAccelerationStructureGeometryKHR typedef struct VkAccelerationStructureGeometryKHR
{ {
VkStructureType sType; VkStructureType sType;
@ -9202,14 +9215,6 @@ typedef struct VkPipelineRasterizationDepthClipStateCreateInfoEXT
VkBool32 depthClipEnable; VkBool32 depthClipEnable;
} VkPipelineRasterizationDepthClipStateCreateInfoEXT; } VkPipelineRasterizationDepthClipStateCreateInfoEXT;
typedef struct VkPresentIdKHR
{
VkStructureType sType;
const void *pNext;
uint32_t swapchainCount;
const uint64_t *pPresentIds;
} VkPresentIdKHR;
typedef struct VkSubpassSampleLocationsEXT typedef struct VkSubpassSampleLocationsEXT
{ {
uint32_t subpassIndex; uint32_t subpassIndex;
@ -9301,6 +9306,12 @@ typedef struct VkSpecializationInfo
const void *pData; const void *pData;
} VkSpecializationInfo; } VkSpecializationInfo;
typedef struct VkViewportWScalingNV
{
float xcoeff;
float ycoeff;
} VkViewportWScalingNV;
typedef struct VkAccelerationStructureCreateInfoNV typedef struct VkAccelerationStructureCreateInfoNV
{ {
VkStructureType sType; VkStructureType sType;
@ -9343,6 +9354,15 @@ typedef struct VkPipelineColorBlendStateCreateInfo
float blendConstants[4]; float blendConstants[4];
} VkPipelineColorBlendStateCreateInfo; } VkPipelineColorBlendStateCreateInfo;
typedef struct VkPipelineViewportWScalingStateCreateInfoNV
{
VkStructureType sType;
const void *pNext;
VkBool32 viewportWScalingEnable;
uint32_t viewportCount;
const VkViewportWScalingNV *pViewportWScalings;
} VkPipelineViewportWScalingStateCreateInfoNV;
typedef struct VkAttachmentSampleLocationsEXT typedef struct VkAttachmentSampleLocationsEXT
{ {
uint32_t attachmentIndex; uint32_t attachmentIndex;