diff options
| -rw-r--r-- | vulkan/api/platform.api | 3 | ||||
| -rw-r--r-- | vulkan/api/vulkan.api | 302 | ||||
| -rw-r--r-- | vulkan/include/vulkan/vulkan_core.h | 248 | ||||
| -rw-r--r-- | vulkan/libvulkan/api_gen.cpp | 1 | ||||
| -rw-r--r-- | vulkan/libvulkan/code-generator.tmpl | 1 | ||||
| -rw-r--r-- | vulkan/vkjson/vkjson.cc | 42 | ||||
| -rw-r--r-- | vulkan/vkjson/vkjson.h | 13 | ||||
| -rw-r--r-- | vulkan/vkjson/vkjson_instance.cc | 25 |
8 files changed, 621 insertions, 14 deletions
diff --git a/vulkan/api/platform.api b/vulkan/api/platform.api index 41f398d271..a7c4c30b5e 100644 --- a/vulkan/api/platform.api +++ b/vulkan/api/platform.api @@ -56,3 +56,6 @@ type u64 size_t // VK_USE_PLATFORM_XLIB_XRANDR_EXT @internal type u64 RROutput + +// VK_USE_PLATFORM_FUCHSIA +@internal type u32 zx_handle_t
\ No newline at end of file diff --git a/vulkan/api/vulkan.api b/vulkan/api/vulkan.api index 57228104e2..e5b9b47fe3 100644 --- a/vulkan/api/vulkan.api +++ b/vulkan/api/vulkan.api @@ -28,7 +28,7 @@ import platform "platform.api" // API version (major.minor.patch) define VERSION_MAJOR 1 define VERSION_MINOR 1 -define VERSION_PATCH 86 +define VERSION_PATCH 90 // API limits define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256 @@ -149,6 +149,10 @@ define NULL_HANDLE 0 @extension("VK_IMG_format_pvrtc") define VK_IMG_FORMAT_PVRTC_SPEC_VERSION 1 @extension("VK_IMG_format_pvrtc") define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc" +// 29 +@extension("VK_EXT_transform_feedback") define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1 +@extension("VK_EXT_transform_feedback") define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback" + // 34 @extension("VK_AMD_draw_indirect_count") define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 1 @extension("VK_AMD_draw_indirect_count") define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count" @@ -501,6 +505,10 @@ define NULL_HANDLE 0 @extension("VK_KHR_bind_memory2") define VK_KHR_BIND_MEMORY2_SPEC_VERSION 1 @extension("VK_KHR_bind_memory2") define VK_KHR_BIND_MEMORY2_EXTENSION_NAME "VK_KHR_bind_memory2" +// 159 +@extension("VK_EXT_image_drm_format_modifier") define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 1 +@extension("VK_EXT_image_drm_format_modifier") define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier" + // 161 @extension("VK_EXT_validation_cache") define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1 @extension("VK_EXT_validation_cache") define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache" @@ -597,6 +605,22 @@ define NULL_HANDLE 0 @extension("VK_KHR_vulkan_memory_model") define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 2 @extension("VK_KHR_vulkan_memory_model") define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model" +// 213 +@extension("VK_EXT_pci_bus_info") define VK_EXT_PCI_BUS_INFO_SPEC_VERSION 1 +@extension("VK_EXT_pci_bus_info") define VK_EXT_PCI_BUS_INFO_EXENSION_NAME "VK_EXT_pci_bus_info" + +// 215 +@extension("VK_FUCHSIA_imagepipe_surface") define VK_FUCHSIA_IMAGEPIPE_SURFACE_SPEC_VERSION 1 +@extension("VK_FUCHSIA_imagepipe_surface") define VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME "VK_FUCHSIA_imagepipe_surface" + +// 224 +@extension("VK_GOOGLE_hlsl_functionality1") define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION 0 +@extension("VK_GOOGLE_hlsl_functionality1") define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1" + +// 225 +@extension("VK_GOOGLE_decorate_string") define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 0 +@extension("VK_GOOGLE_decorate_string") define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string" + ///////////// // Types // ///////////// @@ -724,6 +748,9 @@ enum VkImageType { enum VkImageTiling { VK_IMAGE_TILING_OPTIMAL = 0x00000000, VK_IMAGE_TILING_LINEAR = 0x00000001, + + //@extension("VK_EXT_image_drm_format_modifier") // 159 + VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000, } enum VkImageViewType { @@ -776,6 +803,9 @@ enum VkQueryType { VK_QUERY_TYPE_PIPELINE_STATISTICS = 0x00000001, /// Optional VK_QUERY_TYPE_TIMESTAMP = 0x00000002, + //@extension("VK_EXT_transform_feedback") // 29 + VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004, + //@extension("VK_NVX_raytracing") // 166 VK_QUERY_TYPE_COMPACTED_SIZE_NVX = 1000165000, } @@ -1447,6 +1477,11 @@ enum VkStructureType { VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001, VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002, + //@extension("VK_EXT_transform_feedback") // 29 + 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, + //@extension("VK_AMD_texture_gather_bias_lod") // 42 VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000, @@ -1722,6 +1757,14 @@ enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = 1000156004, VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = 1000156005, + //@extension("VK_EXT_image_drm_format_modifier") // 159 + VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000, + VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002, + VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003, + VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004, + VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005, + //@extension("VK_KHR_bind_memory2") // 158 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = 1000157000, VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = 1000157001, @@ -1778,6 +1821,9 @@ enum VkStructureType { //@extension("VK_KHR_shader_atomic_int64") // 181 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = 1000180000, + //@extension("VK_EXT_calibrated_timestamps") // 185 + VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000, + //@extension("VK_KHR_driver_properties") // 197 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = 1000196000, @@ -1795,6 +1841,12 @@ enum VkStructureType { //@extension("VK_KHR_vulkan_memory_model") // 212 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = 1000211000, + + //@extension("VK_EXT_pci_bus_info") // 213 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000, + + //@extension("VK_FUCHSIA_imagepipe_surface") // 215 + VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000, } enum VkSubpassContents { @@ -1857,14 +1909,17 @@ enum VkResult { //@extension("VK_KHR_maintenance1") // 70 VK_ERROR_OUT_OF_POOL_MEMORY_KHR = 0xC4642878, // -1000069000 - //@extension("VK_EXT_global_priority") // 175 - VK_ERROR_NOT_PERMITTED_EXT = 0xC4628E4F, // -1000174001 - //@extension("VK_KHR_external_memory") // 73 VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = 0xC4641CBD, // -1000072003 + //@extension("VK_EXT_image_drm_format_modifier") // 159 + VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = 0xC462CCD0, // -1000158000 + //@extension("VK_EXT_descriptor_indexing") // 162 VK_ERROR_FRAGMENTATION_EXT = 0xc462c118, // -1000161000 + + //@extension("VK_EXT_global_priority") // 175 + VK_ERROR_NOT_PERMITTED_EXT = 0xC4628E4F, // -1000174001 } enum VkDynamicState { @@ -2282,6 +2337,14 @@ enum VkQueueGlobalPriorityEXT { VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024, } +@extension("VK_EXT_calibrated_timestamps") // 185 +enum VkTimeDomainEXT { + VK_TIME_DOMAIN_DEVICE_EXT = 0, + VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1, + VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2, + VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3, +} + @extension("VK_KHR_driver_properties") // 197 enum VkDriverIdKHR { VK_DRIVER_ID_AMD_PROPRIETARY_KHR = 1, @@ -2373,6 +2436,11 @@ bitfield VkAccessFlagBits { //@extension("VK_NVX_raytracing") // 166 VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NVX = 0x00200000, VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NVX = 0x00400000, + + //@extension("VK_EXT_transform_feedback") // 29 + VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000, + VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000, + VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000, } /// Buffer usage flags @@ -2393,6 +2461,10 @@ bitfield VkBufferUsageFlagBits { //@extension("VK_NVX_raytracing") // 166 VK_BUFFER_USAGE_RAYTRACING_BIT_NVX = 0x00000400, + + //@extension("VK_EXT_transform_feedback") // 29 + VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800, + VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000, } /// Buffer creation flags @@ -2666,6 +2738,12 @@ bitfield VkImageAspectFlagBits { VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = 0x00000010, VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = 0x00000020, VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = 0x00000040, + + //@extension("VK_EXT_transform_feedback") // 29 + VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080, + VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100, + VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200, + VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400, } /// Sparse memory bind flags @@ -2719,6 +2797,9 @@ bitfield VkPipelineStageFlagBits { //@extension("VK_NV_mesh_shader") // 203 VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 0x00080000, VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 0x00100000, + + //@extension("VK_EXT_transform_feedback") // 29 + VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000, } /// Render pass attachment description flags @@ -3149,6 +3230,12 @@ bitfield VkDebugReportFlagBitsEXT { VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010, } +@extension("VK_EXT_transform_feedback") // 29 +type VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT +//@extension("VK_EXT_transform_feedback") // 29 +//bitfield VkPipelineRasterizationStateStreamCreateFlagBitsEXT { +//} + @extension("VK_NV_external_memory_capabilities") // 56 type VkFlags VkExternalMemoryHandleTypeFlagsNV @extension("VK_NV_external_memory_capabilities") // 56 @@ -3426,6 +3513,12 @@ bitfield VkBuildAccelerationStructureFlagBitsNVX { VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NVX = 0x00000010, } +@extension("VK_FUCHSIA_imagepipe_surface") // 215 +type VkFlags VkImagePipeSurfaceCreateFlagsFUCHSIA +//@extension("VK_FUCHSIA_imagepipe_surface") // 215 +//bitfield VkImagePipeSurfaceCreateFlagBitsFUCHSIA { +//} + ////////////////// // Structures // ////////////////// @@ -5360,6 +5453,38 @@ class VkDedicatedAllocationMemoryAllocateInfoNV { VkBuffer buffer } +@extension("VK_EXT_transform_feedback") // 29 +class VkPhysicalDeviceTransformFeedbackFeaturesEXT { + VkStructureType sType + void* pNext + VkBool32 transformFeedback + VkBool32 geometryStreams +} + +@extension("VK_EXT_transform_feedback") // 29 +class VkPhysicalDeviceTransformFeedbackPropertiesEXT { + VkStructureType sType + void* pNext + u32 maxTransformFeedbackStreams + u32 maxTransformFeedbackBuffers + VkDeviceSize maxTransformFeedbackBufferSize + u32 maxTransformFeedbackStreamDataSize + u32 maxTransformFeedbackBufferDataSize + u32 maxTransformFeedbackBufferDataStride + VkBool32 transformFeedbackQueries + VkBool32 transformFeedbackStreamsLinesTriangles + VkBool32 transformFeedbackRasterizationStreamSelect + VkBool32 transformFeedbackDraw +} + +@extension("VK_EXT_transform_feedback") // 29 +class VkPipelineRasterizationStateStreamCreateInfoEXT { + VkStructureType sType + const void* pNext + VkPipelineRasterizationStateStreamCreateFlagsEXT flags + u32 rasterizationStream +} + @extension("VK_AMD_texture_gather_bias_lod") // 42 class VkTextureLODGatherFormatPropertiesAMD { VkStructureType sType @@ -6599,7 +6724,7 @@ class VkDebugUtilsMessengerCreateInfoEXT { const void* pNext VkDebugUtilsMessengerCreateFlagsEXT flags VkDebugUtilsMessageSeverityFlagsEXT messageSeverity - VkDebugUtilsMessageTypeFlagsEXT messageType + VkDebugUtilsMessageTypeFlagsEXT messageTypes PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback void* pUserData } @@ -6925,6 +7050,55 @@ class VkBindImageMemoryInfoKHR { VkDeviceSize memoryOffset } +@extension("VK_EXT_image_drm_format_modifier") // 159 +class VkDrmFormatModifierPropertiesEXT { + u64 drmFormatModifier + u32 drmFormatModifierPlaneCount + VkFormatFeatureFlags drmFormatModifierTilingFeatures +} + +@extension("VK_EXT_image_drm_format_modifier") // 159 +class VkDrmFormatModifierPropertiesListEXT { + VkStructureType sType + void* pNext + u32 drmFormatModifierCount + VkDrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties +} + +@extension("VK_EXT_image_drm_format_modifier") // 159 +class VkPhysicalDeviceImageDrmFormatModifierInfoEXT { + VkStructureType sType + const void* pNext + u64 drmFormatModifier + VkSharingMode sharingMode + u32 queueFamilyIndexCount + const u32* pQueueFamilyIndices +} + +@extension("VK_EXT_image_drm_format_modifier") // 159 +class VkImageDrmFormatModifierListCreateInfoEXT { + VkStructureType sType + const void* pNext + u32 drmFormatModifierCount + const u64* pDrmFormatModifiers +} + +@extension("VK_EXT_image_drm_format_modifier") // 159 +class VkImageDrmFormatModifierExplicitCreateInfoEXT { + VkStructureType sType + const void* pNext + u64 drmFormatModifier + u32 drmFormatModifierPlaneCount + const VkSubresourceLayout* pPlaneLayouts +} + +@extension("VK_EXT_image_drm_format_modifier") // 159 +class VkImageDrmFormatModifierPropertiesEXT { + VkStructureType sType + void* pNext + u64 drmFormatModifier +} + @extension("VK_EXT_validation_cache") // 161 class VkValidationCacheCreateInfoEXT { VkStructureType sType @@ -7253,6 +7427,13 @@ class VkPhysicalDeviceShaderAtomicInt64FeaturesKHR { VkBool32 shaderSharedInt64Atomics } +@extension("VK_EXT_calibrated_timestamps") // 185 +class VkCalibratedTimestampInfoEXT { + VkStructureType sType + const void* pNext + VkTimeDomainEXT timeDomain +} + @extension("VK_AMD_shader_core_properties") // 186 class VkPhysicalDeviceShaderCorePropertiesAMD { VkStructureType sType @@ -7314,7 +7495,7 @@ class VkConformanceVersionKHR { class VkPhysicalDeviceDriverPropertiesKHR { VkStructureType sType void* pNext - u32 driverID + VkDriverIdKHR driverID char[VK_MAX_DRIVER_NAME_SIZE_KHR] driverName char[VK_MAX_DRIVER_INFO_SIZE_KHR] driverInfo VkConformanceVersionKHR conformanceVersion @@ -7413,6 +7594,24 @@ class VkPhysicalDeviceVulkanMemoryModelFeaturesKHR { VkBool32 vulkanMemoryModelDeviceScope } +@extension("VK_EXT_pci_bus_info") // 213 +class VkPhysicalDevicePCIBusInfoPropertiesEXT { + VkStructureType sType + void* pNext + u16 pciDomain + u8 pciBus + u8 pciDevice + u8 pciFunction +} + +@extension("VK_FUCHSIA_imagepipe_surface") // 215 +class VkImagePipeSurfaceCreateInfoFUCHSIA { + VkStructureType sType + const void* pNext + VkImagePipeSurfaceCreateFlagsFUCHSIA flags + platform.zx_handle_t imagePipeHandle +} + //////////////// // Commands // @@ -10334,6 +10533,62 @@ cmd void vkCmdDebugMarkerInsertEXT( const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) { } +@extension("VK_EXT_transform_feedback") // 29 +cmd void vkCmdBindTransformFeedbackBuffersEXT( + VkCommandBuffer commandBuffer, + u32 firstBinding, + u32 bindingCount, + const VkBuffer* pBuffers, + const VkDeviceSize* pOffsets, + const VkDeviceSize* pSizes) { +} + +@extension("VK_EXT_transform_feedback") // 29 +cmd void vkCmdBeginTransformFeedbackEXT( + VkCommandBuffer commandBuffer, + u32 firstCounterBuffer, + u32 counterBufferCount, + const VkBuffer* pCounterBuffers, + const VkDeviceSize* pCounterBufferOffsets) { +} + +@extension("VK_EXT_transform_feedback") // 29 +cmd void vkCmdEndTransformFeedbackEXT( + VkCommandBuffer commandBuffer, + u32 firstCounterBuffer, + u32 counterBufferCount, + const VkBuffer* pCounterBuffers, + const VkDeviceSize* pCounterBufferOffsets) { +} + +@extension("VK_EXT_transform_feedback") // 29 +cmd void vkCmdBeginQueryIndexedEXT( + VkCommandBuffer commandBuffer, + VkQueryPool queryPool, + u32 query, + VkQueryControlFlags flags, + u32 index) { +} + +@extension("VK_EXT_transform_feedback") // 29 +cmd void vkCmdEndQueryIndexedEXT( + VkCommandBuffer commandBuffer, + VkQueryPool queryPool, + u32 query, + u32 index) { +} + +@extension("VK_EXT_transform_feedback") // 29 +cmd void vkCmdDrawIndirectByteCountEXT( + VkCommandBuffer commandBuffer, + u32 instanceCount, + u32 firstInstance, + VkBuffer counterBuffer, + VkDeviceSize counterBufferOffset, + u32 counterOffset, + u32 vertexStride) { +} + @extension("VK_AMD_draw_indirect_count") // 34 cmd void vkCmdDrawIndirectCountAMD( VkCommandBuffer commandBuffer, @@ -11128,6 +11383,14 @@ cmd VkResult vkBindImageMemory2KHR( return ? } +@extension("VK_EXT_image_drm_format_modifier") // 159 +cmd VkResult vkGetImageDrmFormatModifierPropertiesEXT( + VkDevice device, + VkImage image, + VkImageDrmFormatModifierPropertiesEXT* pProperties) { + return ? +} + @extension("VK_EXT_validation_cache") // 161 cmd VkResult vkCreateValidationCacheEXT( VkDevice device, @@ -11358,6 +11621,24 @@ cmd void vkCmdWriteBufferMarkerAMD( u32 marker) { } +@extension("VK_EXT_calibrated_timestamps") // 185 +cmd VkResult vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( + VkPhysicalDevice physicalDevice, + u32* pTimeDomainCount, + VkTimeDomainEXT* pTimeDomains) { + return ? +} + +@extension("VK_EXT_calibrated_timestamps") // 185 +cmd VkResult vkGetCalibratedTimestampsEXT( + VkDevice device, + u32 timestampCount, + const VkCalibratedTimestampInfoEXT* pTimestampInfos, + u64* pTimestamps, + u64* pMaxDeviation) { + return ? +} + @extension("VK_NV_mesh_shader") // 203 cmd void vkCmdDrawMeshTasksNV( VkCommandBuffer commandBuffer, @@ -11406,6 +11687,15 @@ cmd void vkGetQueueCheckpointDataNV( VkCheckpointDataNV* pCheckpointData) { } +@extension("VK_FUCHSIA_imagepipe_surface") // 215 +cmd VkResult vkCreateImagePipeSurfaceFUCHSIA( + VkInstance instance, + const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSurfaceKHR* pSurface) { + return ? +} + //////////////// // Validation // diff --git a/vulkan/include/vulkan/vulkan_core.h b/vulkan/include/vulkan/vulkan_core.h index 39f4dc6f05..ac9bb66d1e 100644 --- a/vulkan/include/vulkan/vulkan_core.h +++ b/vulkan/include/vulkan/vulkan_core.h @@ -43,11 +43,11 @@ 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 86 +#define VK_HEADER_VERSION 90 #define VK_NULL_HANDLE 0 - + #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object; @@ -60,7 +60,7 @@ extern "C" { #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object; #endif #endif - + typedef uint32_t VkFlags; @@ -147,6 +147,7 @@ typedef enum VkResult { VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001, VK_ERROR_VALIDATION_FAILED_EXT = -1000011001, VK_ERROR_INVALID_SHADER_NV = -1000012000, + VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000, VK_ERROR_FRAGMENTATION_EXT = -1000161000, VK_ERROR_NOT_PERMITTED_EXT = -1000174001, VK_ERROR_OUT_OF_POOL_MEMORY_KHR = VK_ERROR_OUT_OF_POOL_MEMORY, @@ -297,6 +298,9 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000, VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001, VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002, + 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_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, @@ -398,6 +402,12 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002, VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000, VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000, + VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000, + VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002, + VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003, + VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004, + VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005, VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000, VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001, VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = 1000161000, @@ -428,6 +438,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = 1000180000, + VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000, VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001, @@ -443,6 +454,8 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000, VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001, 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_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, @@ -811,6 +824,7 @@ typedef enum VkImageType { typedef enum VkImageTiling { VK_IMAGE_TILING_OPTIMAL = 0, VK_IMAGE_TILING_LINEAR = 1, + VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000, VK_IMAGE_TILING_BEGIN_RANGE = VK_IMAGE_TILING_OPTIMAL, VK_IMAGE_TILING_END_RANGE = VK_IMAGE_TILING_LINEAR, VK_IMAGE_TILING_RANGE_SIZE = (VK_IMAGE_TILING_LINEAR - VK_IMAGE_TILING_OPTIMAL + 1), @@ -833,6 +847,7 @@ typedef enum VkQueryType { VK_QUERY_TYPE_OCCLUSION = 0, VK_QUERY_TYPE_PIPELINE_STATISTICS = 1, VK_QUERY_TYPE_TIMESTAMP = 2, + VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004, VK_QUERY_TYPE_COMPACTED_SIZE_NVX = 1000165000, VK_QUERY_TYPE_BEGIN_RANGE = VK_QUERY_TYPE_OCCLUSION, VK_QUERY_TYPE_END_RANGE = VK_QUERY_TYPE_TIMESTAMP, @@ -1428,6 +1443,7 @@ typedef enum VkPipelineStageFlagBits { VK_PIPELINE_STAGE_HOST_BIT = 0x00004000, VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000, + VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000, VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000, VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000, VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00400000, @@ -1447,6 +1463,10 @@ typedef enum VkImageAspectFlagBits { VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010, VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020, VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040, + VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080, + VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100, + VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200, + VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400, VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT, VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT, @@ -1521,6 +1541,8 @@ typedef enum VkBufferUsageFlagBits { VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040, VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080, VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100, + VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800, + VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000, VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200, VK_BUFFER_USAGE_RAYTRACING_BIT_NVX = 0x00000400, VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF @@ -1643,6 +1665,9 @@ typedef enum VkAccessFlagBits { VK_ACCESS_HOST_WRITE_BIT = 0x00004000, VK_ACCESS_MEMORY_READ_BIT = 0x00008000, VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000, + VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000, + VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000, + VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000, VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000, VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000, VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000, @@ -6092,7 +6117,7 @@ typedef struct VkConformanceVersionKHR { typedef struct VkPhysicalDeviceDriverPropertiesKHR { VkStructureType sType; void* pNext; - uint32_t driverID; + VkDriverIdKHR driverID; char driverName[VK_MAX_DRIVER_NAME_SIZE_KHR]; char driverInfo[VK_MAX_DRIVER_INFO_SIZE_KHR]; VkConformanceVersionKHR conformanceVersion; @@ -6359,6 +6384,95 @@ typedef struct VkDedicatedAllocationMemoryAllocateInfoNV { +#define VK_EXT_transform_feedback 1 +#define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1 +#define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback" + +typedef VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT; + +typedef struct VkPhysicalDeviceTransformFeedbackFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 transformFeedback; + VkBool32 geometryStreams; +} VkPhysicalDeviceTransformFeedbackFeaturesEXT; + +typedef struct VkPhysicalDeviceTransformFeedbackPropertiesEXT { + VkStructureType sType; + void* pNext; + uint32_t maxTransformFeedbackStreams; + uint32_t maxTransformFeedbackBuffers; + VkDeviceSize maxTransformFeedbackBufferSize; + uint32_t maxTransformFeedbackStreamDataSize; + uint32_t maxTransformFeedbackBufferDataSize; + uint32_t maxTransformFeedbackBufferDataStride; + VkBool32 transformFeedbackQueries; + VkBool32 transformFeedbackStreamsLinesTriangles; + VkBool32 transformFeedbackRasterizationStreamSelect; + VkBool32 transformFeedbackDraw; +} VkPhysicalDeviceTransformFeedbackPropertiesEXT; + +typedef struct VkPipelineRasterizationStateStreamCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkPipelineRasterizationStateStreamCreateFlagsEXT flags; + uint32_t rasterizationStream; +} VkPipelineRasterizationStateStreamCreateInfoEXT; + + +typedef void (VKAPI_PTR *PFN_vkCmdBindTransformFeedbackBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes); +typedef void (VKAPI_PTR *PFN_vkCmdBeginTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets); +typedef void (VKAPI_PTR *PFN_vkCmdEndTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets); +typedef void (VKAPI_PTR *PFN_vkCmdBeginQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index); +typedef void (VKAPI_PTR *PFN_vkCmdEndQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index); +typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectByteCountEXT)(VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdBindTransformFeedbackBuffersEXT( + VkCommandBuffer commandBuffer, + uint32_t firstBinding, + uint32_t bindingCount, + const VkBuffer* pBuffers, + const VkDeviceSize* pOffsets, + const VkDeviceSize* pSizes); + +VKAPI_ATTR void VKAPI_CALL vkCmdBeginTransformFeedbackEXT( + VkCommandBuffer commandBuffer, + uint32_t firstCounterBuffer, + uint32_t counterBufferCount, + const VkBuffer* pCounterBuffers, + const VkDeviceSize* pCounterBufferOffsets); + +VKAPI_ATTR void VKAPI_CALL vkCmdEndTransformFeedbackEXT( + VkCommandBuffer commandBuffer, + uint32_t firstCounterBuffer, + uint32_t counterBufferCount, + const VkBuffer* pCounterBuffers, + const VkDeviceSize* pCounterBufferOffsets); + +VKAPI_ATTR void VKAPI_CALL vkCmdBeginQueryIndexedEXT( + VkCommandBuffer commandBuffer, + VkQueryPool queryPool, + uint32_t query, + VkQueryControlFlags flags, + uint32_t index); + +VKAPI_ATTR void VKAPI_CALL vkCmdEndQueryIndexedEXT( + VkCommandBuffer commandBuffer, + VkQueryPool queryPool, + uint32_t query, + uint32_t index); + +VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectByteCountEXT( + VkCommandBuffer commandBuffer, + uint32_t instanceCount, + uint32_t firstInstance, + VkBuffer counterBuffer, + VkDeviceSize counterBufferOffset, + uint32_t counterOffset, + uint32_t vertexStride); +#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" @@ -7341,7 +7455,7 @@ typedef struct VkDebugUtilsMessengerCallbackDataEXT { typedef VkBool32 (VKAPI_PTR *PFN_vkDebugUtilsMessengerCallbackEXT)( VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, - VkDebugUtilsMessageTypeFlagsEXT messageType, + VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData, void* pUserData); @@ -7676,6 +7790,65 @@ typedef struct VkPipelineCoverageModulationStateCreateInfoNV { #define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage" +#define VK_EXT_image_drm_format_modifier 1 +#define VK_EXT_EXTENSION_159_SPEC_VERSION 0 +#define VK_EXT_EXTENSION_159_EXTENSION_NAME "VK_EXT_extension_159" +#define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 1 +#define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier" + +typedef struct VkDrmFormatModifierPropertiesEXT { + uint64_t drmFormatModifier; + uint32_t drmFormatModifierPlaneCount; + VkFormatFeatureFlags drmFormatModifierTilingFeatures; +} VkDrmFormatModifierPropertiesEXT; + +typedef struct VkDrmFormatModifierPropertiesListEXT { + VkStructureType sType; + void* pNext; + uint32_t drmFormatModifierCount; + VkDrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties; +} VkDrmFormatModifierPropertiesListEXT; + +typedef struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT { + VkStructureType sType; + const void* pNext; + uint64_t drmFormatModifier; + VkSharingMode sharingMode; + uint32_t queueFamilyIndexCount; + const uint32_t* pQueueFamilyIndices; +} VkPhysicalDeviceImageDrmFormatModifierInfoEXT; + +typedef struct VkImageDrmFormatModifierListCreateInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t drmFormatModifierCount; + const uint64_t* pDrmFormatModifiers; +} VkImageDrmFormatModifierListCreateInfoEXT; + +typedef struct VkImageDrmFormatModifierExplicitCreateInfoEXT { + VkStructureType sType; + const void* pNext; + uint64_t drmFormatModifier; + uint32_t drmFormatModifierPlaneCount; + const VkSubresourceLayout* pPlaneLayouts; +} VkImageDrmFormatModifierExplicitCreateInfoEXT; + +typedef struct VkImageDrmFormatModifierPropertiesEXT { + VkStructureType sType; + void* pNext; + uint64_t drmFormatModifier; +} VkImageDrmFormatModifierPropertiesEXT; + + +typedef VkResult (VKAPI_PTR *PFN_vkGetImageDrmFormatModifierPropertiesEXT)(VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetImageDrmFormatModifierPropertiesEXT( + VkDevice device, + VkImage image, + VkImageDrmFormatModifierPropertiesEXT* pProperties); +#endif + #define VK_EXT_validation_cache 1 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT) @@ -8296,6 +8469,46 @@ VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarkerAMD( uint32_t marker); #endif +#define VK_EXT_calibrated_timestamps 1 +#define VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION 1 +#define VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_EXT_calibrated_timestamps" + + +typedef enum VkTimeDomainEXT { + VK_TIME_DOMAIN_DEVICE_EXT = 0, + VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1, + VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2, + VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3, + VK_TIME_DOMAIN_BEGIN_RANGE_EXT = VK_TIME_DOMAIN_DEVICE_EXT, + VK_TIME_DOMAIN_END_RANGE_EXT = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT, + VK_TIME_DOMAIN_RANGE_SIZE_EXT = (VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT - VK_TIME_DOMAIN_DEVICE_EXT + 1), + VK_TIME_DOMAIN_MAX_ENUM_EXT = 0x7FFFFFFF +} VkTimeDomainEXT; + +typedef struct VkCalibratedTimestampInfoEXT { + VkStructureType sType; + const void* pNext; + VkTimeDomainEXT timeDomain; +} VkCalibratedTimestampInfoEXT; + + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains); +typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsEXT)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( + VkPhysicalDevice physicalDevice, + uint32_t* pTimeDomainCount, + VkTimeDomainEXT* pTimeDomains); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsEXT( + VkDevice device, + uint32_t timestampCount, + const VkCalibratedTimestampInfoEXT* pTimestampInfos, + uint64_t* pTimestamps, + uint64_t* pMaxDeviation); +#endif + #define VK_AMD_shader_core_properties 1 #define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 1 #define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties" @@ -8516,6 +8729,31 @@ VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointDataNV( VkCheckpointDataNV* pCheckpointData); #endif +#define VK_EXT_pci_bus_info 1 +#define VK_EXT_PCI_BUS_INFO_SPEC_VERSION 1 +#define VK_EXT_PCI_BUS_INFO_EXTENSION_NAME "VK_EXT_pci_bus_info" + +typedef struct VkPhysicalDevicePCIBusInfoPropertiesEXT { + VkStructureType sType; + void* pNext; + uint16_t pciDomain; + uint8_t pciBus; + uint8_t pciDevice; + uint8_t pciFunction; +} VkPhysicalDevicePCIBusInfoPropertiesEXT; + + + +#define VK_GOOGLE_hlsl_functionality1 1 +#define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION 0 +#define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1" + + +#define VK_GOOGLE_decorate_string 1 +#define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 0 +#define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string" + + #ifdef __cplusplus } #endif diff --git a/vulkan/libvulkan/api_gen.cpp b/vulkan/libvulkan/api_gen.cpp index 629ebb1a18..df86af0c3b 100644 --- a/vulkan/libvulkan/api_gen.cpp +++ b/vulkan/libvulkan/api_gen.cpp @@ -556,6 +556,7 @@ VKAPI_ATTR PFN_vkVoidFunction GetDeviceProcAddr(VkDevice device, const char* pNa "vkGetDisplayModeProperties2KHR", "vkGetDisplayPlaneCapabilities2KHR", "vkGetInstanceProcAddr", + "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT", "vkGetPhysicalDeviceDisplayPlaneProperties2KHR", "vkGetPhysicalDeviceDisplayProperties2KHR", "vkGetPhysicalDeviceExternalBufferProperties", diff --git a/vulkan/libvulkan/code-generator.tmpl b/vulkan/libvulkan/code-generator.tmpl index 1f4df1e59d..f04eb03eac 100644 --- a/vulkan/libvulkan/code-generator.tmpl +++ b/vulkan/libvulkan/code-generator.tmpl @@ -1149,6 +1149,7 @@ VK_ANDROID_external_memory_android_hardware_buffer {{else if eq $ext "VK_EXT_direct_mode_display"}}true {{else if eq $ext "VK_EXT_display_surface_counter"}}true {{else if eq $ext "VK_EXT_display_control"}}true + {{else if eq $ext "VK_FUCHSIA_imagepipe_surface"}}true {{else if eq $ext "VK_MVK_ios_surface"}}true {{else if eq $ext "VK_MVK_macos_surface"}}true {{else if eq $ext "VK_NN_vi_surface"}}true diff --git a/vulkan/vkjson/vkjson.cc b/vulkan/vkjson/vkjson.cc index efe622d782..3da4336069 100644 --- a/vulkan/vkjson/vkjson.cc +++ b/vulkan/vkjson/vkjson.cc @@ -325,6 +325,13 @@ struct EnumTraits<VkExternalSemaphoreHandleTypeFlagBits> { } }; +template <> +struct EnumTraits<VkDriverIdKHR> { + static uint32_t min() { return VK_DRIVER_ID_BEGIN_RANGE_KHR; } + static uint32_t max() { return VK_DRIVER_ID_END_RANGE_KHR; } + static bool exist(uint32_t e) { return e >= min() && e <= max(); } +}; + // VkSparseImageFormatProperties template <typename Visitor> @@ -544,6 +551,31 @@ inline bool Iterate(Visitor* visitor, VkPhysicalDeviceFeatures* features) { template <typename Visitor> inline bool Iterate(Visitor* visitor, + VkJsonExtDriverProperties* properties) { + return visitor->Visit("driverPropertiesKHR", + &properties->driver_properties_khr); +} + +template <typename Visitor> +inline bool Iterate(Visitor* visitor, + VkPhysicalDeviceDriverPropertiesKHR* properties) { + return visitor->Visit("driverID", &properties->driverID) && + visitor->Visit("driverName", &properties->driverName) && + visitor->Visit("driverInfo", &properties->driverInfo) && + visitor->Visit("conformanceVersion", &properties->conformanceVersion); +} + +template <typename Visitor> +inline bool Iterate(Visitor* visitor, + VkConformanceVersionKHR* version) { + return visitor->Visit("major", &version->major) && + visitor->Visit("minor", &version->minor) && + visitor->Visit("subminor", &version->subminor) && + visitor->Visit("patch", &version->patch); +} + +template <typename Visitor> +inline bool Iterate(Visitor* visitor, VkJsonExtVariablePointerFeatures* features) { return visitor->Visit("variablePointerFeaturesKHR", &features->variable_pointer_features_khr); @@ -770,13 +802,19 @@ inline bool Iterate(Visitor* visitor, VkJsonDevice* device) { case VK_API_VERSION_1_0: ret &= visitor->Visit("properties", &device->properties) && visitor->Visit("features", &device->features) && - visitor->Visit("VK_KHR_variable_pointers", - &device->ext_variable_pointer_features) && visitor->Visit("memory", &device->memory) && visitor->Visit("queues", &device->queues) && visitor->Visit("extensions", &device->extensions) && visitor->Visit("layers", &device->layers) && visitor->Visit("formats", &device->formats); + if (device->ext_driver_properties.reported) { + ret &= visitor->Visit("VK_KHR_driver_properties", + &device->ext_driver_properties); + } + if (device->ext_variable_pointer_features.reported) { + ret &= visitor->Visit("VK_KHR_variable_pointers", + &device->ext_variable_pointer_features); + } } return ret; } diff --git a/vulkan/vkjson/vkjson.h b/vulkan/vkjson/vkjson.h index 4f97c3ec88..450fb24862 100644 --- a/vulkan/vkjson/vkjson.h +++ b/vulkan/vkjson/vkjson.h @@ -52,11 +52,23 @@ struct VkJsonLayer { std::vector<VkExtensionProperties> extensions; }; +struct VkJsonExtDriverProperties { + VkJsonExtDriverProperties() { + reported = false; + memset(&driver_properties_khr, 0, + sizeof(VkPhysicalDeviceDriverPropertiesKHR)); + } + bool reported; + VkPhysicalDeviceDriverPropertiesKHR driver_properties_khr; +}; + struct VkJsonExtVariablePointerFeatures { VkJsonExtVariablePointerFeatures() { + reported = false; memset(&variable_pointer_features_khr, 0, sizeof(VkPhysicalDeviceVariablePointerFeaturesKHR)); } + bool reported; VkPhysicalDeviceVariablePointerFeaturesKHR variable_pointer_features_khr; }; @@ -87,6 +99,7 @@ struct VkJsonDevice { } VkPhysicalDeviceProperties properties; VkPhysicalDeviceFeatures features; + VkJsonExtDriverProperties ext_driver_properties; VkJsonExtVariablePointerFeatures ext_variable_pointer_features; VkPhysicalDeviceMemoryProperties memory; std::vector<VkQueueFamilyProperties> queues; diff --git a/vulkan/vkjson/vkjson_instance.cc b/vulkan/vkjson/vkjson_instance.cc index 4ec442a4ef..05d4dfea6c 100644 --- a/vulkan/vkjson/vkjson_instance.cc +++ b/vulkan/vkjson/vkjson_instance.cc @@ -71,11 +71,16 @@ VkJsonDevice VkJsonGetDevice(VkInstance instance, const char* const* instance_extensions) { VkJsonDevice device; + PFN_vkGetPhysicalDeviceProperties2KHR vkpGetPhysicalDeviceProperties2KHR = + nullptr; PFN_vkGetPhysicalDeviceFeatures2KHR vkpGetPhysicalDeviceFeatures2KHR = nullptr; if (instance != VK_NULL_HANDLE && HasExtension("VK_KHR_get_physical_device_properties2", instance_extension_count, instance_extensions)) { + vkpGetPhysicalDeviceProperties2KHR = + reinterpret_cast<PFN_vkGetPhysicalDeviceProperties2KHR>( + vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceProperties2KHR")); vkpGetPhysicalDeviceFeatures2KHR = reinterpret_cast<PFN_vkGetPhysicalDeviceFeatures2KHR>( vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceFeatures2KHR")); @@ -98,15 +103,32 @@ VkJsonDevice VkJsonGetDevice(VkInstance instance, device.layers.data()); } - vkGetPhysicalDeviceProperties(physical_device, &device.properties); if (HasExtension("VK_KHR_get_physical_device_properties2", instance_extension_count, instance_extensions)) { + VkPhysicalDeviceProperties2KHR properties = { + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR, + nullptr, + {} // properties + }; + if (HasExtension("VK_KHR_driver_properties", device.extensions)) { + device.ext_driver_properties.reported = true; + device.ext_driver_properties.driver_properties_khr.sType = + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR; + device.ext_driver_properties.driver_properties_khr.pNext = + properties.pNext; + properties.pNext = + &device.ext_driver_properties.driver_properties_khr; + } + vkpGetPhysicalDeviceProperties2KHR(physical_device, &properties); + device.properties = properties.properties; + VkPhysicalDeviceFeatures2KHR features = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR, nullptr, {} // features }; if (HasExtension("VK_KHR_variable_pointers", device.extensions)) { + device.ext_variable_pointer_features.reported = true; device.ext_variable_pointer_features.variable_pointer_features_khr.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR; device.ext_variable_pointer_features.variable_pointer_features_khr.pNext = @@ -117,6 +139,7 @@ VkJsonDevice VkJsonGetDevice(VkInstance instance, vkpGetPhysicalDeviceFeatures2KHR(physical_device, &features); device.features = features.features; } else { + vkGetPhysicalDeviceProperties(physical_device, &device.properties); vkGetPhysicalDeviceFeatures(physical_device, &device.features); } vkGetPhysicalDeviceMemoryProperties(physical_device, &device.memory); |