mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-06 01:50:38 +00:00
Add support for VK_EXT_shader_atomic_float2
This commit is contained in:
@@ -69,6 +69,7 @@ Maintainers can update this file by updating vk.xml in this folder and running `
|
||||
* `VK_EXT_scalar_block_layout`
|
||||
* `VK_EXT_separate_stencil_usage`
|
||||
* `VK_EXT_shader_atomic_float`
|
||||
* `VK_EXT_shader_atomic_float2`
|
||||
* `VK_EXT_shader_demote_to_helper_invocation`
|
||||
* `VK_EXT_shader_image_atomic_int64`
|
||||
* `VK_EXT_shader_stencil_export`
|
||||
@@ -229,7 +230,6 @@ Ray tracing extensions are now standard and will likely be supported at some poi
|
||||
* `VK_EXT_primitive_topology_list_restart`
|
||||
* `VK_EXT_provoking_vertex`
|
||||
* `VK_EXT_rgba10x6_formats`
|
||||
* `VK_EXT_shader_atomic_float2`
|
||||
* `VK_EXT_texture_compression_astc_hdr`
|
||||
* `VK_EXT_vertex_input_dynamic_state`
|
||||
* `VK_EXT_ycbcr_2plane_444_formats`
|
||||
|
||||
@@ -982,6 +982,7 @@ DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceSamplerYcbcrConversionFeatures);
|
||||
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceScalarBlockLayoutFeatures);
|
||||
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures);
|
||||
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceShaderAtomicFloatFeaturesEXT);
|
||||
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT);
|
||||
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceShaderAtomicInt64Features);
|
||||
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceShaderClockFeaturesKHR);
|
||||
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceShaderCorePropertiesAMD);
|
||||
@@ -1322,6 +1323,7 @@ DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceSamplerYcbcrConversionFeatures);
|
||||
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceScalarBlockLayoutFeatures);
|
||||
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures);
|
||||
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceShaderAtomicFloatFeaturesEXT);
|
||||
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT);
|
||||
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceShaderAtomicInt64Features);
|
||||
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceShaderClockFeaturesKHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceShaderCorePropertiesAMD);
|
||||
|
||||
@@ -1014,6 +1014,9 @@ static const VkExtensionProperties supportedExtensions[] = {
|
||||
{
|
||||
VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME, VK_EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION,
|
||||
},
|
||||
{
|
||||
VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME, VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION,
|
||||
},
|
||||
{
|
||||
VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME,
|
||||
VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION,
|
||||
|
||||
@@ -333,6 +333,8 @@ static void AppendModifiedChainedStruct(byte *&tempMem, VkStruct *outputStruct,
|
||||
VkPhysicalDeviceShaderAtomicInt64Features); \
|
||||
COPY_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT, \
|
||||
VkPhysicalDeviceShaderAtomicFloatFeaturesEXT); \
|
||||
COPY_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT, \
|
||||
VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT); \
|
||||
COPY_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD, \
|
||||
VkPhysicalDeviceShaderCorePropertiesAMD); \
|
||||
COPY_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR, \
|
||||
@@ -756,7 +758,6 @@ static void AppendModifiedChainedStruct(byte *&tempMem, VkStruct *outputStruct,
|
||||
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_RGBA10X6_FORMATS_FEATURES_EXT: \
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT: \
|
||||
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: \
|
||||
|
||||
@@ -752,6 +752,10 @@ SERIALISE_VK_HANDLES();
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT, \
|
||||
VkPhysicalDeviceShaderAtomicFloatFeaturesEXT) \
|
||||
\
|
||||
/* VK_EXT_shader_atomic_float2 */ \
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT, \
|
||||
VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT) \
|
||||
\
|
||||
/* VK_EXT_shader_demote_to_helper_invocation */ \
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT, \
|
||||
VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT) \
|
||||
@@ -1291,9 +1295,6 @@ SERIALISE_VK_HANDLES();
|
||||
/* VK_EXT_rgba10x6_formats */ \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT) \
|
||||
\
|
||||
/* VK_EXT_shader_atomic_float2 */ \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT) \
|
||||
\
|
||||
/* VK_EXT_texture_compression_astc_hdr */ \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT) \
|
||||
\
|
||||
@@ -8203,6 +8204,33 @@ void Deserialise(const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT &el)
|
||||
DeserialiseNext(el.pNext);
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
void DoSerialise(SerialiserType &ser, VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT &el)
|
||||
{
|
||||
RDCASSERT(ser.IsReading() ||
|
||||
el.sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT);
|
||||
SerialiseNext(ser, el.sType, el.pNext);
|
||||
|
||||
SERIALISE_MEMBER(shaderBufferFloat16Atomics);
|
||||
SERIALISE_MEMBER(shaderBufferFloat16AtomicAdd);
|
||||
SERIALISE_MEMBER(shaderBufferFloat16AtomicMinMax);
|
||||
SERIALISE_MEMBER(shaderBufferFloat32AtomicMinMax);
|
||||
SERIALISE_MEMBER(shaderBufferFloat64AtomicMinMax);
|
||||
SERIALISE_MEMBER(shaderSharedFloat16Atomics);
|
||||
SERIALISE_MEMBER(shaderSharedFloat16AtomicAdd);
|
||||
SERIALISE_MEMBER(shaderSharedFloat16AtomicMinMax);
|
||||
SERIALISE_MEMBER(shaderSharedFloat32AtomicMinMax);
|
||||
SERIALISE_MEMBER(shaderSharedFloat64AtomicMinMax);
|
||||
SERIALISE_MEMBER(shaderImageFloat32AtomicMinMax);
|
||||
SERIALISE_MEMBER(sparseImageFloat32AtomicMinMax);
|
||||
}
|
||||
|
||||
template <>
|
||||
void Deserialise(const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT &el)
|
||||
{
|
||||
DeserialiseNext(el.pNext);
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
void DoSerialise(SerialiserType &ser, VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT &el)
|
||||
{
|
||||
@@ -9697,6 +9725,7 @@ INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceSamplerYcbcrConversionFeatures);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceScalarBlockLayoutFeatures);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceShaderAtomicFloatFeaturesEXT);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceShaderAtomicInt64Features);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceShaderClockFeaturesKHR);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceShaderCorePropertiesAMD);
|
||||
|
||||
@@ -2760,6 +2760,24 @@ bool WrappedVulkan::Serialise_vkCreateDevice(SerialiserType &ser, VkPhysicalDevi
|
||||
CHECK_PHYS_EXT_FEATURE(shaderSubgroupUniformControlFlow);
|
||||
}
|
||||
END_PHYS_EXT_CHECK();
|
||||
|
||||
BEGIN_PHYS_EXT_CHECK(VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT);
|
||||
{
|
||||
CHECK_PHYS_EXT_FEATURE(shaderBufferFloat16Atomics);
|
||||
CHECK_PHYS_EXT_FEATURE(shaderBufferFloat16AtomicAdd);
|
||||
CHECK_PHYS_EXT_FEATURE(shaderBufferFloat16AtomicMinMax);
|
||||
CHECK_PHYS_EXT_FEATURE(shaderBufferFloat32AtomicMinMax);
|
||||
CHECK_PHYS_EXT_FEATURE(shaderBufferFloat64AtomicMinMax);
|
||||
CHECK_PHYS_EXT_FEATURE(shaderSharedFloat16Atomics);
|
||||
CHECK_PHYS_EXT_FEATURE(shaderSharedFloat16AtomicAdd);
|
||||
CHECK_PHYS_EXT_FEATURE(shaderSharedFloat16AtomicMinMax);
|
||||
CHECK_PHYS_EXT_FEATURE(shaderSharedFloat32AtomicMinMax);
|
||||
CHECK_PHYS_EXT_FEATURE(shaderSharedFloat64AtomicMinMax);
|
||||
CHECK_PHYS_EXT_FEATURE(shaderImageFloat32AtomicMinMax);
|
||||
CHECK_PHYS_EXT_FEATURE(sparseImageFloat32AtomicMinMax);
|
||||
}
|
||||
END_PHYS_EXT_CHECK();
|
||||
}
|
||||
|
||||
if(availFeatures.depthClamp)
|
||||
|
||||
Reference in New Issue
Block a user