diff options
-rw-r--r-- | include/vulkan/vulkan.h | 3 | ||||
-rw-r--r-- | include/vulkan/vulkan_core.h | 38 | ||||
-rw-r--r-- | src/vulkan/registry/vk.xml | 93 |
3 files changed, 119 insertions, 15 deletions
diff --git a/include/vulkan/vulkan.h b/include/vulkan/vulkan.h index a3be4af6c46..62b5533027a 100644 --- a/include/vulkan/vulkan.h +++ b/include/vulkan/vulkan.h @@ -38,6 +38,9 @@ #include "vulkan_macos.h" #endif +#ifdef VK_USE_PLATFORM_METAL_EXT +#include "vulkan_metal.h" +#endif #ifdef VK_USE_PLATFORM_VI_NN #include "vulkan_vi.h" diff --git a/include/vulkan/vulkan_core.h b/include/vulkan/vulkan_core.h index 515a73e462a..166c9e019fd 100644 --- a/include/vulkan/vulkan_core.h +++ b/include/vulkan/vulkan_core.h @@ -43,7 +43,7 @@ extern "C" { #define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff) #define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff) // Version of this file -#define VK_HEADER_VERSION 101 +#define VK_HEADER_VERSION 102 #define VK_NULL_HANDLE 0 @@ -299,6 +299,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001, VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002, + VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000, VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000, VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000, @@ -463,6 +464,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = 1000211000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000, VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000, + VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = 1000217000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001, VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002, @@ -479,6 +481,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = 1000249000, VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = 1000252000, VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT, VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES, @@ -6602,6 +6605,27 @@ VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectByteCountEXT( uint32_t vertexStride); #endif +#define VK_NVX_image_view_handle 1 +#define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 1 +#define VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME "VK_NVX_image_view_handle" + +typedef struct VkImageViewHandleInfoNVX { + VkStructureType sType; + const void* pNext; + VkImageView imageView; + VkDescriptorType descriptorType; + VkSampler sampler; +} VkImageViewHandleInfoNVX; + + +typedef uint32_t (VKAPI_PTR *PFN_vkGetImageViewHandleNVX)(VkDevice device, const VkImageViewHandleInfoNVX* pInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR uint32_t VKAPI_CALL vkGetImageViewHandleNVX( + VkDevice device, + const VkImageViewHandleInfoNVX* pInfo); +#endif + #define VK_AMD_draw_indirect_count 1 #define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 1 #define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count" @@ -9222,6 +9246,18 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( VkCooperativeMatrixPropertiesNV* pProperties); #endif +#define VK_EXT_ycbcr_image_arrays 1 +#define VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION 1 +#define VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME "VK_EXT_ycbcr_image_arrays" + +typedef struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 ycbcrImageArrays; +} VkPhysicalDeviceYcbcrImageArraysFeaturesEXT; + + + #ifdef __cplusplus } #endif diff --git a/src/vulkan/registry/vk.xml b/src/vulkan/registry/vk.xml index 8e56da51bf6..fbe08e40e9f 100644 --- a/src/vulkan/registry/vk.xml +++ b/src/vulkan/registry/vk.xml @@ -54,6 +54,7 @@ server. <platform name="vi" protect="VK_USE_PLATFORM_VI_NN" comment="Nintendo Vi"/> <platform name="ios" protect="VK_USE_PLATFORM_IOS_MVK" comment="Apple IOS"/> <platform name="macos" protect="VK_USE_PLATFORM_MACOS_MVK" comment="Apple MacOS"/> + <platform name="metal" protect="VK_USE_PLATFORM_METAL_EXT" comment="Metal on CoreAnimation on Apple platforms"/> <platform name="fuchsia" protect="VK_USE_PLATFORM_FUCHSIA" comment="Fuchsia"/> </platforms> @@ -70,10 +71,10 @@ server. <tag name="VIV" author="Vivante Corporation" contact="Yanjun Zhang gitlab:@yanjunzhang"/> <tag name="VSI" author="VeriSilicon Holdings Co., Ltd." contact="Yanjun Zhang gitlab:@yanjunzhang"/> <tag name="KDAB" author="KDAB" contact="Sean Harmer @seanharmer"/> - <tag name="ANDROID" author="Google, Inc." contact="Jesse Hall @critsec"/> - <tag name="CHROMIUM" author="Google, Inc." contact="Jesse Hall @critsec"/> - <tag name="FUCHSIA" author="Google, Inc." contact="Craig Stout @cdotstout, Jesse Hall @critsec"/> - <tag name="GOOGLE" author="Google, Inc." contact="Jesse Hall @critsec"/> + <tag name="ANDROID" author="Google LLC" contact="Jesse Hall @critsec"/> + <tag name="CHROMIUM" author="Google LLC" contact="Jesse Hall @critsec"/> + <tag name="FUCHSIA" author="Google LLC" contact="Craig Stout @cdotstout, Jesse Hall @critsec"/> + <tag name="GOOGLE" author="Google LLC" contact="Jesse Hall @critsec"/> <tag name="QCOM" author="Qualcomm Technologies, Inc." contact="Maurice Ribble @mribble"/> <tag name="LUNARG" author="LunarG, Inc." contact="Karen Ghavam @karenghavam-lunarg"/> <tag name="SAMSUNG" author="Samsung Electronics Co., Ltd." contact="Alon Or-bach @alonorbach"/> @@ -146,7 +147,7 @@ server. <type category="define">// Vulkan 1.1 version number #define <name>VK_API_VERSION_1_1</name> <type>VK_MAKE_VERSION</type>(1, 1, 0)// Patch version should always be set to 0</type> <type category="define">// Version of this file -#define <name>VK_HEADER_VERSION</name> 101</type> +#define <name>VK_HEADER_VERSION</name> 102</type> <type category="define"> #define <name>VK_DEFINE_HANDLE</name>(object) typedef struct object##_T* object;</type> @@ -165,6 +166,12 @@ server. <type category="define">struct <name>ANativeWindow</name>;</type> <type category="define">struct <name>AHardwareBuffer</name>;</type> + <type category="define"> +#ifdef __OBJC__ +@class CAMetalLayer; +#else +typedef void <name>CAMetalLayer</name>; +#endif</type> <type category="basetype">typedef <type>uint32_t</type> <name>VkSampleMask</name>;</type> <type category="basetype">typedef <type>uint32_t</type> <name>VkBool32</name>;</type> @@ -268,6 +275,7 @@ server. <type category="bitmask">typedef <type>VkFlags</type> <name>VkXcbSurfaceCreateFlagsKHR</name>;</type> <type category="bitmask">typedef <type>VkFlags</type> <name>VkIOSSurfaceCreateFlagsMVK</name>;</type> <type category="bitmask">typedef <type>VkFlags</type> <name>VkMacOSSurfaceCreateFlagsMVK</name>;</type> + <type category="bitmask">typedef <type>VkFlags</type> <name>VkMetalSurfaceCreateFlagsEXT</name>;</type> <type category="bitmask">typedef <type>VkFlags</type> <name>VkImagePipeSurfaceCreateFlagsFUCHSIA</name>;</type> <type requires="VkPeerMemoryFeatureFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkPeerMemoryFeatureFlags</name>;</type> <type category="bitmask" name="VkPeerMemoryFeatureFlagsKHR" alias="VkPeerMemoryFeatureFlags"/> @@ -2520,6 +2528,12 @@ server. <member optional="true"><type>VkMacOSSurfaceCreateFlagsMVK</type> <name>flags</name></member> <member noautovalidity="true">const <type>void</type>* <name>pView</name></member> </type> + <type category="struct" name="VkMetalSurfaceCreateInfoEXT"> + <member values="VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member> + <member>const <type>void</type>* <name>pNext</name></member> + <member optional="true"><type>VkMetalSurfaceCreateFlagsEXT</type> <name>flags</name></member> + <member noautovalidity="true">const <type>CAMetalLayer</type>* <name>pLayer</name></member> + </type> <type category="struct" name="VkViewportWScalingNV"> <member><type>float</type> <name>xcoeff</name></member> <member><type>float</type> <name>ycoeff</name></member> @@ -3762,6 +3776,18 @@ server. <member><type>VkComponentTypeNV</type> <name>DType</name></member> <member><type>VkScopeNV</type> <name>scope</name></member> </type> + <type category="struct" name="VkPhysicalDeviceYcbcrImageArraysFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo"> + <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member> + <member noautovalidity="true"><type>void</type>* <name>pNext</name></member> + <member><type>VkBool32</type> <name>ycbcrImageArrays</name></member> + </type> + <type category="struct" name="VkImageViewHandleInfoNVX"> + <member values="VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX"><type>VkStructureType</type> <name>sType</name></member> + <member>const <type>void</type>* <name>pNext</name></member> + <member><type>VkImageView</type> <name>imageView</name></member> + <member><type>VkDescriptorType</type> <name>descriptorType</name></member> + <member optional="true"><type>VkSampler</type> <name>sampler</name></member> + </type> </types> <comment>Vulkan enumerant (token) definitions</comment> @@ -6632,6 +6658,13 @@ server. <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param> <param><type>VkSurfaceKHR</type>* <name>pSurface</name></param> </command> + <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_NATIVE_WINDOW_IN_USE_KHR"> + <proto><type>VkResult</type> <name>vkCreateMetalSurfaceEXT</name></proto> + <param><type>VkInstance</type> <name>instance</name></param> + <param>const <type>VkMetalSurfaceCreateInfoEXT</type>* <name>pCreateInfo</name></param> + <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param> + <param><type>VkSurfaceKHR</type>* <name>pSurface</name></param> + </command> <command queues="graphics" renderpass="both" cmdbufferlevel="primary,secondary"> <proto><type>void</type> <name>vkCmdSetViewportWScalingNV</name></proto> <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> @@ -7178,6 +7211,11 @@ server. <param optional="false,true"><type>uint32_t</type>* <name>pPropertyCount</name></param> <param optional="true" len="pPropertyCount"><type>VkCooperativeMatrixPropertiesNV</type>* <name>pProperties</name></param> </command> + <command> + <proto><type>uint32_t</type> <name>vkGetImageViewHandleNVX</name></proto> + <param><type>VkDevice</type> <name>device</name></param> + <param>const <type>VkImageViewHandleInfoNVX</type>* <name>pInfo</name></param> + </command> </commands> <feature api="vulkan" name="VK_VERSION_1_0" number="1.0" comment="Vulkan core API interface definitions"> @@ -8105,10 +8143,13 @@ server. <enum value=""VK_NVX_extension_30"" name="VK_NVX_EXTENSION_30_EXTENSION_NAME"/> </require> </extension> - <extension name="VK_NVX_extension_31" number="31" author="NVX" contact="Jeff Juliano @jjulianoatnv" supported="disabled"> + <extension name="VK_NVX_image_view_handle" number="31" type="device" author="NVX" contact="Eric Werness @ewerness" supported="vulkan"> <require> - <enum value="0" name="VK_NVX_EXTENSION_31_SPEC_VERSION"/> - <enum value=""VK_NVX_extension_31"" name="VK_NVX_EXTENSION_31_EXTENSION_NAME"/> + <enum value="1" name="VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION"/> + <enum value=""VK_NVX_image_view_handle"" name="VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME"/> + <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX"/> + <type name="VkImageViewHandleInfoNVX"/> + <command name="vkGetImageViewHandleNVX"/> </require> </extension> <extension name="VK_AMD_extension_32" number="32" author="AMD" contact="Daniel Rakos @drakos-amd" supported="disabled"> @@ -10220,10 +10261,14 @@ server. <enum value=""VK_KHR_extension_217"" name="VK_KHR_EXTENSION_217_EXTENSION_NAME"/> </require> </extension> - <extension name="VK_EXT_macos_ios_window" number="218" author="EXT" contact="Dzmitry Malyshau @kvark" supported="disabled"> + <extension name="VK_EXT_metal_surface" number="218" type="instance" requires="VK_KHR_surface" platform="metal" supported="vulkan" author="EXT" contact="Dzmitry Malyshau @kvark"> <require> - <enum value="0" name="VK_EXT_MACOS_IOS_WINDOW_SPEC_VERSION"/> - <enum value=""VK_EXT_macos_ios_window"" name="VK_EXT_MACOS_IOS_WINDOW_EXTENSION_NAME"/> + <enum value="1" name="VK_EXT_METAL_SURFACE_SPEC_VERSION"/> + <enum value=""VK_EXT_metal_surface"" name="VK_EXT_METAL_SURFACE_EXTENSION_NAME"/> + <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT"/> + <type name="VkMetalSurfaceCreateFlagsEXT"/> + <type name="VkMetalSurfaceCreateInfoEXT"/> + <command name="vkCreateMetalSurfaceEXT"/> </require> </extension> <extension name="VK_EXT_fragment_density_map" number="219" type="device" requires="VK_KHR_get_physical_device_properties2" author="EXT" contact="Matthew Netsch @mnetsch" supported="vulkan"> @@ -10479,10 +10524,12 @@ server. <enum value=""VK_NV_extension_252"" name="VK_NV_EXTENSION_252_EXTENSION_NAME"/> </require> </extension> - <extension name="VK_EXT_extension_253" number="253" author="EXT" contact="Piers Daniell @pdaniell-nv" supported="disabled"> + <extension name="VK_EXT_ycbcr_image_arrays" number="253" type="device" requires="VK_KHR_sampler_ycbcr_conversion" author="EXT" contact="Piers Daniell @pdaniell-nv" supported="vulkan"> <require> - <enum value="0" name="VK_NV_EXTENSION_253_SPEC_VERSION"/> - <enum value=""VK_NV_extension_253"" name="VK_NV_EXTENSION_253_EXTENSION_NAME"/> + <enum value="1" name="VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION"/> + <enum value=""VK_EXT_ycbcr_image_arrays"" name="VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME"/> + <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT"/> + <type name="VkPhysicalDeviceYcbcrImageArraysFeaturesEXT"/> </require> </extension> <extension name="VK_EXT_extension_254" number="254" author="EXT" contact="Graeme Leese @gnl21" supported="disabled"> @@ -10503,5 +10550,23 @@ server. <enum value=""VK_EXT_extension_256"" name="VK_EXT_EXTENSION_256_EXTENSION_NAME"/> </require> </extension> + <extension name="VK_EXT_extension_257" number="257" author="EXT" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" supported="disabled"> + <require> + <enum value="0" name="VK_EXT_EXTENSION_257_SPEC_VERSION"/> + <enum value=""VK_EXT_extension_257"" name="VK_EXT_EXTENSION_257_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_EXT_extension_258" number="258" author="EXT" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" supported="disabled"> + <require> + <enum value="0" name="VK_EXT_EXTENSION_258_SPEC_VERSION"/> + <enum value=""VK_EXT_extension_258"" name="VK_EXT_EXTENSION_258_EXTENSION_NAME"/> + </require> + </extension> + <extension name="VK_EXT_extension_259" number="259" author="EXT" contact="Jeff Leger @jackohound" supported="disabled"> + <require> + <enum value="0" name="VK_EXT_EXTENSION_259_SPEC_VERSION"/> + <enum value=""VK_EXT_extension_259"" name="VK_EXT_EXTENSION_259_EXTENSION_NAME"/> + </require> + </extension> </extensions> </registry> |