mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-07 18:40:30 +00:00
Add HDR Extensions
Add support for VK_AMD_display_native, VK_EXT_full_screen_exclusive, and VK_EXT_hdr_metadata.
This commit is contained in:
@@ -639,6 +639,7 @@ DECLARE_REFLECTION_STRUCT(VkDeviceQueueGlobalPriorityCreateInfoEXT);
|
||||
DECLARE_REFLECTION_STRUCT(VkDeviceQueueInfo2);
|
||||
DECLARE_REFLECTION_STRUCT(VkDisplayEventInfoEXT);
|
||||
DECLARE_REFLECTION_STRUCT(VkDisplayModeProperties2KHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkDisplayNativeHdrSurfaceCapabilitiesAMD);
|
||||
DECLARE_REFLECTION_STRUCT(VkDisplayPlaneCapabilities2KHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkDisplayPlaneInfo2KHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkDisplayPlaneProperties2KHR);
|
||||
@@ -662,6 +663,7 @@ DECLARE_REFLECTION_STRUCT(VkFenceGetFdInfoKHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkFormatProperties2);
|
||||
DECLARE_REFLECTION_STRUCT(VkFramebufferCreateInfo);
|
||||
DECLARE_REFLECTION_STRUCT(VkGraphicsPipelineCreateInfo);
|
||||
DECLARE_REFLECTION_STRUCT(VkHdrMetadataEXT);
|
||||
DECLARE_REFLECTION_STRUCT(VkImageCreateInfo);
|
||||
DECLARE_REFLECTION_STRUCT(VkImageFormatListCreateInfoKHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkImageFormatProperties2);
|
||||
@@ -803,11 +805,13 @@ DECLARE_REFLECTION_STRUCT(VkSurfaceCapabilities2KHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkSurfaceFormat2KHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkSwapchainCounterCreateInfoEXT);
|
||||
DECLARE_REFLECTION_STRUCT(VkSwapchainCreateInfoKHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkSwapchainDisplayNativeHdrCreateInfoAMD);
|
||||
DECLARE_REFLECTION_STRUCT(VkTextureLODGatherFormatPropertiesAMD);
|
||||
DECLARE_REFLECTION_STRUCT(VkValidationCacheCreateInfoEXT);
|
||||
DECLARE_REFLECTION_STRUCT(VkValidationFeaturesEXT);
|
||||
DECLARE_REFLECTION_STRUCT(VkValidationFlagsEXT);
|
||||
DECLARE_REFLECTION_STRUCT(VkWriteDescriptorSet);
|
||||
DECLARE_REFLECTION_STRUCT(VkXYColorEXT);
|
||||
|
||||
DECLARE_DESERIALISE_TYPE(VkAcquireNextImageInfoKHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkApplicationInfo);
|
||||
@@ -869,6 +873,7 @@ DECLARE_DESERIALISE_TYPE(VkDeviceQueueGlobalPriorityCreateInfoEXT);
|
||||
DECLARE_DESERIALISE_TYPE(VkDeviceQueueInfo2);
|
||||
DECLARE_DESERIALISE_TYPE(VkDisplayEventInfoEXT);
|
||||
DECLARE_DESERIALISE_TYPE(VkDisplayModeProperties2KHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkDisplayNativeHdrSurfaceCapabilitiesAMD);
|
||||
DECLARE_DESERIALISE_TYPE(VkDisplayPlaneCapabilities2KHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkDisplayPlaneInfo2KHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkDisplayPlaneProperties2KHR);
|
||||
@@ -1031,6 +1036,7 @@ DECLARE_DESERIALISE_TYPE(VkSurfaceCapabilities2KHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkSurfaceFormat2KHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkSwapchainCounterCreateInfoEXT);
|
||||
DECLARE_DESERIALISE_TYPE(VkSwapchainCreateInfoKHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkSwapchainDisplayNativeHdrCreateInfoAMD);
|
||||
DECLARE_DESERIALISE_TYPE(VkTextureLODGatherFormatPropertiesAMD);
|
||||
DECLARE_DESERIALISE_TYPE(VkValidationCacheCreateInfoEXT);
|
||||
DECLARE_DESERIALISE_TYPE(VkValidationFeaturesEXT);
|
||||
@@ -1135,6 +1141,9 @@ DECLARE_REFLECTION_STRUCT(VkImportSemaphoreWin32HandleInfoKHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkMemoryGetWin32HandleInfoKHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkMemoryWin32HandlePropertiesKHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkSemaphoreGetWin32HandleInfoKHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkSurfaceCapabilitiesFullScreenExclusiveEXT);
|
||||
DECLARE_REFLECTION_STRUCT(VkSurfaceFullScreenExclusiveInfoEXT);
|
||||
DECLARE_REFLECTION_STRUCT(VkSurfaceFullScreenExclusiveWin32InfoEXT);
|
||||
DECLARE_REFLECTION_STRUCT(VkWin32KeyedMutexAcquireReleaseInfoKHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkWin32KeyedMutexAcquireReleaseInfoNV);
|
||||
|
||||
@@ -1151,6 +1160,9 @@ DECLARE_DESERIALISE_TYPE(VkImportSemaphoreWin32HandleInfoKHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkMemoryGetWin32HandleInfoKHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkMemoryWin32HandlePropertiesKHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkSemaphoreGetWin32HandleInfoKHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkSurfaceCapabilitiesFullScreenExclusiveEXT)
|
||||
DECLARE_DESERIALISE_TYPE(VkSurfaceFullScreenExclusiveInfoEXT);
|
||||
DECLARE_DESERIALISE_TYPE(VkSurfaceFullScreenExclusiveWin32InfoEXT);
|
||||
DECLARE_DESERIALISE_TYPE(VkWin32KeyedMutexAcquireReleaseInfoKHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkWin32KeyedMutexAcquireReleaseInfoNV);
|
||||
#endif
|
||||
@@ -1267,4 +1279,9 @@ DECLARE_REFLECTION_ENUM(VkTimeDomainEXT);
|
||||
DECLARE_REFLECTION_ENUM(VkValidationCheckEXT);
|
||||
DECLARE_REFLECTION_ENUM(VkValidationFeatureEnableEXT);
|
||||
DECLARE_REFLECTION_ENUM(VkValidationFeatureDisableEXT);
|
||||
DECLARE_REFLECTION_ENUM(VkVertexInputRate);
|
||||
DECLARE_REFLECTION_ENUM(VkVertexInputRate);
|
||||
|
||||
// win32 only enums
|
||||
#if ENABLED(RDOC_WIN32)
|
||||
DECLARE_REFLECTION_ENUM(VkFullScreenExclusiveEXT);
|
||||
#endif
|
||||
@@ -589,6 +589,9 @@ static const VkExtensionProperties supportedExtensions[] = {
|
||||
{
|
||||
VK_AMD_BUFFER_MARKER_EXTENSION_NAME, VK_AMD_BUFFER_MARKER_SPEC_VERSION,
|
||||
},
|
||||
{
|
||||
VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME, VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION,
|
||||
},
|
||||
{
|
||||
VK_AMD_GCN_SHADER_EXTENSION_NAME, VK_AMD_GCN_SHADER_SPEC_VERSION,
|
||||
},
|
||||
@@ -681,9 +684,17 @@ static const VkExtensionProperties supportedExtensions[] = {
|
||||
{
|
||||
VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION,
|
||||
},
|
||||
#ifdef VK_EXT_full_screen_exclusive
|
||||
{
|
||||
VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME, VK_EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSION,
|
||||
},
|
||||
#endif
|
||||
{
|
||||
VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME, VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION,
|
||||
},
|
||||
{
|
||||
VK_EXT_HDR_METADATA_EXTENSION_NAME, VK_EXT_HDR_METADATA_SPEC_VERSION,
|
||||
},
|
||||
{
|
||||
VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME, VK_EXT_HOST_QUERY_RESET_SPEC_VERSION,
|
||||
},
|
||||
|
||||
@@ -2070,4 +2070,31 @@ public:
|
||||
// VK_EXT_buffer_device_address
|
||||
VkDeviceAddress vkGetBufferDeviceAddressEXT(VkDevice device,
|
||||
const VkBufferDeviceAddressInfoEXT *pInfo);
|
||||
|
||||
// VK_EXT_hdr_metadata
|
||||
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, vkSetHdrMetadataEXT, VkDevice device, uint32_t swapchainCount,
|
||||
const VkSwapchainKHR *pSwapchains, const VkHdrMetadataEXT *pMetadata);
|
||||
|
||||
// VK_AMD_display_native_hdr
|
||||
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, vkSetLocalDimmingAMD, VkDevice device,
|
||||
VkSwapchainKHR swapChain, VkBool32 localDimmingEnable);
|
||||
|
||||
// VK_EXT_full_screen_exclusive
|
||||
|
||||
IMPLEMENT_FUNCTION_SERIALISED(VkResult, vkGetDeviceGroupSurfacePresentModes2EXT, VkDevice device,
|
||||
const VkPhysicalDeviceSurfaceInfo2KHR *pSurfaceInfo,
|
||||
VkDeviceGroupPresentModeFlagsKHR *pModes);
|
||||
|
||||
IMPLEMENT_FUNCTION_SERIALISED(VkResult, vkGetPhysicalDeviceSurfacePresentModes2EXT,
|
||||
VkPhysicalDevice physicalDevice,
|
||||
const VkPhysicalDeviceSurfaceInfo2KHR *pSurfaceInfo,
|
||||
uint32_t *pPresentModeCount, VkPresentModeKHR *pPresentModes);
|
||||
|
||||
IMPLEMENT_FUNCTION_SERIALISED(VkResult, vkAcquireFullScreenExclusiveModeEXT, VkDevice device,
|
||||
VkSwapchainKHR swapchain);
|
||||
|
||||
IMPLEMENT_FUNCTION_SERIALISED(VkResult, vkReleaseFullScreenExclusiveModeEXT, VkDevice device,
|
||||
VkSwapchainKHR swapchain);
|
||||
};
|
||||
|
||||
@@ -35,9 +35,10 @@
|
||||
|
||||
#if defined(VK_USE_PLATFORM_WIN32_KHR)
|
||||
|
||||
#define HookInitInstance_PlatformSpecific() \
|
||||
HookInitExtension(VK_KHR_win32_surface, CreateWin32SurfaceKHR); \
|
||||
HookInitExtension(VK_KHR_win32_surface, GetPhysicalDeviceWin32PresentationSupportKHR);
|
||||
#define HookInitInstance_PlatformSpecific() \
|
||||
HookInitExtension(VK_KHR_win32_surface, CreateWin32SurfaceKHR); \
|
||||
HookInitExtension(VK_KHR_win32_surface, GetPhysicalDeviceWin32PresentationSupportKHR); \
|
||||
HookInitExtension(VK_EXT_full_screen_exclusive, GetPhysicalDeviceSurfacePresentModes2EXT);
|
||||
|
||||
#define HookInitDevice_PlatformSpecific() \
|
||||
HookInitExtension(VK_NV_win32_keyed_mutex, GetMemoryWin32HandleNV); \
|
||||
@@ -68,7 +69,17 @@
|
||||
HookDefine2(VkResult, vkImportFenceWin32HandleKHR, VkDevice, device, \
|
||||
const VkImportFenceWin32HandleInfoKHR *, pImportFenceWin32HandleInfo); \
|
||||
HookDefine3(VkResult, vkGetFenceWin32HandleKHR, VkDevice, device, \
|
||||
const VkFenceGetWin32HandleInfoKHR *, pGetWin32HandleInfo, HANDLE *, pHandle);
|
||||
const VkFenceGetWin32HandleInfoKHR *, pGetWin32HandleInfo, HANDLE *, pHandle); \
|
||||
HookDefine4(VkResult, vkGetPhysicalDeviceSurfacePresentModes2EXT, VkPhysicalDevice, \
|
||||
physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR *, pSurfaceInfo, uint32_t *, \
|
||||
pPresentModeCount, VkPresentModeKHR *, pPresentModes); \
|
||||
HookDefine3(VkResult, vkGetDeviceGroupSurfacePresentModes2EXT, VkDevice, device, \
|
||||
const VkPhysicalDeviceSurfaceInfo2KHR *, pSurfaceInfo, \
|
||||
VkDeviceGroupPresentModeFlagsKHR *, pModes); \
|
||||
HookDefine2(VkResult, vkAcquireFullScreenExclusiveModeEXT, VkDevice, device, VkSwapchainKHR, \
|
||||
swapchain); \
|
||||
HookDefine2(VkResult, vkReleaseFullScreenExclusiveModeEXT, VkDevice, device, VkSwapchainKHR, \
|
||||
swapchain);
|
||||
|
||||
#elif defined(VK_USE_PLATFORM_MACOS_MVK)
|
||||
|
||||
@@ -372,7 +383,10 @@
|
||||
DeclExt(EXT_discard_rectangles); \
|
||||
DeclExt(EXT_calibrated_timestamps); \
|
||||
DeclExt(EXT_host_query_reset); \
|
||||
DeclExt(EXT_buffer_device_address);
|
||||
DeclExt(EXT_buffer_device_address); \
|
||||
DeclExt(EXT_full_screen_exclusive); \
|
||||
DeclExt(EXT_hdr_metadata); \
|
||||
DeclExt(AMD_display_native_hdr);
|
||||
|
||||
// for simplicity and since the check itself is platform agnostic,
|
||||
// these aren't protected in platform defines
|
||||
@@ -400,7 +414,8 @@
|
||||
CheckExt(KHR_get_surface_capabilities2, VKXX); \
|
||||
CheckExt(KHR_get_display_properties2, VKXX); \
|
||||
CheckExt(EXT_sample_locations, VKXX); \
|
||||
CheckExt(EXT_calibrated_timestamps, VKXX);
|
||||
CheckExt(EXT_calibrated_timestamps, VKXX); \
|
||||
CheckExt(EXT_full_screen_exclusive, VKXX);
|
||||
|
||||
#define CheckDeviceExts() \
|
||||
CheckExt(EXT_debug_marker, VKXX); \
|
||||
@@ -446,7 +461,9 @@
|
||||
CheckExt(EXT_discard_rectangles, VKXX); \
|
||||
CheckExt(EXT_calibrated_timestamps, VKXX); \
|
||||
CheckExt(EXT_host_query_reset, VKXX); \
|
||||
CheckExt(EXT_buffer_device_address, VKXX);
|
||||
CheckExt(EXT_buffer_device_address, VKXX); \
|
||||
CheckExt(EXT_hdr_metadata, VKXX); \
|
||||
CheckExt(AMD_display_native_hdr, VKXX);
|
||||
|
||||
#define HookInitVulkanInstanceExts() \
|
||||
HookInitExtension(KHR_surface, DestroySurfaceKHR); \
|
||||
@@ -582,6 +599,8 @@
|
||||
HookInitExtension(EXT_calibrated_timestamps, GetCalibratedTimestampsEXT); \
|
||||
HookInitExtension(EXT_host_query_reset, ResetQueryPoolEXT); \
|
||||
HookInitExtension(EXT_buffer_device_address, GetBufferDeviceAddressEXT); \
|
||||
HookInitExtension(EXT_hdr_metadata, SetHdrMetadataEXT); \
|
||||
HookInitExtension(AMD_display_native_hdr, SetLocalDimmingAMD); \
|
||||
HookInitDevice_PlatformSpecific()
|
||||
|
||||
#define DefineHooks() \
|
||||
@@ -1154,6 +1173,10 @@
|
||||
firstQuery, uint32_t, queryCount); \
|
||||
HookDefine2(VkDeviceAddress, vkGetBufferDeviceAddressEXT, VkDevice, device, \
|
||||
VkBufferDeviceAddressInfoEXT *, pInfo); \
|
||||
HookDefine4(void, vkSetHdrMetadataEXT, VkDevice, device, uint32_t, swapchainCount, \
|
||||
const VkSwapchainKHR *, pSwapchains, const VkHdrMetadataEXT *, pMetadata); \
|
||||
HookDefine3(void, vkSetLocalDimmingAMD, VkDevice, device, VkSwapchainKHR, swapChain, VkBool32, \
|
||||
localDimmingEnable); \
|
||||
HookDefine_PlatformSpecific()
|
||||
|
||||
struct VkLayerInstanceDispatchTableExtended : VkLayerInstanceDispatchTable
|
||||
|
||||
@@ -294,37 +294,50 @@ SERIALISE_VK_HANDLES();
|
||||
/* VK_KHR_external_fence_win32 */ \
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR, VkExportFenceWin32HandleInfoKHR) \
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR, VkImportFenceWin32HandleInfoKHR) \
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR, VkFenceGetWin32HandleInfoKHR)
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR, VkFenceGetWin32HandleInfoKHR) \
|
||||
\
|
||||
/* VK_EXT_full_screen_exclusive */ \
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT, \
|
||||
VkSurfaceFullScreenExclusiveWin32InfoEXT) \
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT, \
|
||||
VkSurfaceCapabilitiesFullScreenExclusiveEXT) \
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT, \
|
||||
VkSurfaceFullScreenExclusiveInfoEXT)
|
||||
|
||||
#else
|
||||
|
||||
#define HANDLE_PNEXT_OS() \
|
||||
/* VK_NV_external_memory_win32 */ \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV) \
|
||||
\
|
||||
/* VK_NV_win32_keyed_mutex */ \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV) \
|
||||
\
|
||||
/* VK_KHR_win32_keyed_mutex */ \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR) \
|
||||
\
|
||||
/* VK_KHR_external_memory_win32 */ \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR) \
|
||||
\
|
||||
/* VK_KHR_external_semaphore_win32 */ \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR) \
|
||||
\
|
||||
/* VK_KHR_external_fence_win32 */ \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR)
|
||||
#define HANDLE_PNEXT_OS() \
|
||||
/* VK_NV_external_memory_win32 */ \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV) \
|
||||
\
|
||||
/* VK_NV_win32_keyed_mutex */ \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV) \
|
||||
\
|
||||
/* VK_KHR_win32_keyed_mutex */ \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR) \
|
||||
\
|
||||
/* VK_KHR_external_memory_win32 */ \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR) \
|
||||
\
|
||||
/* VK_KHR_external_semaphore_win32 */ \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR) \
|
||||
\
|
||||
/* VK_KHR_external_fence_win32 */ \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR) \
|
||||
\
|
||||
/* VK_EXT_full_screen_exclusive */ \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT)
|
||||
|
||||
#endif
|
||||
|
||||
@@ -405,6 +418,12 @@ SERIALISE_VK_HANDLES();
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES, \
|
||||
VkPhysicalDeviceShaderDrawParametersFeatures) \
|
||||
\
|
||||
/* VK_AMD_display_native_hdr */ \
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD, \
|
||||
VkSwapchainDisplayNativeHdrCreateInfoAMD) \
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD, \
|
||||
VkDisplayNativeHdrSurfaceCapabilitiesAMD) \
|
||||
\
|
||||
/* VK_AMD_shader_core_properties */ \
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD, \
|
||||
VkPhysicalDeviceShaderCorePropertiesAMD) \
|
||||
@@ -505,6 +524,9 @@ SERIALISE_VK_HANDLES();
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT, \
|
||||
VkDeviceQueueGlobalPriorityCreateInfoEXT) \
|
||||
\
|
||||
/* VK_EXT_hdr_metadata */ \
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_HDR_METADATA_EXT, VkHdrMetadataEXT) \
|
||||
\
|
||||
/* VK_EXT_host_query_reset */ \
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT, \
|
||||
VkPhysicalDeviceHostQueryResetFeaturesEXT) \
|
||||
@@ -827,10 +849,6 @@ SERIALISE_VK_HANDLES();
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR) \
|
||||
\
|
||||
/* VK_AMD_display_native_hdr */ \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD) \
|
||||
\
|
||||
/* VK_AMD_memory_overallocation_behavior */ \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD) \
|
||||
\
|
||||
@@ -855,9 +873,6 @@ SERIALISE_VK_HANDLES();
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT) \
|
||||
\
|
||||
/* VK_EXT_hdr_metadata */ \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_HDR_METADATA_EXT) \
|
||||
\
|
||||
/* VK_EXT_image_drm_format_modifier */ \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT) \
|
||||
@@ -876,11 +891,6 @@ SERIALISE_VK_HANDLES();
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT) \
|
||||
\
|
||||
/* VK_EXT_full_screen_exclusive */ \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT) \
|
||||
\
|
||||
/* VK_GOOGLE_display_timing */ \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE) \
|
||||
\
|
||||
@@ -3114,6 +3124,22 @@ void Deserialise(const VkSwapchainCreateInfoKHR &el)
|
||||
DeserialiseNext(el.pNext);
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
void DoSerialise(SerialiserType &ser, VkSwapchainDisplayNativeHdrCreateInfoAMD &el)
|
||||
{
|
||||
RDCASSERT(ser.IsReading() ||
|
||||
el.sType == VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD);
|
||||
SerialiseNext(ser, el.sType, el.pNext);
|
||||
|
||||
SERIALISE_MEMBER(localDimmingEnable);
|
||||
}
|
||||
|
||||
template <>
|
||||
void Deserialise(const VkSwapchainDisplayNativeHdrCreateInfoAMD &el)
|
||||
{
|
||||
DeserialiseNext(el.pNext);
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
void DoSerialise(SerialiserType &ser, VkPresentInfoKHR &el)
|
||||
{
|
||||
@@ -4109,6 +4135,22 @@ void Deserialise(const VkSurfaceFormat2KHR &el)
|
||||
DeserialiseNext(el.pNext);
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
void DoSerialise(SerialiserType &ser, VkDisplayNativeHdrSurfaceCapabilitiesAMD &el)
|
||||
{
|
||||
RDCASSERT(ser.IsReading() ||
|
||||
el.sType == VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD);
|
||||
SerialiseNext(ser, el.sType, el.pNext);
|
||||
|
||||
SERIALISE_MEMBER(localDimmingSupport);
|
||||
}
|
||||
|
||||
template <>
|
||||
void Deserialise(const VkDisplayNativeHdrSurfaceCapabilitiesAMD &el)
|
||||
{
|
||||
DeserialiseNext(el.pNext);
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
void DoSerialise(SerialiserType &ser, VkImageFormatListCreateInfoKHR &el)
|
||||
{
|
||||
@@ -6080,6 +6122,40 @@ void Deserialise(const VkDeviceGroupRenderPassBeginInfo &el)
|
||||
delete[] el.pDeviceRenderAreas;
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
void DoSerialise(SerialiserType &ser, VkHdrMetadataEXT &el)
|
||||
{
|
||||
RDCASSERT(ser.IsReading() || el.sType == VK_STRUCTURE_TYPE_HDR_METADATA_EXT);
|
||||
SerialiseNext(ser, el.sType, el.pNext);
|
||||
|
||||
SERIALISE_MEMBER(displayPrimaryRed);
|
||||
SERIALISE_MEMBER(displayPrimaryGreen);
|
||||
SERIALISE_MEMBER(displayPrimaryBlue);
|
||||
SERIALISE_MEMBER(whitePoint);
|
||||
SERIALISE_MEMBER(maxLuminance);
|
||||
SERIALISE_MEMBER(minLuminance);
|
||||
SERIALISE_MEMBER(maxContentLightLevel);
|
||||
SERIALISE_MEMBER(maxFrameAverageLightLevel);
|
||||
}
|
||||
|
||||
template <>
|
||||
void Deserialise(const VkHdrMetadataEXT &el)
|
||||
{
|
||||
DeserialiseNext(el.pNext);
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
void DoSerialise(SerialiserType &ser, VkXYColorEXT &el)
|
||||
{
|
||||
SERIALISE_MEMBER(x);
|
||||
SERIALISE_MEMBER(y);
|
||||
}
|
||||
|
||||
template <>
|
||||
void Deserialise(const VkXYColorEXT &el)
|
||||
{
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
void DoSerialise(SerialiserType &ser, VkMemoryAllocateFlagsInfo &el)
|
||||
{
|
||||
@@ -6622,6 +6698,7 @@ INSTANTIATE_SERIALISE_TYPE(VkDeviceQueueGlobalPriorityCreateInfoEXT);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkDeviceQueueInfo2);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkDisplayEventInfoEXT);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkDisplayModeProperties2KHR);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkDisplayNativeHdrSurfaceCapabilitiesAMD);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkDisplayPlaneCapabilities2KHR);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkDisplayPlaneInfo2KHR);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkDisplayPlaneProperties2KHR);
|
||||
@@ -6645,6 +6722,7 @@ INSTANTIATE_SERIALISE_TYPE(VkFenceGetFdInfoKHR);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkFormatProperties2);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkFramebufferCreateInfo);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkGraphicsPipelineCreateInfo);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkHdrMetadataEXT);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkImageCreateInfo);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkImageFormatListCreateInfoKHR);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkImageFormatProperties2);
|
||||
@@ -6782,6 +6860,7 @@ INSTANTIATE_SERIALISE_TYPE(VkSurfaceCapabilities2KHR);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkSurfaceFormat2KHR);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkSwapchainCounterCreateInfoEXT);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkSwapchainCreateInfoKHR);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkSwapchainDisplayNativeHdrCreateInfoAMD);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkTextureLODGatherFormatPropertiesAMD);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkValidationCacheCreateInfoEXT);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkValidationFlagsEXT);
|
||||
@@ -6861,6 +6940,7 @@ INSTANTIATE_SERIALISE_TYPE(VkVertexInputAttributeDescription);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkVertexInputBindingDescription);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkVertexInputBindingDivisorDescriptionEXT);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkViewport);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkXYColorEXT);
|
||||
|
||||
INSTANTIATE_SERIALISE_TYPE(DescriptorSetSlot);
|
||||
INSTANTIATE_SERIALISE_TYPE(ImageRegionState);
|
||||
@@ -7284,6 +7364,54 @@ void Deserialise(const VkWin32KeyedMutexAcquireReleaseInfoKHR &el)
|
||||
delete[] el.pReleaseKeys;
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
void DoSerialise(SerialiserType &ser, VkSurfaceFullScreenExclusiveInfoEXT &el)
|
||||
{
|
||||
RDCASSERT(ser.IsReading() || el.sType == VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT);
|
||||
SerialiseNext(ser, el.sType, el.pNext);
|
||||
|
||||
SERIALISE_MEMBER(fullScreenExclusive);
|
||||
}
|
||||
|
||||
template <>
|
||||
void Deserialise(const VkSurfaceFullScreenExclusiveInfoEXT &el)
|
||||
{
|
||||
DeserialiseNext(el.pNext);
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
void DoSerialise(SerialiserType &ser, VkSurfaceCapabilitiesFullScreenExclusiveEXT &el)
|
||||
{
|
||||
RDCASSERT(ser.IsReading() ||
|
||||
el.sType == VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT);
|
||||
SerialiseNext(ser, el.sType, el.pNext);
|
||||
|
||||
SERIALISE_MEMBER(fullScreenExclusiveSupported);
|
||||
}
|
||||
|
||||
template <>
|
||||
void Deserialise(const VkSurfaceCapabilitiesFullScreenExclusiveEXT &el)
|
||||
{
|
||||
DeserialiseNext(el.pNext);
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
void DoSerialise(SerialiserType &ser, VkSurfaceFullScreenExclusiveWin32InfoEXT &el)
|
||||
{
|
||||
RDCASSERT(ser.IsReading() ||
|
||||
el.sType == VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT);
|
||||
SerialiseNext(ser, el.sType, el.pNext);
|
||||
|
||||
uint64_t hmonitor = (uint64_t)el.hmonitor;
|
||||
ser.Serialise("hmonitor", hmonitor);
|
||||
}
|
||||
|
||||
template <>
|
||||
void Deserialise(const VkSurfaceFullScreenExclusiveWin32InfoEXT &el)
|
||||
{
|
||||
DeserialiseNext(el.pNext);
|
||||
}
|
||||
|
||||
INSTANTIATE_SERIALISE_TYPE(VkImportMemoryWin32HandleInfoNV);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkExportMemoryWin32HandleInfoNV);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkWin32KeyedMutexAcquireReleaseInfoNV);
|
||||
@@ -7299,4 +7427,7 @@ INSTANTIATE_SERIALISE_TYPE(VkSemaphoreGetWin32HandleInfoKHR);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkExportFenceWin32HandleInfoKHR);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkImportFenceWin32HandleInfoKHR);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkFenceGetWin32HandleInfoKHR);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkSurfaceCapabilitiesFullScreenExclusiveEXT);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkSurfaceFullScreenExclusiveInfoEXT);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkSurfaceFullScreenExclusiveWin32InfoEXT);
|
||||
#endif
|
||||
@@ -2466,3 +2466,17 @@ std::string DoStringise(const VkExtent3D &el)
|
||||
{
|
||||
return StringFormat::Fmt("VkExtent3D(%u, %u, %u)", el.width, el.height, el.depth);
|
||||
}
|
||||
|
||||
#if ENABLED(RDOC_WIN32)
|
||||
template <>
|
||||
std::string DoStringise(const VkFullScreenExclusiveEXT &el)
|
||||
{
|
||||
BEGIN_ENUM_STRINGISE(VkFullScreenExclusiveEXT);
|
||||
{
|
||||
STRINGISE_ENUM(VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT)
|
||||
STRINGISE_ENUM(VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT)
|
||||
STRINGISE_ENUM(VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT)
|
||||
}
|
||||
END_ENUM_STRINGISE();
|
||||
}
|
||||
#endif
|
||||
@@ -1583,6 +1583,20 @@ void WrappedVulkan::vkDebugReportMessageEXT(VkInstance instance, VkDebugReportFl
|
||||
location, messageCode, pLayerPrefix, pMessage);
|
||||
}
|
||||
|
||||
void WrappedVulkan::vkSetHdrMetadataEXT(VkDevice device, uint32_t swapchainCount,
|
||||
const VkSwapchainKHR *pSwapchains,
|
||||
const VkHdrMetadataEXT *pMetadata)
|
||||
{
|
||||
return ObjDisp(device)->SetHdrMetadataEXT(Unwrap(device), swapchainCount,
|
||||
UnwrapArray(pSwapchains, swapchainCount), pMetadata);
|
||||
}
|
||||
|
||||
void WrappedVulkan::vkSetLocalDimmingAMD(VkDevice device, VkSwapchainKHR swapChain,
|
||||
VkBool32 localDimmingEnable)
|
||||
{
|
||||
return ObjDisp(device)->SetLocalDimmingAMD(Unwrap(device), Unwrap(swapChain), localDimmingEnable);
|
||||
}
|
||||
|
||||
// we use VkObjectType as the object type since it mostly overlaps with the debug report enum so in
|
||||
// most cases we can upcast it. There's an overload to translate the few that might conflict.
|
||||
// Likewise to re-use the switch in most cases, we return both the record and the unwrapped
|
||||
|
||||
@@ -67,6 +67,38 @@ VkResult WrappedVulkan::vkGetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevi
|
||||
pPresentModeCount, pPresentModes);
|
||||
}
|
||||
|
||||
#if defined(VK_USE_PLATFORM_WIN32_KHR)
|
||||
|
||||
VkResult WrappedVulkan::vkGetDeviceGroupSurfacePresentModes2EXT(
|
||||
VkDevice device, const VkPhysicalDeviceSurfaceInfo2KHR *pSurfaceInfo,
|
||||
VkDeviceGroupPresentModeFlagsKHR *pModes)
|
||||
{
|
||||
return ObjDisp(device)->GetDeviceGroupSurfacePresentModes2EXT(Unwrap(device), pSurfaceInfo, pModes);
|
||||
}
|
||||
|
||||
VkResult WrappedVulkan::vkAcquireFullScreenExclusiveModeEXT(VkDevice device, VkSwapchainKHR swapchain)
|
||||
{
|
||||
return ObjDisp(device)->AcquireFullScreenExclusiveModeEXT(Unwrap(device), swapchain);
|
||||
}
|
||||
|
||||
VkResult WrappedVulkan::vkReleaseFullScreenExclusiveModeEXT(VkDevice device, VkSwapchainKHR swapchain)
|
||||
{
|
||||
return ObjDisp(device)->ReleaseFullScreenExclusiveModeEXT(Unwrap(device), swapchain);
|
||||
}
|
||||
|
||||
VkResult WrappedVulkan::vkGetPhysicalDeviceSurfacePresentModes2EXT(
|
||||
VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR *pSurfaceInfo,
|
||||
uint32_t *pPresentModeCount, VkPresentModeKHR *pPresentModes)
|
||||
{
|
||||
VkPhysicalDeviceSurfaceInfo2KHR unwrapped = *pSurfaceInfo;
|
||||
unwrapped.surface = Unwrap(unwrapped.surface);
|
||||
|
||||
return ObjDisp(physicalDevice)
|
||||
->GetPhysicalDeviceSurfacePresentModes2EXT(Unwrap(physicalDevice), &unwrapped,
|
||||
pPresentModeCount, pPresentModes);
|
||||
}
|
||||
#endif
|
||||
|
||||
VkResult WrappedVulkan::vkGetPhysicalDeviceSurfaceCapabilities2EXT(
|
||||
VkPhysicalDevice physicalDevice, VkSurfaceKHR surface,
|
||||
VkSurfaceCapabilities2EXT *pSurfaceCapabilities)
|
||||
|
||||
Reference in New Issue
Block a user