mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-06 10:00:40 +00:00
Add support for VK_KHR_separate_depth_stencil_layouts
Change-Id: I1bca8f9778651a8a13100eba5f5fc7789dafc880
This commit is contained in:
@@ -641,7 +641,9 @@ DECLARE_REFLECTION_STRUCT(VkAcquireNextImageInfoKHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkAcquireProfilingLockInfoKHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkApplicationInfo);
|
||||
DECLARE_REFLECTION_STRUCT(VkAttachmentDescription2KHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkAttachmentDescriptionStencilLayoutKHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkAttachmentReference2KHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkAttachmentReferenceStencilLayoutKHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkAttachmentSampleLocationsEXT);
|
||||
DECLARE_REFLECTION_STRUCT(VkBindBufferMemoryDeviceGroupInfo);
|
||||
DECLARE_REFLECTION_STRUCT(VkBindBufferMemoryInfo);
|
||||
@@ -816,6 +818,7 @@ DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceSampleLocationsPropertiesEXT);
|
||||
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT);
|
||||
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceSamplerYcbcrConversionFeatures);
|
||||
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceScalarBlockLayoutFeaturesEXT);
|
||||
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceShaderAtomicInt64FeaturesKHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceShaderClockFeaturesKHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceShaderCorePropertiesAMD);
|
||||
@@ -926,7 +929,9 @@ DECLARE_REFLECTION_STRUCT(VkWriteDescriptorSet);
|
||||
DECLARE_DESERIALISE_TYPE(VkAcquireNextImageInfoKHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkApplicationInfo);
|
||||
DECLARE_DESERIALISE_TYPE(VkAttachmentDescription2KHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkAttachmentDescriptionStencilLayoutKHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkAttachmentReference2KHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkAttachmentReferenceStencilLayoutKHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkAttachmentSampleLocationsEXT);
|
||||
DECLARE_DESERIALISE_TYPE(VkBindBufferMemoryDeviceGroupInfo);
|
||||
DECLARE_DESERIALISE_TYPE(VkBindBufferMemoryInfo);
|
||||
@@ -1090,6 +1095,7 @@ DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceSampleLocationsPropertiesEXT);
|
||||
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT);
|
||||
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceSamplerYcbcrConversionFeatures);
|
||||
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceScalarBlockLayoutFeaturesEXT);
|
||||
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceShaderAtomicInt64FeaturesKHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceShaderClockFeaturesKHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceShaderCorePropertiesAMD);
|
||||
|
||||
@@ -384,7 +384,7 @@ private:
|
||||
|
||||
InstanceDeviceInfo m_EnabledExtensions;
|
||||
|
||||
const InstanceDeviceInfo &GetExtensions(VkResourceRecord *record)
|
||||
const InstanceDeviceInfo &GetExtensions(VkResourceRecord *record) const
|
||||
{
|
||||
return record ? *record->instDevInfo : m_EnabledExtensions;
|
||||
}
|
||||
|
||||
@@ -485,7 +485,8 @@
|
||||
DeclExt(KHR_timeline_semaphore); \
|
||||
DeclExt(KHR_performance_query); \
|
||||
DeclExt(KHR_buffer_device_address); \
|
||||
DeclExt(EXT_tooling_info);
|
||||
DeclExt(EXT_tooling_info); \
|
||||
DeclExt(KHR_separate_depth_stencil_layouts);
|
||||
|
||||
// for simplicity and since the check itself is platform agnostic,
|
||||
// these aren't protected in platform defines
|
||||
@@ -575,7 +576,8 @@
|
||||
CheckExt(KHR_timeline_semaphore, VKXX); \
|
||||
CheckExt(KHR_performance_query, VKXX); \
|
||||
CheckExt(KHR_buffer_device_address, VKXX); \
|
||||
CheckExt(EXT_tooling_info, VKXX);
|
||||
CheckExt(EXT_tooling_info, VKXX); \
|
||||
CheckExt(KHR_separate_depth_stencil_layouts, VKXX);
|
||||
|
||||
#define HookInitVulkanInstanceExts_PhysDev() \
|
||||
HookInitExtension(KHR_surface, GetPhysicalDeviceSurfaceSupportKHR); \
|
||||
|
||||
@@ -74,7 +74,11 @@ static void AppendModifiedChainedStruct(byte *&tempMem, VkStruct *outputStruct,
|
||||
#define PROCESS_SIMPLE_STRUCTS() \
|
||||
COPY_STRUCT(VK_STRUCTURE_TYPE_APPLICATION_INFO, VkApplicationInfo); \
|
||||
COPY_STRUCT(VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR, VkAttachmentDescription2KHR); \
|
||||
COPY_STRUCT(VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR, \
|
||||
VkAttachmentDescriptionStencilLayoutKHR); \
|
||||
COPY_STRUCT(VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR, VkAttachmentReference2KHR); \
|
||||
COPY_STRUCT(VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR, \
|
||||
VkAttachmentReferenceStencilLayoutKHR); \
|
||||
COPY_STRUCT(VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO, \
|
||||
VkBindBufferMemoryDeviceGroupInfo); \
|
||||
COPY_STRUCT(VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO, \
|
||||
@@ -255,6 +259,8 @@ static void AppendModifiedChainedStruct(byte *&tempMem, VkStruct *outputStruct,
|
||||
VkPhysicalDeviceSamplerYcbcrConversionFeatures); \
|
||||
COPY_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT, \
|
||||
VkPhysicalDeviceScalarBlockLayoutFeaturesEXT); \
|
||||
COPY_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR, \
|
||||
VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR); \
|
||||
COPY_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR, \
|
||||
VkPhysicalDeviceShaderAtomicInt64FeaturesKHR); \
|
||||
COPY_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD, \
|
||||
@@ -527,8 +533,6 @@ static void AppendModifiedChainedStruct(byte *&tempMem, VkStruct *outputStruct,
|
||||
case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID: \
|
||||
case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID: \
|
||||
case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID: \
|
||||
case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR: \
|
||||
case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR: \
|
||||
case VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV: \
|
||||
case VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV: \
|
||||
case VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX: \
|
||||
@@ -587,7 +591,6 @@ static void AppendModifiedChainedStruct(byte *&tempMem, VkStruct *outputStruct,
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR: \
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV: \
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV: \
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR: \
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD: \
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL: \
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV: \
|
||||
|
||||
@@ -958,6 +958,14 @@ SERIALISE_VK_HANDLES();
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV, \
|
||||
VkPhysicalDeviceShaderImageFootprintFeaturesNV) \
|
||||
\
|
||||
/* VK_KHR_separate_depth_stencil_layouts */ \
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR, \
|
||||
VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR) \
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR, \
|
||||
VkAttachmentReferenceStencilLayoutKHR) \
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR, \
|
||||
VkAttachmentDescriptionStencilLayoutKHR) \
|
||||
\
|
||||
/* Surface creation structs. These would pull in dependencies on OS-specific includes. */ \
|
||||
/* So treat them as unsupported. */ \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR) \
|
||||
@@ -1025,11 +1033,6 @@ SERIALISE_VK_HANDLES();
|
||||
/* VK_EXT_texture_compression_astc_hdr */ \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT) \
|
||||
\
|
||||
/* VK_KHR_separate_depth_stencil_layouts */ \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR) \
|
||||
\
|
||||
/* VK_KHR_performance_query */ \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR) \
|
||||
@@ -7629,6 +7632,54 @@ void Deserialise(const VkPhysicalDeviceCoherentMemoryFeaturesAMD &el)
|
||||
DeserialiseNext(el.pNext);
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
void DoSerialise(SerialiserType &ser, VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR &el)
|
||||
{
|
||||
RDCASSERT(ser.IsReading() ||
|
||||
el.sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR);
|
||||
SerialiseNext(ser, el.sType, el.pNext);
|
||||
|
||||
SERIALISE_MEMBER(separateDepthStencilLayouts);
|
||||
}
|
||||
|
||||
template <>
|
||||
void Deserialise(const VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR &el)
|
||||
{
|
||||
DeserialiseNext(el.pNext);
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
void DoSerialise(SerialiserType &ser, VkAttachmentDescriptionStencilLayoutKHR &el)
|
||||
{
|
||||
RDCASSERT(ser.IsReading() ||
|
||||
el.sType == VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR);
|
||||
SerialiseNext(ser, el.sType, el.pNext);
|
||||
|
||||
SERIALISE_MEMBER(stencilInitialLayout);
|
||||
SERIALISE_MEMBER(stencilFinalLayout);
|
||||
}
|
||||
|
||||
template <>
|
||||
void Deserialise(const VkAttachmentDescriptionStencilLayoutKHR &el)
|
||||
{
|
||||
DeserialiseNext(el.pNext);
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
void DoSerialise(SerialiserType &ser, VkAttachmentReferenceStencilLayoutKHR &el)
|
||||
{
|
||||
RDCASSERT(ser.IsReading() || el.sType == VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR);
|
||||
SerialiseNext(ser, el.sType, el.pNext);
|
||||
|
||||
SERIALISE_MEMBER(stencilLayout);
|
||||
}
|
||||
|
||||
template <>
|
||||
void Deserialise(const VkAttachmentReferenceStencilLayoutKHR &el)
|
||||
{
|
||||
DeserialiseNext(el.pNext);
|
||||
}
|
||||
|
||||
// pNext structs - always have deserialise for the next chain
|
||||
INSTANTIATE_SERIALISE_TYPE(VkAcquireNextImageInfoKHR);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkApplicationInfo);
|
||||
@@ -7908,6 +7959,9 @@ INSTANTIATE_SERIALISE_TYPE(VkValidationCacheCreateInfoEXT);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkValidationFeaturesEXT);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkValidationFlagsEXT);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkWriteDescriptorSet);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkAttachmentReferenceStencilLayoutKHR);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkAttachmentDescriptionStencilLayoutKHR);
|
||||
|
||||
// plain structs with no next chain
|
||||
INSTANTIATE_SERIALISE_TYPE(VkAllocationCallbacks);
|
||||
|
||||
@@ -2336,6 +2336,14 @@ bool WrappedVulkan::Serialise_vkCreateDevice(SerialiserType &ser, VkPhysicalDevi
|
||||
CHECK_PHYS_EXT_FEATURE(timelineSemaphore);
|
||||
}
|
||||
END_PHYS_EXT_CHECK();
|
||||
|
||||
BEGIN_PHYS_EXT_CHECK(
|
||||
VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR);
|
||||
{
|
||||
CHECK_PHYS_EXT_FEATURE(separateDepthStencilLayouts);
|
||||
}
|
||||
END_PHYS_EXT_CHECK();
|
||||
}
|
||||
|
||||
if(availFeatures.depthClamp)
|
||||
|
||||
Reference in New Issue
Block a user