mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-05 17:40:39 +00:00
Add support for VK_KHR_present_id/wait2
This commit is contained in:
@@ -192,8 +192,10 @@ Maintainers can update this file by updating vk.xml in this folder and running `
|
||||
* `VK_KHR_pipeline_executable_properties`
|
||||
* `VK_KHR_pipeline_library`
|
||||
* `VK_KHR_present_id`
|
||||
* `VK_KHR_present_id2`
|
||||
* `VK_KHR_present_mode_fifo_latest_ready`
|
||||
* `VK_KHR_present_wait`
|
||||
* `VK_KHR_present_wait2`
|
||||
* `VK_KHR_push_descriptor`
|
||||
* `VK_KHR_ray_query`
|
||||
* `VK_KHR_ray_tracing_maintenance1`
|
||||
@@ -274,8 +276,6 @@ KHR extensions will definitely be implemented at some point, though KHR extensio
|
||||
* `VK_KHR_maintenance8`
|
||||
* `VK_KHR_maintenance9`
|
||||
* `VK_KHR_pipeline_binary`
|
||||
* `VK_KHR_present_id2`
|
||||
* `VK_KHR_present_wait2`
|
||||
|
||||
## KHR Portability
|
||||
|
||||
|
||||
@@ -1734,8 +1734,10 @@ DECLARE_REFLECTION_STRUCT(VkPhysicalDevicePerformanceQueryPropertiesKHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkPhysicalDevicePipelineCreationCacheControlFeatures);
|
||||
DECLARE_REFLECTION_STRUCT(VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkPhysicalDevicePointClippingProperties);
|
||||
DECLARE_REFLECTION_STRUCT(VkPhysicalDevicePresentId2FeaturesKHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkPhysicalDevicePresentIdFeaturesKHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkPhysicalDevicePresentWait2FeaturesKHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkPhysicalDevicePresentWaitFeaturesKHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT);
|
||||
DECLARE_REFLECTION_STRUCT(VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT);
|
||||
@@ -1851,11 +1853,13 @@ DECLARE_REFLECTION_STRUCT(VkPipelineVertexInputDivisorStateCreateInfo);
|
||||
DECLARE_REFLECTION_STRUCT(VkPipelineVertexInputStateCreateInfo);
|
||||
DECLARE_REFLECTION_STRUCT(VkPipelineViewportDepthClipControlCreateInfoEXT);
|
||||
DECLARE_REFLECTION_STRUCT(VkPipelineViewportStateCreateInfo);
|
||||
DECLARE_REFLECTION_STRUCT(VkPresentId2KHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkPresentIdKHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkPresentInfoKHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkPresentRegionsKHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkPresentTimeGOOGLE);
|
||||
DECLARE_REFLECTION_STRUCT(VkPresentTimesInfoGOOGLE);
|
||||
DECLARE_REFLECTION_STRUCT(VkPresentWait2InfoKHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkPrivateDataSlotCreateInfo);
|
||||
DECLARE_REFLECTION_STRUCT(VkProtectedSubmitInfo);
|
||||
DECLARE_REFLECTION_STRUCT(VkQueryPoolCreateInfo);
|
||||
@@ -1918,6 +1922,8 @@ DECLARE_REFLECTION_STRUCT(VkSubresourceHostMemcpySize);
|
||||
DECLARE_REFLECTION_STRUCT(VkSubresourceLayout2);
|
||||
DECLARE_REFLECTION_STRUCT(VkSurfaceCapabilities2EXT);
|
||||
DECLARE_REFLECTION_STRUCT(VkSurfaceCapabilities2KHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkSurfaceCapabilitiesPresentId2KHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkSurfaceCapabilitiesPresentWait2KHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkSurfaceFormat2KHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkSurfacePresentModeCompatibilityKHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkSurfacePresentModeKHR);
|
||||
@@ -2227,8 +2233,10 @@ DECLARE_DESERIALISE_TYPE(VkPhysicalDevicePerformanceQueryPropertiesKHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkPhysicalDevicePipelineCreationCacheControlFeatures);
|
||||
DECLARE_DESERIALISE_TYPE(VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkPhysicalDevicePointClippingProperties);
|
||||
DECLARE_DESERIALISE_TYPE(VkPhysicalDevicePresentId2FeaturesKHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkPhysicalDevicePresentIdFeaturesKHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkPhysicalDevicePresentWait2FeaturesKHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkPhysicalDevicePresentWaitFeaturesKHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT);
|
||||
DECLARE_DESERIALISE_TYPE(VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT);
|
||||
@@ -2344,10 +2352,12 @@ DECLARE_DESERIALISE_TYPE(VkPipelineVertexInputDivisorStateCreateInfo);
|
||||
DECLARE_DESERIALISE_TYPE(VkPipelineVertexInputStateCreateInfo);
|
||||
DECLARE_DESERIALISE_TYPE(VkPipelineViewportDepthClipControlCreateInfoEXT);
|
||||
DECLARE_DESERIALISE_TYPE(VkPipelineViewportStateCreateInfo);
|
||||
DECLARE_DESERIALISE_TYPE(VkPresentId2KHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkPresentIdKHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkPresentInfoKHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkPresentRegionsKHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkPresentTimesInfoGOOGLE);
|
||||
DECLARE_DESERIALISE_TYPE(VkPresentWait2InfoKHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkPrivateDataSlotCreateInfo);
|
||||
DECLARE_DESERIALISE_TYPE(VkProtectedSubmitInfo);
|
||||
DECLARE_DESERIALISE_TYPE(VkQueryPoolCreateInfo);
|
||||
@@ -2408,6 +2418,8 @@ DECLARE_DESERIALISE_TYPE(VkSubresourceHostMemcpySize);
|
||||
DECLARE_DESERIALISE_TYPE(VkSubresourceLayout2);
|
||||
DECLARE_DESERIALISE_TYPE(VkSurfaceCapabilities2EXT);
|
||||
DECLARE_DESERIALISE_TYPE(VkSurfaceCapabilities2KHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkSurfaceCapabilitiesPresentId2KHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkSurfaceCapabilitiesPresentWait2KHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkSurfaceFormat2KHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkSurfacePresentModeCompatibilityKHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkSurfacePresentModeKHR);
|
||||
|
||||
@@ -1710,6 +1710,10 @@ static const VkExtensionProperties supportedExtensions[] = {
|
||||
VK_KHR_PRESENT_ID_EXTENSION_NAME,
|
||||
VK_KHR_PRESENT_ID_SPEC_VERSION,
|
||||
},
|
||||
{
|
||||
VK_KHR_PRESENT_ID_2_EXTENSION_NAME,
|
||||
VK_KHR_PRESENT_ID_2_SPEC_VERSION,
|
||||
},
|
||||
{
|
||||
VK_KHR_PRESENT_MODE_FIFO_LATEST_READY_EXTENSION_NAME,
|
||||
VK_KHR_PRESENT_MODE_FIFO_LATEST_READY_SPEC_VERSION,
|
||||
@@ -1718,6 +1722,10 @@ static const VkExtensionProperties supportedExtensions[] = {
|
||||
VK_KHR_PRESENT_WAIT_EXTENSION_NAME,
|
||||
VK_KHR_PRESENT_WAIT_SPEC_VERSION,
|
||||
},
|
||||
{
|
||||
VK_KHR_PRESENT_WAIT_2_EXTENSION_NAME,
|
||||
VK_KHR_PRESENT_WAIT_2_SPEC_VERSION,
|
||||
},
|
||||
{
|
||||
VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME,
|
||||
VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION,
|
||||
|
||||
@@ -3267,4 +3267,10 @@ public:
|
||||
const VkMemoryMapInfo *pMemoryMapInfo, void **ppData);
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, vkUnmapMemory2KHR, VkDevice device,
|
||||
const VkMemoryUnmapInfo *pMemoryUnmapInfo);
|
||||
|
||||
// VK_KHR_present_wait2
|
||||
|
||||
IMPLEMENT_FUNCTION_SERIALISED(VkResult, vkWaitForPresent2KHR, VkDevice device,
|
||||
VkSwapchainKHR swapchain,
|
||||
const VkPresentWait2InfoKHR *pPresentWait2Info);
|
||||
};
|
||||
|
||||
@@ -552,7 +552,8 @@
|
||||
DeclExt(EXT_image_compression_control); \
|
||||
DeclExt(EXT_image_compression_control_swapchain); \
|
||||
DeclExt(EXT_descriptor_buffer); \
|
||||
DeclExt(KHR_map_memory2);
|
||||
DeclExt(KHR_map_memory2); \
|
||||
DeclExt(KHR_present_wait2);
|
||||
|
||||
// for simplicity and since the check itself is platform agnostic,
|
||||
// these aren't protected in platform defines
|
||||
@@ -694,7 +695,8 @@
|
||||
CheckExt(EXT_image_compression_control, VKXX); \
|
||||
CheckExt(EXT_image_compression_control_swapchain, VKXX); \
|
||||
CheckExt(EXT_descriptor_buffer, VKXX); \
|
||||
CheckExt(KHR_map_memory2, VKXX);
|
||||
CheckExt(KHR_map_memory2, VKXX); \
|
||||
CheckExt(KHR_present_wait2, VKXX);
|
||||
|
||||
#define HookInitVulkanInstanceExts_PhysDev() \
|
||||
HookInitExtension(KHR_surface, GetPhysicalDeviceSurfaceSupportKHR); \
|
||||
@@ -1086,6 +1088,7 @@
|
||||
HookInitExtension(EXT_descriptor_buffer, GetAccelerationStructureOpaqueCaptureDescriptorDataEXT); \
|
||||
HookInitExtension(KHR_map_memory2, MapMemory2KHR); \
|
||||
HookInitExtension(KHR_map_memory2, UnmapMemory2KHR); \
|
||||
HookInitExtension(KHR_present_wait, WaitForPresent2KHR); \
|
||||
HookInitExtension_Device_Win32(); \
|
||||
HookInitExtension_Device_Linux(); \
|
||||
HookInitExtension_Device_Android(); \
|
||||
@@ -2040,6 +2043,8 @@
|
||||
pMemoryMapInfo, void **, ppData); \
|
||||
HookDefine2(void, vkUnmapMemory2KHR, VkDevice, device, const VkMemoryUnmapInfo *, \
|
||||
pMemoryUnmapInfo); \
|
||||
HookDefine3(VkResult, vkWaitForPresent2KHR, VkDevice, device, VkSwapchainKHR, swapchain, \
|
||||
const VkPresentWait2InfoKHR *, pPresentWait2Info); \
|
||||
HookDefine_Win32(); \
|
||||
HookDefine_Linux(); \
|
||||
HookDefine_Android(); \
|
||||
|
||||
@@ -424,10 +424,14 @@ static void AppendModifiedChainedStruct(byte *&tempMem, VkStruct *outputStruct,
|
||||
VkPhysicalDevicePointClippingProperties); \
|
||||
COPY_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR, \
|
||||
VkPhysicalDevicePresentIdFeaturesKHR); \
|
||||
COPY_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_2_FEATURES_KHR, \
|
||||
VkPhysicalDevicePresentId2FeaturesKHR); \
|
||||
COPY_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_KHR, \
|
||||
VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR); \
|
||||
COPY_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR, \
|
||||
VkPhysicalDevicePresentWaitFeaturesKHR); \
|
||||
COPY_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_2_FEATURES_KHR, \
|
||||
VkPhysicalDevicePresentWait2FeaturesKHR); \
|
||||
COPY_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT, \
|
||||
VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT) \
|
||||
COPY_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT, \
|
||||
@@ -640,6 +644,7 @@ static void AppendModifiedChainedStruct(byte *&tempMem, VkStruct *outputStruct,
|
||||
COPY_STRUCT(VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO, \
|
||||
VkPipelineViewportStateCreateInfo); \
|
||||
COPY_STRUCT(VK_STRUCTURE_TYPE_PRESENT_ID_KHR, VkPresentIdKHR); \
|
||||
COPY_STRUCT(VK_STRUCTURE_TYPE_PRESENT_ID_2_KHR, VkPresentId2KHR); \
|
||||
COPY_STRUCT(VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR, VkPresentRegionsKHR); \
|
||||
COPY_STRUCT(VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE, VkPresentTimesInfoGOOGLE) \
|
||||
COPY_STRUCT(VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO, VkPrivateDataSlotCreateInfo) \
|
||||
@@ -695,6 +700,10 @@ static void AppendModifiedChainedStruct(byte *&tempMem, VkStruct *outputStruct,
|
||||
COPY_STRUCT(VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2, VkSubresourceLayout2); \
|
||||
COPY_STRUCT(VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT, VkSurfaceCapabilities2EXT); \
|
||||
COPY_STRUCT(VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR, VkSurfaceCapabilities2KHR); \
|
||||
COPY_STRUCT(VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_ID_2_KHR, \
|
||||
VkSurfaceCapabilitiesPresentId2KHR); \
|
||||
COPY_STRUCT(VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_WAIT_2_KHR, \
|
||||
VkSurfaceCapabilitiesPresentWait2KHR); \
|
||||
COPY_STRUCT(VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR, VkSurfaceFormat2KHR); \
|
||||
COPY_STRUCT(VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_KHR, \
|
||||
VkSurfacePresentModeCompatibilityKHR) \
|
||||
@@ -1206,8 +1215,6 @@ static void AppendModifiedChainedStruct(byte *&tempMem, VkStruct *outputStruct,
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES: \
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES: \
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV: \
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_2_FEATURES_KHR: \
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_2_FEATURES_KHR: \
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_INFO_ARM: \
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV: \
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV: \
|
||||
@@ -1288,7 +1295,6 @@ static void AppendModifiedChainedStruct(byte *&tempMem, VkStruct *outputStruct,
|
||||
case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV: \
|
||||
case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV: \
|
||||
case VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP: \
|
||||
case VK_STRUCTURE_TYPE_PRESENT_ID_2_KHR: \
|
||||
case VK_STRUCTURE_TYPE_PRESENT_WAIT_2_INFO_KHR: \
|
||||
case VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO: \
|
||||
case VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO: \
|
||||
@@ -1329,8 +1335,6 @@ static void AppendModifiedChainedStruct(byte *&tempMem, VkStruct *outputStruct,
|
||||
case VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP: \
|
||||
case VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI: \
|
||||
case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV: \
|
||||
case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_ID_2_KHR: \
|
||||
case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_WAIT_2_KHR: \
|
||||
case VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV: \
|
||||
case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV: \
|
||||
case VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA: \
|
||||
|
||||
@@ -1335,6 +1335,13 @@ SERIALISE_VK_HANDLES();
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR, \
|
||||
VkPhysicalDevicePresentIdFeaturesKHR) \
|
||||
\
|
||||
/* VK_KHR_present_id2 */ \
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_ID_2_KHR, \
|
||||
VkSurfaceCapabilitiesPresentId2KHR) \
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_PRESENT_ID_2_KHR, VkPresentId2KHR) \
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_2_FEATURES_KHR, \
|
||||
VkPhysicalDevicePresentId2FeaturesKHR) \
|
||||
\
|
||||
/* VK_KHR_present_mode_fifo_latest_ready */ \
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_KHR, \
|
||||
VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR) \
|
||||
@@ -1343,6 +1350,13 @@ SERIALISE_VK_HANDLES();
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR, \
|
||||
VkPhysicalDevicePresentWaitFeaturesKHR) \
|
||||
\
|
||||
/* VK_KHR_present_wait2 */ \
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_2_FEATURES_KHR, \
|
||||
VkPhysicalDevicePresentWait2FeaturesKHR) \
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_WAIT_2_KHR, \
|
||||
VkSurfaceCapabilitiesPresentWait2KHR) \
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_PRESENT_WAIT_2_INFO_KHR, VkPresentWait2InfoKHR) \
|
||||
\
|
||||
/* VK_KHR_push_descriptor */ \
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES, \
|
||||
VkPhysicalDevicePushDescriptorProperties) \
|
||||
@@ -1910,16 +1924,6 @@ SERIALISE_VK_HANDLES();
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR) \
|
||||
\
|
||||
/* VK_KHR_present_id2 */ \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_ID_2_KHR) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PRESENT_ID_2_KHR) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_2_FEATURES_KHR) \
|
||||
\
|
||||
/* VK_KHR_present_wait2 */ \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_WAIT_2_KHR) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_2_FEATURES_KHR) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PRESENT_WAIT_2_INFO_KHR) \
|
||||
\
|
||||
/* VK_KHR_maintenance6 */ \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES) \
|
||||
@@ -7508,6 +7512,23 @@ void Deserialise(const VkPresentIdKHR &el)
|
||||
delete[] el.pPresentIds;
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
void DoSerialise(SerialiserType &ser, VkPresentId2KHR &el)
|
||||
{
|
||||
RDCASSERT(ser.IsReading() || el.sType == VK_STRUCTURE_TYPE_PRESENT_ID_2_KHR);
|
||||
SerialiseNext(ser, el.sType, el.pNext);
|
||||
|
||||
SERIALISE_MEMBER(swapchainCount);
|
||||
SERIALISE_MEMBER_ARRAY(pPresentIds, swapchainCount);
|
||||
}
|
||||
|
||||
template <>
|
||||
void Deserialise(const VkPresentId2KHR &el)
|
||||
{
|
||||
DeserialiseNext(el.pNext);
|
||||
delete[] el.pPresentIds;
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
void DoSerialise(SerialiserType &ser, VkPhysicalDevicePresentIdFeaturesKHR &el)
|
||||
{
|
||||
@@ -7523,6 +7544,37 @@ void Deserialise(const VkPhysicalDevicePresentIdFeaturesKHR &el)
|
||||
DeserialiseNext(el.pNext);
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
void DoSerialise(SerialiserType &ser, VkSurfaceCapabilitiesPresentId2KHR &el)
|
||||
{
|
||||
RDCASSERT(ser.IsReading() || el.sType == VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_ID_2_KHR);
|
||||
SerialiseNext(ser, el.sType, el.pNext);
|
||||
|
||||
SERIALISE_MEMBER(presentId2Supported);
|
||||
}
|
||||
|
||||
template <>
|
||||
void Deserialise(const VkSurfaceCapabilitiesPresentId2KHR &el)
|
||||
{
|
||||
DeserialiseNext(el.pNext);
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
void DoSerialise(SerialiserType &ser, VkPhysicalDevicePresentId2FeaturesKHR &el)
|
||||
{
|
||||
RDCASSERT(ser.IsReading() ||
|
||||
el.sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_2_FEATURES_KHR);
|
||||
SerialiseNext(ser, el.sType, el.pNext);
|
||||
|
||||
SERIALISE_MEMBER(presentId2);
|
||||
}
|
||||
|
||||
template <>
|
||||
void Deserialise(const VkPhysicalDevicePresentId2FeaturesKHR &el)
|
||||
{
|
||||
DeserialiseNext(el.pNext);
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
void DoSerialise(SerialiserType &ser, VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR &el)
|
||||
{
|
||||
@@ -7555,6 +7607,53 @@ void Deserialise(const VkPhysicalDevicePresentWaitFeaturesKHR &el)
|
||||
DeserialiseNext(el.pNext);
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
void DoSerialise(SerialiserType &ser, VkPhysicalDevicePresentWait2FeaturesKHR &el)
|
||||
{
|
||||
RDCASSERT(ser.IsReading() ||
|
||||
el.sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_2_FEATURES_KHR);
|
||||
SerialiseNext(ser, el.sType, el.pNext);
|
||||
|
||||
SERIALISE_MEMBER(presentWait2);
|
||||
}
|
||||
|
||||
template <>
|
||||
void Deserialise(const VkPhysicalDevicePresentWait2FeaturesKHR &el)
|
||||
{
|
||||
DeserialiseNext(el.pNext);
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
void DoSerialise(SerialiserType &ser, VkSurfaceCapabilitiesPresentWait2KHR &el)
|
||||
{
|
||||
RDCASSERT(ser.IsReading() || el.sType == VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_WAIT_2_KHR);
|
||||
SerialiseNext(ser, el.sType, el.pNext);
|
||||
|
||||
SERIALISE_MEMBER(presentWait2Supported);
|
||||
}
|
||||
|
||||
template <>
|
||||
void Deserialise(const VkSurfaceCapabilitiesPresentWait2KHR &el)
|
||||
{
|
||||
DeserialiseNext(el.pNext);
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
void DoSerialise(SerialiserType &ser, VkPresentWait2InfoKHR &el)
|
||||
{
|
||||
RDCASSERT(ser.IsReading() || el.sType == VK_STRUCTURE_TYPE_PRESENT_WAIT_2_INFO_KHR);
|
||||
SerialiseNext(ser, el.sType, el.pNext);
|
||||
|
||||
SERIALISE_MEMBER(presentId);
|
||||
SERIALISE_MEMBER(timeout);
|
||||
}
|
||||
|
||||
template <>
|
||||
void Deserialise(const VkPresentWait2InfoKHR &el)
|
||||
{
|
||||
DeserialiseNext(el.pNext);
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
void DoSerialise(SerialiserType &ser, VkPhysicalDevicePushDescriptorProperties &el)
|
||||
{
|
||||
@@ -14156,6 +14255,7 @@ INSTANTIATE_SERIALISE_TYPE(VkPhysicalDevicePerformanceQueryPropertiesKHR);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDevicePipelineCreationCacheControlFeatures);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDevicePointClippingProperties);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDevicePresentId2FeaturesKHR);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDevicePresentIdFeaturesKHR);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDevicePresentWaitFeaturesKHR);
|
||||
@@ -14273,11 +14373,13 @@ INSTANTIATE_SERIALISE_TYPE(VkPipelineVertexInputDivisorStateCreateInfo);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkPipelineVertexInputStateCreateInfo);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkPipelineViewportDepthClipControlCreateInfoEXT);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkPipelineViewportStateCreateInfo);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkPresentId2KHR);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkPresentIdKHR);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkPresentInfoKHR);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkPresentRegionsKHR);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkPresentTimeGOOGLE);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkPresentTimesInfoGOOGLE);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkPresentWait2InfoKHR);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkPrivateDataSlotCreateInfo);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkProtectedSubmitInfo);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkQueryPoolCreateInfo);
|
||||
@@ -14340,6 +14442,8 @@ INSTANTIATE_SERIALISE_TYPE(VkSubresourceHostMemcpySize);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkSubresourceLayout2);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkSurfaceCapabilities2EXT);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkSurfaceCapabilities2KHR);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkSurfaceCapabilitiesPresentId2KHR);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkSurfaceCapabilitiesPresentWait2KHR);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkSurfaceFormat2KHR);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkSurfacePresentModeCompatibilityKHR);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkSurfacePresentModeKHR);
|
||||
|
||||
@@ -191,7 +191,8 @@ static void StripUnwantedExtensions(rdcarray<rdcstr> &Extensions)
|
||||
// remove WSI-only extensions
|
||||
if(ext == "VK_GOOGLE_display_timing" || ext == "VK_KHR_display_swapchain" ||
|
||||
ext == "VK_EXT_display_control" || ext == "VK_KHR_present_id" ||
|
||||
ext == "VK_KHR_present_wait" || ext == "VK_KHR_present_mode_fifo_latest_ready" ||
|
||||
ext == "VK_KHR_present_id2" || ext == "VK_KHR_present_wait" ||
|
||||
ext == "VK_KHR_present_wait2" || ext == "VK_KHR_present_mode_fifo_latest_ready" ||
|
||||
ext == "VK_EXT_present_mode_fifo_latest_ready" || ext == "VK_EXT_surface_maintenance1" ||
|
||||
ext == "VK_EXT_swapchain_maintenance1" || ext == "VK_EXT_hdr_metadata" ||
|
||||
ext == "VK_KHR_get_display_properties2")
|
||||
@@ -2248,6 +2249,10 @@ bool WrappedVulkan::Serialise_vkCreateDevice(SerialiserType &ser, VkPhysicalDevi
|
||||
RemoveNextStruct(&createInfo, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR);
|
||||
present_exts |=
|
||||
RemoveNextStruct(&createInfo, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR);
|
||||
present_exts |=
|
||||
RemoveNextStruct(&createInfo, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_2_FEATURES_KHR);
|
||||
present_exts |=
|
||||
RemoveNextStruct(&createInfo, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_2_FEATURES_KHR);
|
||||
present_exts |= RemoveNextStruct(
|
||||
&createInfo, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_KHR);
|
||||
if(present_exts)
|
||||
|
||||
@@ -1015,6 +1015,7 @@ VkResult WrappedVulkan::vkQueuePresentKHR(VkQueue queue, const VkPresentInfoKHR
|
||||
next->sType != VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR &&
|
||||
next->sType != VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE &&
|
||||
next->sType != VK_STRUCTURE_TYPE_PRESENT_ID_KHR &&
|
||||
next->sType != VK_STRUCTURE_TYPE_PRESENT_ID_2_KHR &&
|
||||
next->sType != VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_KHR &&
|
||||
next->sType != VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_KHR)
|
||||
{
|
||||
@@ -1069,6 +1070,11 @@ VkResult WrappedVulkan::vkQueuePresentKHR(VkQueue queue, const VkPresentInfoKHR
|
||||
if(ids)
|
||||
ids->swapchainCount = 1;
|
||||
|
||||
VkPresentId2KHR *ids2 =
|
||||
(VkPresentId2KHR *)FindNextStruct(&mutableInfo, VK_STRUCTURE_TYPE_PRESENT_ID_2_KHR);
|
||||
if(ids2)
|
||||
ids2->swapchainCount = 1;
|
||||
|
||||
VkSwapchainPresentFenceInfoKHR *fences = (VkSwapchainPresentFenceInfoKHR *)FindNextStruct(
|
||||
&mutableInfo, VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_KHR);
|
||||
if(fences)
|
||||
@@ -1092,6 +1098,8 @@ VkResult WrappedVulkan::vkQueuePresentKHR(VkQueue queue, const VkPresentInfoKHR
|
||||
regions->pRegions++;
|
||||
if(ids)
|
||||
ids->pPresentIds++;
|
||||
if(ids2)
|
||||
ids2->pPresentIds++;
|
||||
if(times)
|
||||
times->pTimes++;
|
||||
if(fences)
|
||||
@@ -1793,6 +1801,12 @@ VkResult WrappedVulkan::vkWaitForPresentKHR(VkDevice device, VkSwapchainKHR swap
|
||||
return ObjDisp(device)->WaitForPresentKHR(Unwrap(device), Unwrap(swapchain), presentId, timeout);
|
||||
}
|
||||
|
||||
VkResult WrappedVulkan::vkWaitForPresent2KHR(VkDevice device, VkSwapchainKHR swapchain,
|
||||
const VkPresentWait2InfoKHR *pPresentWait2Info)
|
||||
{
|
||||
return ObjDisp(device)->WaitForPresent2KHR(Unwrap(device), Unwrap(swapchain), pPresentWait2Info);
|
||||
}
|
||||
|
||||
VkResult WrappedVulkan::vkReleaseSwapchainImagesKHR(VkDevice device,
|
||||
const VkReleaseSwapchainImagesInfoKHR *pReleaseInfo)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user