Add support for VK_EXT_validation_features

This commit is contained in:
baldurk
2019-02-05 17:14:37 +00:00
parent 4a9212861e
commit 61c0a41767
4 changed files with 57 additions and 4 deletions
+4 -1
View File
@@ -778,6 +778,7 @@ DECLARE_REFLECTION_STRUCT(VkSwapchainCounterCreateInfoEXT);
DECLARE_REFLECTION_STRUCT(VkSwapchainCreateInfoKHR);
DECLARE_REFLECTION_STRUCT(VkTextureLODGatherFormatPropertiesAMD);
DECLARE_REFLECTION_STRUCT(VkValidationCacheCreateInfoEXT);
DECLARE_REFLECTION_STRUCT(VkValidationFeaturesEXT);
DECLARE_REFLECTION_STRUCT(VkValidationFlagsEXT);
DECLARE_REFLECTION_STRUCT(VkWriteDescriptorSet);
@@ -991,6 +992,7 @@ DECLARE_DESERIALISE_TYPE(VkSwapchainCounterCreateInfoEXT);
DECLARE_DESERIALISE_TYPE(VkSwapchainCreateInfoKHR);
DECLARE_DESERIALISE_TYPE(VkTextureLODGatherFormatPropertiesAMD);
DECLARE_DESERIALISE_TYPE(VkValidationCacheCreateInfoEXT);
DECLARE_DESERIALISE_TYPE(VkValidationFeaturesEXT);
DECLARE_DESERIALISE_TYPE(VkValidationFlagsEXT);
DECLARE_DESERIALISE_TYPE(VkWriteDescriptorSet);
@@ -1218,5 +1220,6 @@ DECLARE_REFLECTION_ENUM(VkSurfaceTransformFlagBitsKHR);
DECLARE_REFLECTION_ENUM(VkSwapchainCreateFlagBitsKHR);
DECLARE_REFLECTION_ENUM(VkTessellationDomainOrigin);
DECLARE_REFLECTION_ENUM(VkValidationCheckEXT);
DECLARE_REFLECTION_ENUM(VkValidationFeaturesEXT);
DECLARE_REFLECTION_ENUM(VkValidationFeatureEnableEXT);
DECLARE_REFLECTION_ENUM(VkValidationFeatureDisableEXT);
DECLARE_REFLECTION_ENUM(VkVertexInputRate);
+3
View File
@@ -721,6 +721,9 @@ static const VkExtensionProperties supportedExtensions[] = {
{
VK_EXT_VALIDATION_CACHE_EXTENSION_NAME, VK_EXT_VALIDATION_CACHE_SPEC_VERSION,
},
{
VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME, VK_EXT_VALIDATION_FEATURES_SPEC_VERSION,
},
{
VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME, VK_EXT_VALIDATION_FLAGS_SPEC_VERSION,
},
+23 -3
View File
@@ -510,6 +510,9 @@ SERIALISE_VK_HANDLES();
PNEXT_STRUCT(VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT, \
VkShaderModuleValidationCacheCreateInfoEXT) \
\
/* VK_EXT_validation_features */ \
PNEXT_STRUCT(VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT, VkValidationFeaturesEXT) \
\
/* VK_EXT_validation_flags */ \
PNEXT_STRUCT(VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT, VkValidationFlagsEXT) \
\
@@ -832,9 +835,6 @@ SERIALISE_VK_HANDLES();
/* VK_EXT_scalar_block_layout */ \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT) \
\
/* VK_EXT_validation_features */ \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT) \
\
/* VK_GOOGLE_display_timing */ \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE) \
\
@@ -4126,6 +4126,26 @@ void Deserialise(const VkShaderModuleValidationCacheCreateInfoEXT &el)
DeserialiseNext(el.pNext);
}
template <typename SerialiserType>
void DoSerialise(SerialiserType &ser, VkValidationFeaturesEXT &el)
{
RDCASSERT(ser.IsReading() || el.sType == VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT);
SerialiseNext(ser, el.sType, el.pNext);
SERIALISE_MEMBER(enabledValidationFeatureCount);
SERIALISE_MEMBER_ARRAY(pEnabledValidationFeatures, enabledValidationFeatureCount);
SERIALISE_MEMBER(disabledValidationFeatureCount);
SERIALISE_MEMBER_ARRAY(pDisabledValidationFeatures, disabledValidationFeatureCount);
}
template <>
void Deserialise(const VkValidationFeaturesEXT &el)
{
DeserialiseNext(el.pNext);
delete[] el.pEnabledValidationFeatures;
delete[] el.pDisabledValidationFeatures;
}
template <typename SerialiserType>
void DoSerialise(SerialiserType &ser, VkValidationFlagsEXT &el)
{
+27
View File
@@ -2176,6 +2176,33 @@ std::string DoStringise(const VkValidationCheckEXT &el)
END_ENUM_STRINGISE();
}
template <>
std::string DoStringise(const VkValidationFeatureEnableEXT &el)
{
BEGIN_ENUM_STRINGISE(VkValidationFeatureEnableEXT);
{
STRINGISE_ENUM(VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT)
STRINGISE_ENUM(VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT)
}
END_ENUM_STRINGISE();
}
template <>
std::string DoStringise(const VkValidationFeatureDisableEXT &el)
{
BEGIN_ENUM_STRINGISE(VkValidationFeatureDisableEXT);
{
STRINGISE_ENUM(VK_VALIDATION_FEATURE_DISABLE_ALL_EXT)
STRINGISE_ENUM(VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT)
STRINGISE_ENUM(VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT)
STRINGISE_ENUM(VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT)
STRINGISE_ENUM(VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT)
STRINGISE_ENUM(VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT)
STRINGISE_ENUM(VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT)
}
END_ENUM_STRINGISE();
}
template <>
std::string DoStringise(const VkDriverIdKHR &el)
{