mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-29 21:30:53 +00:00
Add support for new KHR vulkan extensions
* VK_KHR_depth_stencil_resolve * VK_KHR_shader_float16_int8 * VK_KHR_shader_float_controls * VK_KHR_swapchain_mutable_format
This commit is contained in:
@@ -675,6 +675,7 @@ DECLARE_REFLECTION_STRUCT(VkPhysicalDevice8BitStorageFeaturesKHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceASTCDecodeFeaturesEXT);
|
||||
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceConditionalRenderingFeaturesEXT);
|
||||
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceConservativeRasterizationPropertiesEXT);
|
||||
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceDepthStencilResolvePropertiesKHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceDriverPropertiesKHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceExternalBufferInfo);
|
||||
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceExternalFenceInfo);
|
||||
@@ -700,6 +701,8 @@ DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceShaderAtomicInt64FeaturesKHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceShaderCorePropertiesAMD);
|
||||
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceShaderDrawParameterFeatures);
|
||||
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceShaderImageFootprintFeaturesNV);
|
||||
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceFloat16Int8FeaturesKHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceFloatControlsPropertiesKHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceSparseImageFormatInfo2);
|
||||
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceSubgroupProperties);
|
||||
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceSurfaceInfo2KHR);
|
||||
@@ -751,6 +754,7 @@ DECLARE_REFLECTION_STRUCT(VkSubmitInfo);
|
||||
DECLARE_REFLECTION_STRUCT(VkSubpassBeginInfoKHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkSubpassDependency2KHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkSubpassDescription2KHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkSubpassDescriptionDepthStencilResolveKHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkSubpassEndInfoKHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkSurfaceCapabilities2EXT);
|
||||
DECLARE_REFLECTION_STRUCT(VkSurfaceCapabilities2KHR);
|
||||
@@ -871,6 +875,7 @@ DECLARE_DESERIALISE_TYPE(VkPhysicalDevice8BitStorageFeaturesKHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceASTCDecodeFeaturesEXT);
|
||||
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceConditionalRenderingFeaturesEXT);
|
||||
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceConservativeRasterizationPropertiesEXT);
|
||||
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceDepthStencilResolvePropertiesKHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceDriverPropertiesKHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceExternalBufferInfo);
|
||||
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceExternalFenceInfo);
|
||||
@@ -896,6 +901,8 @@ DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceShaderAtomicInt64FeaturesKHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceShaderCorePropertiesAMD);
|
||||
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceShaderDrawParameterFeatures);
|
||||
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceShaderImageFootprintFeaturesNV);
|
||||
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceFloat16Int8FeaturesKHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceFloatControlsPropertiesKHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceSparseImageFormatInfo2);
|
||||
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceSubgroupProperties);
|
||||
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceSurfaceInfo2KHR);
|
||||
@@ -947,6 +954,7 @@ DECLARE_DESERIALISE_TYPE(VkSubmitInfo);
|
||||
DECLARE_DESERIALISE_TYPE(VkSubpassBeginInfoKHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkSubpassDependency2KHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkSubpassDescription2KHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkSubpassDescriptionDepthStencilResolveKHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkSubpassEndInfoKHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkSurfaceCapabilities2EXT);
|
||||
DECLARE_DESERIALISE_TYPE(VkSurfaceCapabilities2KHR);
|
||||
|
||||
@@ -740,6 +740,9 @@ static const VkExtensionProperties supportedExtensions[] = {
|
||||
{
|
||||
VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME, VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION,
|
||||
},
|
||||
{
|
||||
VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME, VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION,
|
||||
},
|
||||
{
|
||||
VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME,
|
||||
VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION,
|
||||
@@ -862,6 +865,12 @@ static const VkExtensionProperties supportedExtensions[] = {
|
||||
{
|
||||
VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME, VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION,
|
||||
},
|
||||
{
|
||||
VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME, VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION,
|
||||
},
|
||||
{
|
||||
VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME, VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION,
|
||||
},
|
||||
{
|
||||
VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME, VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION,
|
||||
},
|
||||
@@ -875,6 +884,9 @@ static const VkExtensionProperties supportedExtensions[] = {
|
||||
{
|
||||
VK_KHR_SWAPCHAIN_EXTENSION_NAME, VK_KHR_SWAPCHAIN_SPEC_VERSION,
|
||||
},
|
||||
{
|
||||
VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME, VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION,
|
||||
},
|
||||
{
|
||||
VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME, VK_KHR_VARIABLE_POINTERS_SPEC_VERSION,
|
||||
},
|
||||
|
||||
@@ -517,6 +517,12 @@ SERIALISE_VK_HANDLES();
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS, VkMemoryDedicatedRequirements) \
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO, VkMemoryDedicatedAllocateInfo) \
|
||||
\
|
||||
/* VK_KHR_depth_stencil_resolve */ \
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR, \
|
||||
VkPhysicalDeviceDepthStencilResolvePropertiesKHR) \
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR, \
|
||||
VkSubpassDescriptionDepthStencilResolveKHR) \
|
||||
\
|
||||
/* VK_KHR_descriptor_update_template */ \
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO, \
|
||||
VkDescriptorUpdateTemplateCreateInfo) \
|
||||
@@ -673,6 +679,14 @@ SERIALISE_VK_HANDLES();
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR, \
|
||||
VkPhysicalDeviceShaderAtomicInt64FeaturesKHR) \
|
||||
\
|
||||
/* VK_KHR_shader_float16_int8 */ \
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR, \
|
||||
VkPhysicalDeviceFloat16Int8FeaturesKHR) \
|
||||
\
|
||||
/* VK_KHR_shader_float_controls */ \
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR, \
|
||||
VkPhysicalDeviceFloatControlsPropertiesKHR) \
|
||||
\
|
||||
/* VK_KHR_shared_presentable_image */ \
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR, \
|
||||
VkSharedPresentSurfaceCapabilitiesKHR) \
|
||||
@@ -812,16 +826,6 @@ SERIALISE_VK_HANDLES();
|
||||
/* VK_GOOGLE_display_timing */ \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE) \
|
||||
\
|
||||
/* VK_KHR_depth_stencil_resolve */ \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR) \
|
||||
\
|
||||
/* VK_KHR_shader_float16_int8 */ \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR) \
|
||||
\
|
||||
/* VK_KHR_shader_float_controls */ \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR) \
|
||||
\
|
||||
/* VK_NV_clip_space_w_scaling */ \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV) \
|
||||
\
|
||||
@@ -3391,6 +3395,43 @@ void Deserialise(const VkPhysicalDeviceConservativeRasterizationPropertiesEXT &e
|
||||
DeserialiseNext(el.pNext);
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
void DoSerialise(SerialiserType &ser, VkPhysicalDeviceDepthStencilResolvePropertiesKHR &el)
|
||||
{
|
||||
RDCASSERT(ser.IsReading() ||
|
||||
el.sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR);
|
||||
SerialiseNext(ser, el.sType, el.pNext);
|
||||
|
||||
SERIALISE_MEMBER(supportedDepthResolveModes);
|
||||
SERIALISE_MEMBER(supportedStencilResolveModes);
|
||||
SERIALISE_MEMBER(independentResolveNone);
|
||||
SERIALISE_MEMBER(independentResolve);
|
||||
}
|
||||
|
||||
template <>
|
||||
void Deserialise(const VkPhysicalDeviceDepthStencilResolvePropertiesKHR &el)
|
||||
{
|
||||
DeserialiseNext(el.pNext);
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
void DoSerialise(SerialiserType &ser, VkSubpassDescriptionDepthStencilResolveKHR &el)
|
||||
{
|
||||
RDCASSERT(ser.IsReading() ||
|
||||
el.sType == VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR);
|
||||
SerialiseNext(ser, el.sType, el.pNext);
|
||||
|
||||
SERIALISE_MEMBER(depthResolveMode);
|
||||
SERIALISE_MEMBER(stencilResolveMode);
|
||||
SERIALISE_MEMBER_OPT(pDepthStencilResolveAttachment);
|
||||
}
|
||||
|
||||
template <>
|
||||
void Deserialise(const VkSubpassDescriptionDepthStencilResolveKHR &el)
|
||||
{
|
||||
DeserialiseNext(el.pNext);
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
void DoSerialise(SerialiserType &ser, VkPipelineRasterizationConservativeStateCreateInfoEXT &el)
|
||||
{
|
||||
@@ -5034,6 +5075,55 @@ void Deserialise(const VkPhysicalDeviceShaderAtomicInt64FeaturesKHR &el)
|
||||
DeserialiseNext(el.pNext);
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
void DoSerialise(SerialiserType &ser, VkPhysicalDeviceFloat16Int8FeaturesKHR &el)
|
||||
{
|
||||
RDCASSERT(ser.IsReading() ||
|
||||
el.sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR);
|
||||
SerialiseNext(ser, el.sType, el.pNext);
|
||||
|
||||
SERIALISE_MEMBER(shaderFloat16);
|
||||
SERIALISE_MEMBER(shaderInt8);
|
||||
}
|
||||
|
||||
template <>
|
||||
void Deserialise(const VkPhysicalDeviceFloat16Int8FeaturesKHR &el)
|
||||
{
|
||||
DeserialiseNext(el.pNext);
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
void DoSerialise(SerialiserType &ser, VkPhysicalDeviceFloatControlsPropertiesKHR &el)
|
||||
{
|
||||
RDCASSERT(ser.IsReading() ||
|
||||
el.sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR);
|
||||
SerialiseNext(ser, el.sType, el.pNext);
|
||||
|
||||
SERIALISE_MEMBER(separateDenormSettings);
|
||||
SERIALISE_MEMBER(separateRoundingModeSettings);
|
||||
SERIALISE_MEMBER(shaderSignedZeroInfNanPreserveFloat16);
|
||||
SERIALISE_MEMBER(shaderSignedZeroInfNanPreserveFloat32);
|
||||
SERIALISE_MEMBER(shaderSignedZeroInfNanPreserveFloat64);
|
||||
SERIALISE_MEMBER(shaderDenormPreserveFloat16);
|
||||
SERIALISE_MEMBER(shaderDenormPreserveFloat32);
|
||||
SERIALISE_MEMBER(shaderDenormPreserveFloat64);
|
||||
SERIALISE_MEMBER(shaderDenormFlushToZeroFloat16);
|
||||
SERIALISE_MEMBER(shaderDenormFlushToZeroFloat32);
|
||||
SERIALISE_MEMBER(shaderDenormFlushToZeroFloat64);
|
||||
SERIALISE_MEMBER(shaderRoundingModeRTEFloat16);
|
||||
SERIALISE_MEMBER(shaderRoundingModeRTEFloat32);
|
||||
SERIALISE_MEMBER(shaderRoundingModeRTEFloat64);
|
||||
SERIALISE_MEMBER(shaderRoundingModeRTZFloat16);
|
||||
SERIALISE_MEMBER(shaderRoundingModeRTZFloat32);
|
||||
SERIALISE_MEMBER(shaderRoundingModeRTZFloat64);
|
||||
}
|
||||
|
||||
template <>
|
||||
void Deserialise(const VkPhysicalDeviceFloatControlsPropertiesKHR &el)
|
||||
{
|
||||
DeserialiseNext(el.pNext);
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
void DoSerialise(SerialiserType &ser, VkSamplerYcbcrConversionInfo &el)
|
||||
{
|
||||
@@ -5876,6 +5966,7 @@ INSTANTIATE_SERIALISE_TYPE(VkPhysicalDevice16BitStorageFeatures);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDevice8BitStorageFeaturesKHR);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceASTCDecodeFeaturesEXT);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceConservativeRasterizationPropertiesEXT);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceDepthStencilResolvePropertiesKHR);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceDriverPropertiesKHR);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceExternalBufferInfo);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceExternalFenceInfo);
|
||||
@@ -5952,6 +6043,7 @@ INSTANTIATE_SERIALISE_TYPE(VkSubmitInfo);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkSubpassBeginInfoKHR);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkSubpassDependency2KHR);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkSubpassDescription2KHR);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkSubpassDescriptionDepthStencilResolveKHR);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkSubpassEndInfoKHR);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkSurfaceCapabilities2EXT);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkSurfaceCapabilities2KHR);
|
||||
|
||||
@@ -518,6 +518,20 @@ std::string DoStringise(const VkAttachmentDescriptionFlagBits &el)
|
||||
END_BITFIELD_STRINGISE();
|
||||
}
|
||||
|
||||
template <>
|
||||
std::string DoStringise(const VkResolveModeFlagBitsKHR &el)
|
||||
{
|
||||
BEGIN_BITFIELD_STRINGISE(VkResolveModeFlagBitsKHR);
|
||||
{
|
||||
STRINGISE_BITFIELD_VALUE(VK_RESOLVE_MODE_NONE_KHR);
|
||||
STRINGISE_BITFIELD_BIT(VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR);
|
||||
STRINGISE_BITFIELD_BIT(VK_RESOLVE_MODE_AVERAGE_BIT_KHR);
|
||||
STRINGISE_BITFIELD_BIT(VK_RESOLVE_MODE_MIN_BIT_KHR);
|
||||
STRINGISE_BITFIELD_BIT(VK_RESOLVE_MODE_MAX_BIT_KHR);
|
||||
}
|
||||
END_BITFIELD_STRINGISE();
|
||||
}
|
||||
|
||||
template <>
|
||||
std::string DoStringise(const VkSampleCountFlagBits &el)
|
||||
{
|
||||
|
||||
@@ -327,10 +327,15 @@ bool WrappedVulkan::Serialise_vkCreateSwapchainKHR(SerialiserType &ser, VkDevice
|
||||
|
||||
swapinfo.images.resize(NumImages);
|
||||
|
||||
VkImageCreateFlags imageFlags = 0;
|
||||
|
||||
if(CreateInfo.flags & VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR)
|
||||
imageFlags |= VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT;
|
||||
|
||||
const VkImageCreateInfo imInfo = {
|
||||
VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
|
||||
NULL,
|
||||
0,
|
||||
imageFlags,
|
||||
VK_IMAGE_TYPE_2D,
|
||||
CreateInfo.imageFormat,
|
||||
{CreateInfo.imageExtent.width, CreateInfo.imageExtent.height, 1},
|
||||
|
||||
Reference in New Issue
Block a user