From 38145d8f1ea6ed72b9f904a04a2a6ca4351e3d2d Mon Sep 17 00:00:00 2001 From: Jeff Date: Sun, 19 Jul 2026 13:38:14 +0200 Subject: [PATCH] update dependencies (#236) Automated changes by [create-pull-request](https://github.com/peter-evans/create-pull-request) GitHub action Co-authored-by: kbJeff-8 --- .../vk_video/vulkan_video_codec_h264std.h | 2 + third_party/vulkan/vulkan.cppm | 25 ++-- third_party/vulkan/vulkan.hpp | 131 +++++++++++++++++- third_party/vulkan/vulkan_core.h | 58 +++++++- .../vulkan/vulkan_extension_inspection.hpp | 17 +-- third_party/vulkan/vulkan_funcs.hpp | 97 +++++++++++++ third_party/vulkan/vulkan_handles.hpp | 54 ++++++++ third_party/vulkan/vulkan_raii.hpp | 120 ++++++++++++++++ third_party/vulkan/vulkan_video.cppm | 14 +- 9 files changed, 487 insertions(+), 31 deletions(-) diff --git a/third_party/vk_video/vulkan_video_codec_h264std.h b/third_party/vk_video/vulkan_video_codec_h264std.h index 3db81af..2ae8932 100644 --- a/third_party/vk_video/vulkan_video_codec_h264std.h +++ b/third_party/vk_video/vulkan_video_codec_h264std.h @@ -44,6 +44,8 @@ typedef enum StdVideoH264ProfileIdc { STD_VIDEO_H264_PROFILE_IDC_BASELINE = 66, STD_VIDEO_H264_PROFILE_IDC_MAIN = 77, STD_VIDEO_H264_PROFILE_IDC_HIGH = 100, + STD_VIDEO_H264_PROFILE_IDC_HIGH_10 = 110, + STD_VIDEO_H264_PROFILE_IDC_HIGH_422 = 122, STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE = 244, STD_VIDEO_H264_PROFILE_IDC_INVALID = 0x7FFFFFFF, STD_VIDEO_H264_PROFILE_IDC_MAX_ENUM = 0x7FFFFFFF diff --git a/third_party/vulkan/vulkan.cppm b/third_party/vulkan/vulkan.cppm index f6e1f30..ca23cd1 100644 --- a/third_party/vulkan/vulkan.cppm +++ b/third_party/vulkan/vulkan.cppm @@ -26,14 +26,14 @@ export module vulkan; export import std; -VULKAN_HPP_STATIC_ASSERT( VK_HEADER_VERSION == 356, "Wrong VK_HEADER_VERSION!" ); +VULKAN_HPP_STATIC_ASSERT( VK_HEADER_VERSION == 357, "Wrong VK_HEADER_VERSION!" ); -#if defined( _MSC_VER ) -# pragma warning( push ) -# pragma warning( disable : 5244 ) -#elif defined( __clang__ ) +#if defined( __clang__ ) # pragma clang diagnostic push # pragma clang diagnostic ignored "-Winclude-angled-in-module-purview" +#elif defined( _MSC_VER ) +# pragma warning( push ) +# pragma warning( disable : 5244 ) #elif defined( __GNUC__ ) #endif @@ -44,10 +44,10 @@ VULKAN_HPP_STATIC_ASSERT( VK_HEADER_VERSION == 356, "Wrong VK_HEADER_VERSION!" ) #include #include -#if defined( _MSC_VER ) -# pragma warning( pop ) -#elif defined( __clang__ ) +#if defined( __clang__ ) # pragma clang diagnostic pop +#elif defined( _MSC_VER ) +# pragma warning( pop ) #elif defined( __GNUC__ ) #endif @@ -907,6 +907,15 @@ export using ::PFN_vkCmdDispatchTileQCOM; using ::PFN_vkCmdEndPerTileExecutionQCOM; + //=== VK_NV_low_latency === + using ::PFN_vkGetLatencyTimingsLegacyNV; + using ::PFN_vkGetSleepStatusLegacyNV; + using ::PFN_vkLatencySleepLegacyNV; + using ::PFN_vkQueueNotifyOutOfBandLegacyNV; + using ::PFN_vkSetLatencyMarkerLegacyNV; + using ::PFN_vkSetLatencySleepModeLegacyNV; + using ::PFN_vkShutdownLatencyDeviceLegacyNV; + #if defined( VK_USE_PLATFORM_METAL_EXT ) //=== VK_EXT_metal_objects === using ::PFN_vkExportMetalObjectsEXT; diff --git a/third_party/vulkan/vulkan.hpp b/third_party/vulkan/vulkan.hpp index 6c70205..98a5fb3 100644 --- a/third_party/vulkan/vulkan.hpp +++ b/third_party/vulkan/vulkan.hpp @@ -36,7 +36,7 @@ # endif #endif -VULKAN_HPP_STATIC_ASSERT( VK_HEADER_VERSION == 356, "Wrong VK_HEADER_VERSION!" ); +VULKAN_HPP_STATIC_ASSERT( VK_HEADER_VERSION == 357, "Wrong VK_HEADER_VERSION!" ); VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE { @@ -1694,6 +1694,7 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE DECLARE_IS_DISPATCHED( vkGetImageViewHandleNVX ) DECLARE_IS_DISPATCHED( vkGetImageViewOpaqueCaptureDescriptorDataEXT ) DECLARE_IS_DISPATCHED( vkGetInstanceProcAddr ) + DECLARE_IS_DISPATCHED( vkGetLatencyTimingsLegacyNV ) DECLARE_IS_DISPATCHED( vkGetLatencyTimingsNV ) DECLARE_IS_DISPATCHED( vkGetMemoryAndroidHardwareBufferANDROID ) DECLARE_IS_DISPATCHED( vkGetMemoryFdKHR ) @@ -1825,6 +1826,7 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE DECLARE_IS_DISPATCHED( vkGetShaderInstrumentationValuesARM ) DECLARE_IS_DISPATCHED( vkGetShaderModuleCreateInfoIdentifierEXT ) DECLARE_IS_DISPATCHED( vkGetShaderModuleIdentifierEXT ) + DECLARE_IS_DISPATCHED( vkGetSleepStatusLegacyNV ) DECLARE_IS_DISPATCHED( vkGetSwapchainCounterEXT ) DECLARE_IS_DISPATCHED( vkGetSwapchainGrallocUsage2ANDROID ) DECLARE_IS_DISPATCHED( vkGetSwapchainGrallocUsageANDROID ) @@ -1850,6 +1852,7 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE DECLARE_IS_DISPATCHED( vkImportSemaphoreZirconHandleFUCHSIA ) DECLARE_IS_DISPATCHED( vkInitializePerformanceApiINTEL ) DECLARE_IS_DISPATCHED( vkInvalidateMappedMemoryRanges ) + DECLARE_IS_DISPATCHED( vkLatencySleepLegacyNV ) DECLARE_IS_DISPATCHED( vkLatencySleepNV ) DECLARE_IS_DISPATCHED( vkMapMemory ) DECLARE_IS_DISPATCHED( vkMapMemory2 ) @@ -1860,6 +1863,7 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE DECLARE_IS_DISPATCHED( vkQueueBindSparse ) DECLARE_IS_DISPATCHED( vkQueueEndDebugUtilsLabelEXT ) DECLARE_IS_DISPATCHED( vkQueueInsertDebugUtilsLabelEXT ) + DECLARE_IS_DISPATCHED( vkQueueNotifyOutOfBandLegacyNV ) DECLARE_IS_DISPATCHED( vkQueueNotifyOutOfBandNV ) DECLARE_IS_DISPATCHED( vkQueuePresentKHR ) DECLARE_IS_DISPATCHED( vkQueueSetPerfHintQCOM ) @@ -1896,12 +1900,15 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE DECLARE_IS_DISPATCHED( vkSetEvent ) DECLARE_IS_DISPATCHED( vkSetGpaDeviceClockModeAMD ) DECLARE_IS_DISPATCHED( vkSetHdrMetadataEXT ) + DECLARE_IS_DISPATCHED( vkSetLatencyMarkerLegacyNV ) DECLARE_IS_DISPATCHED( vkSetLatencyMarkerNV ) + DECLARE_IS_DISPATCHED( vkSetLatencySleepModeLegacyNV ) DECLARE_IS_DISPATCHED( vkSetLatencySleepModeNV ) DECLARE_IS_DISPATCHED( vkSetLocalDimmingAMD ) DECLARE_IS_DISPATCHED( vkSetPrivateData ) DECLARE_IS_DISPATCHED( vkSetPrivateDataEXT ) DECLARE_IS_DISPATCHED( vkSetSwapchainPresentTimingQueueSizeEXT ) + DECLARE_IS_DISPATCHED( vkShutdownLatencyDeviceLegacyNV ) DECLARE_IS_DISPATCHED( vkSignalSemaphore ) DECLARE_IS_DISPATCHED( vkSignalSemaphoreKHR ) DECLARE_IS_DISPATCHED( vkSubmitDebugUtilsMessageEXT ) @@ -6261,6 +6268,46 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE return ::vkCmdEndPerTileExecutionQCOM( commandBuffer, pPerTileEndInfo ); } + //=== VK_NV_low_latency === + + VULKAN_HPP_INLINE void vkSetLatencySleepModeLegacyNV( VkDevice device, + VkBool32 lowLatencyMode, + VkBool32 lowLatencyBoost, + uint32_t minimumIntervalUs ) const VULKAN_HPP_NOEXCEPT + { + return ::vkSetLatencySleepModeLegacyNV( device, lowLatencyMode, lowLatencyBoost, minimumIntervalUs ); + } + + VULKAN_HPP_INLINE void vkLatencySleepLegacyNV( VkDevice device, VkSemaphore signalSemaphore, uint64_t value ) const VULKAN_HPP_NOEXCEPT + { + return ::vkLatencySleepLegacyNV( device, signalSemaphore, value ); + } + + VULKAN_HPP_INLINE void vkSetLatencyMarkerLegacyNV( VkDevice device, uint64_t frameID, uint32_t marker ) const VULKAN_HPP_NOEXCEPT + { + return ::vkSetLatencyMarkerLegacyNV( device, frameID, marker ); + } + + VULKAN_HPP_INLINE void vkGetLatencyTimingsLegacyNV( VkDevice device, void * pTimings ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetLatencyTimingsLegacyNV( device, pTimings ); + } + + VULKAN_HPP_INLINE void vkQueueNotifyOutOfBandLegacyNV( VkQueue queue, uint32_t queueType ) const VULKAN_HPP_NOEXCEPT + { + return ::vkQueueNotifyOutOfBandLegacyNV( queue, queueType ); + } + + VULKAN_HPP_INLINE void vkGetSleepStatusLegacyNV( VkDevice device, VkBool32 * pLowLatencyMode ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetSleepStatusLegacyNV( device, pLowLatencyMode ); + } + + VULKAN_HPP_INLINE void vkShutdownLatencyDeviceLegacyNV( VkDevice device ) const VULKAN_HPP_NOEXCEPT + { + return ::vkShutdownLatencyDeviceLegacyNV( device ); + } + # if defined( VK_USE_PLATFORM_METAL_EXT ) //=== VK_EXT_metal_objects === @@ -9257,6 +9304,9 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE //=== VK_KHR_video_decode_vp9 === VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxVideoVp9ReferencesPerFrameKHR = VK_MAX_VIDEO_VP9_REFERENCES_PER_FRAME_KHR; + //=== VK_ARM_tensor_controls === + VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxTensorCreateInfoRollingBackingWrapCountARM = VK_MAX_TENSOR_CREATE_INFO_ROLLING_BACKING_WRAP_COUNT_ARM; + //=== VK_NV_partitioned_acceleration_structure === VULKAN_HPP_CONSTEXPR_INLINE uint32_t PartitionedAccelerationStructurePartitionIndexGlobalNV = VK_PARTITIONED_ACCELERATION_STRUCTURE_PARTITION_INDEX_GLOBAL_NV; @@ -10455,7 +10505,9 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_CONSTEXPR_INLINE auto QCOMTileShadingExtensionName = VK_QCOM_TILE_SHADING_EXTENSION_NAME; //=== VK_NV_low_latency === - VULKAN_HPP_CONSTEXPR_INLINE auto NVLowLatencySpecVersion = VK_NV_LOW_LATENCY_SPEC_VERSION; + VULKAN_HPP_DEPRECATED( "The VK_NV_low_latency extension has been deprecated by VK_NV_low_latency2." ) + VULKAN_HPP_CONSTEXPR_INLINE auto NVLowLatencySpecVersion = VK_NV_LOW_LATENCY_SPEC_VERSION; + VULKAN_HPP_DEPRECATED( "The VK_NV_low_latency extension has been deprecated by VK_NV_low_latency2." ) VULKAN_HPP_CONSTEXPR_INLINE auto NVLowLatencyExtensionName = VK_NV_LOW_LATENCY_EXTENSION_NAME; #if defined( VK_USE_PLATFORM_METAL_EXT ) @@ -15949,6 +16001,42 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE }; }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + //=== VK_KHR_present_wait === template <> struct StructExtends @@ -23946,6 +24034,15 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE PFN_vkCmdBeginPerTileExecutionQCOM vkCmdBeginPerTileExecutionQCOM = 0; PFN_vkCmdEndPerTileExecutionQCOM vkCmdEndPerTileExecutionQCOM = 0; + //=== VK_NV_low_latency === + PFN_vkSetLatencySleepModeLegacyNV vkSetLatencySleepModeLegacyNV = 0; + PFN_vkLatencySleepLegacyNV vkLatencySleepLegacyNV = 0; + PFN_vkSetLatencyMarkerLegacyNV vkSetLatencyMarkerLegacyNV = 0; + PFN_vkGetLatencyTimingsLegacyNV vkGetLatencyTimingsLegacyNV = 0; + PFN_vkQueueNotifyOutOfBandLegacyNV vkQueueNotifyOutOfBandLegacyNV = 0; + PFN_vkGetSleepStatusLegacyNV vkGetSleepStatusLegacyNV = 0; + PFN_vkShutdownLatencyDeviceLegacyNV vkShutdownLatencyDeviceLegacyNV = 0; + #if defined( VK_USE_PLATFORM_METAL_EXT ) //=== VK_EXT_metal_objects === PFN_vkExportMetalObjectsEXT vkExportMetalObjectsEXT = 0; @@ -24420,10 +24517,14 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE } // This interface does not require a linked vulkan library. - DispatchLoaderDynamic( VkInstance instance, - PFN_vkGetInstanceProcAddr getInstanceProcAddr, - VkDevice device = {}, - PFN_vkGetDeviceProcAddr getDeviceProcAddr = nullptr ) VULKAN_HPP_NOEXCEPT + DispatchLoaderDynamic( VkInstance instance, PFN_vkGetInstanceProcAddr getInstanceProcAddr ) VULKAN_HPP_NOEXCEPT + { + init( instance, getInstanceProcAddr ); + } + + // This interface does not require a linked vulkan library. + DispatchLoaderDynamic( VkInstance instance, PFN_vkGetInstanceProcAddr getInstanceProcAddr, VkDevice device, PFN_vkGetDeviceProcAddr getDeviceProcAddr ) + VULKAN_HPP_NOEXCEPT { init( instance, getInstanceProcAddr, device, getDeviceProcAddr ); } @@ -25598,6 +25699,15 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE vkCmdBeginPerTileExecutionQCOM = PFN_vkCmdBeginPerTileExecutionQCOM( vkGetInstanceProcAddr( instance, "vkCmdBeginPerTileExecutionQCOM" ) ); vkCmdEndPerTileExecutionQCOM = PFN_vkCmdEndPerTileExecutionQCOM( vkGetInstanceProcAddr( instance, "vkCmdEndPerTileExecutionQCOM" ) ); + //=== VK_NV_low_latency === + vkSetLatencySleepModeLegacyNV = PFN_vkSetLatencySleepModeLegacyNV( vkGetInstanceProcAddr( instance, "vkSetLatencySleepModeLegacyNV" ) ); + vkLatencySleepLegacyNV = PFN_vkLatencySleepLegacyNV( vkGetInstanceProcAddr( instance, "vkLatencySleepLegacyNV" ) ); + vkSetLatencyMarkerLegacyNV = PFN_vkSetLatencyMarkerLegacyNV( vkGetInstanceProcAddr( instance, "vkSetLatencyMarkerLegacyNV" ) ); + vkGetLatencyTimingsLegacyNV = PFN_vkGetLatencyTimingsLegacyNV( vkGetInstanceProcAddr( instance, "vkGetLatencyTimingsLegacyNV" ) ); + vkQueueNotifyOutOfBandLegacyNV = PFN_vkQueueNotifyOutOfBandLegacyNV( vkGetInstanceProcAddr( instance, "vkQueueNotifyOutOfBandLegacyNV" ) ); + vkGetSleepStatusLegacyNV = PFN_vkGetSleepStatusLegacyNV( vkGetInstanceProcAddr( instance, "vkGetSleepStatusLegacyNV" ) ); + vkShutdownLatencyDeviceLegacyNV = PFN_vkShutdownLatencyDeviceLegacyNV( vkGetInstanceProcAddr( instance, "vkShutdownLatencyDeviceLegacyNV" ) ); + #if defined( VK_USE_PLATFORM_METAL_EXT ) //=== VK_EXT_metal_objects === vkExportMetalObjectsEXT = PFN_vkExportMetalObjectsEXT( vkGetInstanceProcAddr( instance, "vkExportMetalObjectsEXT" ) ); @@ -27004,6 +27114,15 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE vkCmdBeginPerTileExecutionQCOM = PFN_vkCmdBeginPerTileExecutionQCOM( vkGetDeviceProcAddr( device, "vkCmdBeginPerTileExecutionQCOM" ) ); vkCmdEndPerTileExecutionQCOM = PFN_vkCmdEndPerTileExecutionQCOM( vkGetDeviceProcAddr( device, "vkCmdEndPerTileExecutionQCOM" ) ); + //=== VK_NV_low_latency === + vkSetLatencySleepModeLegacyNV = PFN_vkSetLatencySleepModeLegacyNV( vkGetDeviceProcAddr( device, "vkSetLatencySleepModeLegacyNV" ) ); + vkLatencySleepLegacyNV = PFN_vkLatencySleepLegacyNV( vkGetDeviceProcAddr( device, "vkLatencySleepLegacyNV" ) ); + vkSetLatencyMarkerLegacyNV = PFN_vkSetLatencyMarkerLegacyNV( vkGetDeviceProcAddr( device, "vkSetLatencyMarkerLegacyNV" ) ); + vkGetLatencyTimingsLegacyNV = PFN_vkGetLatencyTimingsLegacyNV( vkGetDeviceProcAddr( device, "vkGetLatencyTimingsLegacyNV" ) ); + vkQueueNotifyOutOfBandLegacyNV = PFN_vkQueueNotifyOutOfBandLegacyNV( vkGetDeviceProcAddr( device, "vkQueueNotifyOutOfBandLegacyNV" ) ); + vkGetSleepStatusLegacyNV = PFN_vkGetSleepStatusLegacyNV( vkGetDeviceProcAddr( device, "vkGetSleepStatusLegacyNV" ) ); + vkShutdownLatencyDeviceLegacyNV = PFN_vkShutdownLatencyDeviceLegacyNV( vkGetDeviceProcAddr( device, "vkShutdownLatencyDeviceLegacyNV" ) ); + #if defined( VK_USE_PLATFORM_METAL_EXT ) //=== VK_EXT_metal_objects === vkExportMetalObjectsEXT = PFN_vkExportMetalObjectsEXT( vkGetDeviceProcAddr( device, "vkExportMetalObjectsEXT" ) ); diff --git a/third_party/vulkan/vulkan_core.h b/third_party/vulkan/vulkan_core.h index 913006e..64b8803 100644 --- a/third_party/vulkan/vulkan_core.h +++ b/third_party/vulkan/vulkan_core.h @@ -66,7 +66,7 @@ extern "C" { //#define VK_API_VERSION VK_MAKE_API_VERSION(0, 1, 0, 0) // Patch version should always be set to 0 // Version of this file -#define VK_HEADER_VERSION 356 +#define VK_HEADER_VERSION 357 // Complete version of this file #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 4, VK_HEADER_VERSION) @@ -20332,7 +20332,7 @@ VKAPI_ATTR void VKAPI_CALL vkCmdEndPerTileExecutionQCOM( // VK_NV_low_latency is a preprocessor guard. Do not pass it to API calls. #define VK_NV_low_latency 1 -#define VK_NV_LOW_LATENCY_SPEC_VERSION 1 +#define VK_NV_LOW_LATENCY_SPEC_VERSION 2 #define VK_NV_LOW_LATENCY_EXTENSION_NAME "VK_NV_low_latency" typedef struct VkQueryLowLatencySupportNV { VkStructureType sType; @@ -20340,6 +20340,60 @@ typedef struct VkQueryLowLatencySupportNV { void* pQueriedLowLatencyData; } VkQueryLowLatencySupportNV; +typedef void (VKAPI_PTR *PFN_vkSetLatencySleepModeLegacyNV)(VkDevice device, VkBool32 lowLatencyMode, VkBool32 lowLatencyBoost, uint32_t minimumIntervalUs); +typedef void (VKAPI_PTR *PFN_vkLatencySleepLegacyNV)(VkDevice device, VkSemaphore signalSemaphore, uint64_t value); +typedef void (VKAPI_PTR *PFN_vkSetLatencyMarkerLegacyNV)(VkDevice device, uint64_t frameID, uint32_t marker); +typedef void (VKAPI_PTR *PFN_vkGetLatencyTimingsLegacyNV)(VkDevice device, void* pTimings); +typedef void (VKAPI_PTR *PFN_vkQueueNotifyOutOfBandLegacyNV)(VkQueue queue, uint32_t queueType); +typedef void (VKAPI_PTR *PFN_vkGetSleepStatusLegacyNV)(VkDevice device, VkBool32* pLowLatencyMode); +typedef void (VKAPI_PTR *PFN_vkShutdownLatencyDeviceLegacyNV)(VkDevice device); + +#ifndef VK_NO_PROTOTYPES +#ifndef VK_ONLY_EXPORTED_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkSetLatencySleepModeLegacyNV( + VkDevice device, + VkBool32 lowLatencyMode, + VkBool32 lowLatencyBoost, + uint32_t minimumIntervalUs); +#endif + +#ifndef VK_ONLY_EXPORTED_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkLatencySleepLegacyNV( + VkDevice device, + VkSemaphore signalSemaphore, + uint64_t value); +#endif + +#ifndef VK_ONLY_EXPORTED_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkSetLatencyMarkerLegacyNV( + VkDevice device, + uint64_t frameID, + uint32_t marker); +#endif + +#ifndef VK_ONLY_EXPORTED_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkGetLatencyTimingsLegacyNV( + VkDevice device, + void* pTimings); +#endif + +#ifndef VK_ONLY_EXPORTED_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkQueueNotifyOutOfBandLegacyNV( + VkQueue queue, + uint32_t queueType); +#endif + +#ifndef VK_ONLY_EXPORTED_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkGetSleepStatusLegacyNV( + VkDevice device, + VkBool32* pLowLatencyMode); +#endif + +#ifndef VK_ONLY_EXPORTED_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkShutdownLatencyDeviceLegacyNV( + VkDevice device); +#endif +#endif // VK_EXT_descriptor_buffer is a preprocessor guard. Do not pass it to API calls. diff --git a/third_party/vulkan/vulkan_extension_inspection.hpp b/third_party/vulkan/vulkan_extension_inspection.hpp index 5293969..8322188 100644 --- a/third_party/vulkan/vulkan_extension_inspection.hpp +++ b/third_party/vulkan/vulkan_extension_inspection.hpp @@ -72,6 +72,7 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE { "VK_NV_ray_tracing", "VK_KHR_ray_tracing_pipeline" }, { "VK_EXT_buffer_device_address", "VK_KHR_buffer_device_address" }, { "VK_EXT_validation_features", "VK_EXT_layer_settings" }, + { "VK_NV_low_latency", "VK_NV_low_latency2" }, { "VK_EXT_descriptor_buffer", "VK_EXT_descriptor_heap" }, #if defined( VK_ENABLE_BETA_EXTENSIONS ) { "VK_NV_displacement_micromap", "VK_NV_cluster_acceleration_structure" }, @@ -3281,13 +3282,9 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE } } }, { "VK_VERSION_1_1", { { - "VK_KHR_shader_float16_int8", - }, - {} } }, - { "VK_VERSION_1_2", - { { - "VK_KHR_get_physical_device_properties2", - } } } } }, + "VK_KHR_shader_float16_int8", + } } }, + { "VK_VERSION_1_2", { {} } } } }, { "VK_EXT_primitive_restart_index", { { "VK_VERSION_1_0", { { @@ -3537,6 +3534,10 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE { return "VK_EXT_layer_settings"; } + if ( extension == "VK_NV_low_latency" ) + { + return "VK_NV_low_latency2"; + } if ( extension == "VK_EXT_descriptor_buffer" ) { return "VK_EXT_descriptor_heap"; @@ -4042,7 +4043,7 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE || ( extension == "VK_MVK_macos_surface" ) #endif /*VK_USE_PLATFORM_MACOS_MVK*/ || ( extension == "VK_AMD_gpu_shader_int16" ) || ( extension == "VK_NV_ray_tracing" ) || ( extension == "VK_EXT_buffer_device_address" ) || - ( extension == "VK_EXT_validation_features" ) || ( extension == "VK_EXT_descriptor_buffer" ) + ( extension == "VK_EXT_validation_features" ) || ( extension == "VK_NV_low_latency" ) || ( extension == "VK_EXT_descriptor_buffer" ) #if defined( VK_ENABLE_BETA_EXTENSIONS ) || ( extension == "VK_NV_displacement_micromap" ) #endif /*VK_ENABLE_BETA_EXTENSIONS*/ diff --git a/third_party/vulkan/vulkan_funcs.hpp b/third_party/vulkan/vulkan_funcs.hpp index b43d51a..5f7c8d1 100644 --- a/third_party/vulkan/vulkan_funcs.hpp +++ b/third_party/vulkan/vulkan_funcs.hpp @@ -24167,6 +24167,103 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE } #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + //=== VK_NV_low_latency === + + // wrapper function for command vkSetLatencySleepModeLegacyNV, see + // https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetLatencySleepModeLegacyNV.html + template ::type> + VULKAN_HPP_INLINE void Device::setLatencySleepModeLegacyNV( Bool32 lowLatencyMode, Bool32 lowLatencyBoost, uint32_t minimumIntervalUs, Dispatch const & d ) + const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + d.vkSetLatencySleepModeLegacyNV( + static_cast( m_device ), static_cast( lowLatencyMode ), static_cast( lowLatencyBoost ), minimumIntervalUs ); + } + + // wrapper function for command vkLatencySleepLegacyNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkLatencySleepLegacyNV.html + template ::type> + VULKAN_HPP_INLINE void Device::latencySleepLegacyNV( Semaphore signalSemaphore, uint64_t value, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + d.vkLatencySleepLegacyNV( static_cast( m_device ), static_cast( signalSemaphore ), value ); + } + + // wrapper function for command vkSetLatencyMarkerLegacyNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetLatencyMarkerLegacyNV.html + template ::type> + VULKAN_HPP_INLINE void Device::setLatencyMarkerLegacyNV( uint64_t frameID, uint32_t marker, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + d.vkSetLatencyMarkerLegacyNV( static_cast( m_device ), frameID, marker ); + } + + // wrapper function for command vkGetLatencyTimingsLegacyNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetLatencyTimingsLegacyNV.html + template ::type> + VULKAN_HPP_INLINE void Device::getLatencyTimingsLegacyNV( void * pTimings, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + d.vkGetLatencyTimingsLegacyNV( static_cast( m_device ), pTimings ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + // wrapper function for command vkGetLatencyTimingsLegacyNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetLatencyTimingsLegacyNV.html + template ::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE TimingsType Device::getLatencyTimingsLegacyNV( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); +# if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 ) + VULKAN_HPP_ASSERT( d.vkGetLatencyTimingsLegacyNV && "Function requires " ); +# endif + + TimingsType timings; + d.vkGetLatencyTimingsLegacyNV( m_device, &timings ); + + return timings; + } +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + // wrapper function for command vkQueueNotifyOutOfBandLegacyNV, see + // https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueNotifyOutOfBandLegacyNV.html + template ::type> + VULKAN_HPP_INLINE void Queue::notifyOutOfBandLegacyNV( uint32_t queueType, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + d.vkQueueNotifyOutOfBandLegacyNV( static_cast( m_queue ), queueType ); + } + + // wrapper function for command vkGetSleepStatusLegacyNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSleepStatusLegacyNV.html + template ::type> + VULKAN_HPP_INLINE void Device::getSleepStatusLegacyNV( Bool32 * pLowLatencyMode, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + d.vkGetSleepStatusLegacyNV( static_cast( m_device ), reinterpret_cast( pLowLatencyMode ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + // wrapper function for command vkGetSleepStatusLegacyNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSleepStatusLegacyNV.html + template ::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Bool32 Device::getSleepStatusLegacyNV( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); +# if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 ) + VULKAN_HPP_ASSERT( d.vkGetSleepStatusLegacyNV && "Function requires " ); +# endif + + Bool32 lowLatencyMode; + d.vkGetSleepStatusLegacyNV( m_device, reinterpret_cast( &lowLatencyMode ) ); + + return lowLatencyMode; + } +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + // wrapper function for command vkShutdownLatencyDeviceLegacyNV, see + // https://registry.khronos.org/vulkan/specs/latest/man/html/vkShutdownLatencyDeviceLegacyNV.html + template ::type> + VULKAN_HPP_INLINE void Device::shutdownLatencyLegacyNV( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + d.vkShutdownLatencyDeviceLegacyNV( static_cast( m_device ) ); + } + #if defined( VK_USE_PLATFORM_METAL_EXT ) //=== VK_EXT_metal_objects === diff --git a/third_party/vulkan/vulkan_handles.hpp b/third_party/vulkan/vulkan_handles.hpp index 3b7203f..0c5bbf3 100644 --- a/third_party/vulkan/vulkan_handles.hpp +++ b/third_party/vulkan/vulkan_handles.hpp @@ -12066,6 +12066,14 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE setPerfHintQCOM( PerfHintInfoQCOM const & perfHintInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + //=== VK_NV_low_latency === + + // wrapper function for command vkQueueNotifyOutOfBandLegacyNV, see + // https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueNotifyOutOfBandLegacyNV.html + template ::type = true> + void notifyOutOfBandLegacyNV( uint32_t queueType, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + //=== VK_KHR_synchronization2 === // wrapper function for command vkQueueSubmit2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueSubmit2KHR.html @@ -17948,6 +17956,52 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE # endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ #endif /*VK_ENABLE_BETA_EXTENSIONS*/ + //=== VK_NV_low_latency === + + // wrapper function for command vkSetLatencySleepModeLegacyNV, see + // https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetLatencySleepModeLegacyNV.html + template ::type = true> + void setLatencySleepModeLegacyNV( Bool32 lowLatencyMode, + Bool32 lowLatencyBoost, + uint32_t minimumIntervalUs, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + // wrapper function for command vkLatencySleepLegacyNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkLatencySleepLegacyNV.html + template ::type = true> + void + latencySleepLegacyNV( Semaphore signalSemaphore, uint64_t value, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + // wrapper function for command vkSetLatencyMarkerLegacyNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetLatencyMarkerLegacyNV.html + template ::type = true> + void setLatencyMarkerLegacyNV( uint64_t frameID, uint32_t marker, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + // wrapper function for command vkGetLatencyTimingsLegacyNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetLatencyTimingsLegacyNV.html + template ::type = true> + void getLatencyTimingsLegacyNV( void * pTimings, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + // wrapper function for command vkGetLatencyTimingsLegacyNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetLatencyTimingsLegacyNV.html + template ::type = true> + VULKAN_HPP_NODISCARD TimingsType getLatencyTimingsLegacyNV( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + // wrapper function for command vkGetSleepStatusLegacyNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSleepStatusLegacyNV.html + template ::type = true> + void getSleepStatusLegacyNV( Bool32 * pLowLatencyMode, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + // wrapper function for command vkGetSleepStatusLegacyNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSleepStatusLegacyNV.html + template ::type = true> + VULKAN_HPP_NODISCARD Bool32 getSleepStatusLegacyNV( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + // wrapper function for command vkShutdownLatencyDeviceLegacyNV, see + // https://registry.khronos.org/vulkan/specs/latest/man/html/vkShutdownLatencyDeviceLegacyNV.html + template ::type = true> + void shutdownLatencyLegacyNV( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + #if defined( VK_USE_PLATFORM_METAL_EXT ) //=== VK_EXT_metal_objects === diff --git a/third_party/vulkan/vulkan_raii.hpp b/third_party/vulkan/vulkan_raii.hpp index 5533056..933b6f2 100644 --- a/third_party/vulkan/vulkan_raii.hpp +++ b/third_party/vulkan/vulkan_raii.hpp @@ -1592,6 +1592,15 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE vkCmdBeginPerTileExecutionQCOM = PFN_vkCmdBeginPerTileExecutionQCOM( vkGetDeviceProcAddr( device, "vkCmdBeginPerTileExecutionQCOM" ) ); vkCmdEndPerTileExecutionQCOM = PFN_vkCmdEndPerTileExecutionQCOM( vkGetDeviceProcAddr( device, "vkCmdEndPerTileExecutionQCOM" ) ); + //=== VK_NV_low_latency === + vkSetLatencySleepModeLegacyNV = PFN_vkSetLatencySleepModeLegacyNV( vkGetDeviceProcAddr( device, "vkSetLatencySleepModeLegacyNV" ) ); + vkLatencySleepLegacyNV = PFN_vkLatencySleepLegacyNV( vkGetDeviceProcAddr( device, "vkLatencySleepLegacyNV" ) ); + vkSetLatencyMarkerLegacyNV = PFN_vkSetLatencyMarkerLegacyNV( vkGetDeviceProcAddr( device, "vkSetLatencyMarkerLegacyNV" ) ); + vkGetLatencyTimingsLegacyNV = PFN_vkGetLatencyTimingsLegacyNV( vkGetDeviceProcAddr( device, "vkGetLatencyTimingsLegacyNV" ) ); + vkQueueNotifyOutOfBandLegacyNV = PFN_vkQueueNotifyOutOfBandLegacyNV( vkGetDeviceProcAddr( device, "vkQueueNotifyOutOfBandLegacyNV" ) ); + vkGetSleepStatusLegacyNV = PFN_vkGetSleepStatusLegacyNV( vkGetDeviceProcAddr( device, "vkGetSleepStatusLegacyNV" ) ); + vkShutdownLatencyDeviceLegacyNV = PFN_vkShutdownLatencyDeviceLegacyNV( vkGetDeviceProcAddr( device, "vkShutdownLatencyDeviceLegacyNV" ) ); + # if defined( VK_USE_PLATFORM_METAL_EXT ) //=== VK_EXT_metal_objects === vkExportMetalObjectsEXT = PFN_vkExportMetalObjectsEXT( vkGetDeviceProcAddr( device, "vkExportMetalObjectsEXT" ) ); @@ -2772,6 +2781,15 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE PFN_vkCmdBeginPerTileExecutionQCOM vkCmdBeginPerTileExecutionQCOM = 0; PFN_vkCmdEndPerTileExecutionQCOM vkCmdEndPerTileExecutionQCOM = 0; + //=== VK_NV_low_latency === + PFN_vkSetLatencySleepModeLegacyNV vkSetLatencySleepModeLegacyNV = 0; + PFN_vkLatencySleepLegacyNV vkLatencySleepLegacyNV = 0; + PFN_vkSetLatencyMarkerLegacyNV vkSetLatencyMarkerLegacyNV = 0; + PFN_vkGetLatencyTimingsLegacyNV vkGetLatencyTimingsLegacyNV = 0; + PFN_vkQueueNotifyOutOfBandLegacyNV vkQueueNotifyOutOfBandLegacyNV = 0; + PFN_vkGetSleepStatusLegacyNV vkGetSleepStatusLegacyNV = 0; + PFN_vkShutdownLatencyDeviceLegacyNV vkShutdownLatencyDeviceLegacyNV = 0; + # if defined( VK_USE_PLATFORM_METAL_EXT ) //=== VK_EXT_metal_objects === PFN_vkExportMetalObjectsEXT vkExportMetalObjectsEXT = 0; @@ -5541,6 +5559,27 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; # endif /*VK_ENABLE_BETA_EXTENSIONS*/ + //=== VK_NV_low_latency === + + // wrapper function for command vkSetLatencySleepModeLegacyNV, see + // https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetLatencySleepModeLegacyNV.html + void setLatencySleepModeLegacyNV( Bool32 lowLatencyMode, Bool32 lowLatencyBoost, uint32_t minimumIntervalUs ) const VULKAN_HPP_NOEXCEPT; + + // wrapper function for command vkSetLatencyMarkerLegacyNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetLatencyMarkerLegacyNV.html + void setLatencyMarkerLegacyNV( uint64_t frameID, uint32_t marker ) const VULKAN_HPP_NOEXCEPT; + + // wrapper function for command vkGetLatencyTimingsLegacyNV, see + // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetLatencyTimingsLegacyNV.html + template + VULKAN_HPP_NODISCARD TimingsType getLatencyTimingsLegacyNV() const VULKAN_HPP_NOEXCEPT; + + // wrapper function for command vkGetSleepStatusLegacyNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSleepStatusLegacyNV.html + VULKAN_HPP_NODISCARD Bool32 getSleepStatusLegacyNV() const VULKAN_HPP_NOEXCEPT; + + // wrapper function for command vkShutdownLatencyDeviceLegacyNV, see + // https://registry.khronos.org/vulkan/specs/latest/man/html/vkShutdownLatencyDeviceLegacyNV.html + void shutdownLatencyLegacyNV() const VULKAN_HPP_NOEXCEPT; + # if defined( VK_USE_PLATFORM_METAL_EXT ) //=== VK_EXT_metal_objects === @@ -13638,6 +13677,12 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkQueueSetPerfHintQCOM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueSetPerfHintQCOM.html typename ResultValueType::type setPerfHintQCOM( PerfHintInfoQCOM const & perfHintInfo ) const; + //=== VK_NV_low_latency === + + // wrapper function for command vkQueueNotifyOutOfBandLegacyNV, see + // https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueNotifyOutOfBandLegacyNV.html + void notifyOutOfBandLegacyNV( uint32_t queueType ) const VULKAN_HPP_NOEXCEPT; + //=== VK_KHR_synchronization2 === // wrapper function for command vkQueueSubmit2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueSubmit2KHR.html @@ -14180,6 +14225,11 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSemaphoreCounterValueKHR.html VULKAN_HPP_NODISCARD typename ResultValueType::type getCounterValueKHR() const; + //=== VK_NV_low_latency === + + // wrapper function for command vkLatencySleepLegacyNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkLatencySleepLegacyNV.html + void latencySleepLegacyNV( uint64_t value ) const VULKAN_HPP_NOEXCEPT; + private: VULKAN_HPP_NAMESPACE::Device m_device = {}; VULKAN_HPP_NAMESPACE::Semaphore m_semaphore = {}; @@ -25876,6 +25926,76 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE reinterpret_cast( &perTileEndInfo ) ); } + //=== VK_NV_low_latency === + + // wrapper function for command vkSetLatencySleepModeLegacyNV, see + // https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetLatencySleepModeLegacyNV.html + VULKAN_HPP_INLINE void + Device::setLatencySleepModeLegacyNV( Bool32 lowLatencyMode, Bool32 lowLatencyBoost, uint32_t minimumIntervalUs ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( getDispatcher()->vkSetLatencySleepModeLegacyNV && "Function requires " ); + + getDispatcher()->vkSetLatencySleepModeLegacyNV( + static_cast( m_device ), static_cast( lowLatencyMode ), static_cast( lowLatencyBoost ), minimumIntervalUs ); + } + + // wrapper function for command vkLatencySleepLegacyNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkLatencySleepLegacyNV.html + VULKAN_HPP_INLINE void Semaphore::latencySleepLegacyNV( uint64_t value ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( getDispatcher()->vkLatencySleepLegacyNV && "Function requires " ); + + getDispatcher()->vkLatencySleepLegacyNV( static_cast( m_device ), static_cast( m_semaphore ), value ); + } + + // wrapper function for command vkSetLatencyMarkerLegacyNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetLatencyMarkerLegacyNV.html + VULKAN_HPP_INLINE void Device::setLatencyMarkerLegacyNV( uint64_t frameID, uint32_t marker ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( getDispatcher()->vkSetLatencyMarkerLegacyNV && "Function requires " ); + + getDispatcher()->vkSetLatencyMarkerLegacyNV( static_cast( m_device ), frameID, marker ); + } + + // wrapper function for command vkGetLatencyTimingsLegacyNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetLatencyTimingsLegacyNV.html + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE TimingsType Device::getLatencyTimingsLegacyNV() const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( getDispatcher()->vkGetLatencyTimingsLegacyNV && "Function requires " ); + + TimingsType timings; + getDispatcher()->vkGetLatencyTimingsLegacyNV( static_cast( m_device ), &timings ); + + return timings; + } + + // wrapper function for command vkQueueNotifyOutOfBandLegacyNV, see + // https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueNotifyOutOfBandLegacyNV.html + VULKAN_HPP_INLINE void Queue::notifyOutOfBandLegacyNV( uint32_t queueType ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( getDispatcher()->vkQueueNotifyOutOfBandLegacyNV && "Function requires " ); + + getDispatcher()->vkQueueNotifyOutOfBandLegacyNV( static_cast( m_queue ), queueType ); + } + + // wrapper function for command vkGetSleepStatusLegacyNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSleepStatusLegacyNV.html + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Bool32 Device::getSleepStatusLegacyNV() const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( getDispatcher()->vkGetSleepStatusLegacyNV && "Function requires " ); + + Bool32 lowLatencyMode; + getDispatcher()->vkGetSleepStatusLegacyNV( static_cast( m_device ), reinterpret_cast( &lowLatencyMode ) ); + + return lowLatencyMode; + } + + // wrapper function for command vkShutdownLatencyDeviceLegacyNV, see + // https://registry.khronos.org/vulkan/specs/latest/man/html/vkShutdownLatencyDeviceLegacyNV.html + VULKAN_HPP_INLINE void Device::shutdownLatencyLegacyNV() const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( getDispatcher()->vkShutdownLatencyDeviceLegacyNV && "Function requires " ); + + getDispatcher()->vkShutdownLatencyDeviceLegacyNV( static_cast( m_device ) ); + } + # if defined( VK_USE_PLATFORM_METAL_EXT ) //=== VK_EXT_metal_objects === diff --git a/third_party/vulkan/vulkan_video.cppm b/third_party/vulkan/vulkan_video.cppm index e03c9b8..8c58f16 100644 --- a/third_party/vulkan/vulkan_video.cppm +++ b/third_party/vulkan/vulkan_video.cppm @@ -53,20 +53,20 @@ export module vulkan_video; import vulkan; -#if defined( _MSC_VER ) -# pragma warning( push ) -# pragma warning( disable : 5244 ) -#elif defined( __clang__ ) +#if defined( __clang__ ) # pragma clang diagnostic push # pragma clang diagnostic ignored "-Winclude-angled-in-module-purview" +#elif defined( _MSC_VER ) +# pragma warning( push ) +# pragma warning( disable : 5244 ) #elif defined( __GNUC__ ) #endif #include -#if defined( _MSC_VER ) -# pragma warning( pop ) -#elif defined( __clang__ ) +#if defined( __clang__ ) # pragma clang diagnostic pop +#elif defined( _MSC_VER ) +# pragma warning( pop ) #elif defined( __GNUC__ ) #endif