mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-29 13:20:54 +00:00
Added Struct Handling/Serialization
Added initial support for these structs: *VkAndroidHardwareBufferPropertiesANDROID *VkMemoryGetAndroidHardwareBufferInfoANDROID *VkAndroidHardwareBufferFormatPropertiesANDROID *VkExternalFormatANDROID *VkAndroidHardwareBufferUsageANDROID *VkImportAndroidHardwareBufferInfoANDROID
This commit is contained in:
committed by
Baldur Karlsson
parent
f5786077e5
commit
6236f2b6c1
@@ -1445,6 +1445,23 @@ DECLARE_DESERIALISE_TYPE(VkWin32KeyedMutexAcquireReleaseInfoKHR);
|
||||
DECLARE_DESERIALISE_TYPE(VkWin32KeyedMutexAcquireReleaseInfoNV);
|
||||
#endif
|
||||
|
||||
// android only structs
|
||||
#ifdef VK_USE_PLATFORM_ANDROID_KHR
|
||||
DECLARE_REFLECTION_STRUCT(VkAndroidHardwareBufferUsageANDROID);
|
||||
DECLARE_REFLECTION_STRUCT(VkAndroidHardwareBufferPropertiesANDROID);
|
||||
DECLARE_REFLECTION_STRUCT(VkAndroidHardwareBufferFormatPropertiesANDROID);
|
||||
DECLARE_REFLECTION_STRUCT(VkImportAndroidHardwareBufferInfoANDROID);
|
||||
DECLARE_REFLECTION_STRUCT(VkMemoryGetAndroidHardwareBufferInfoANDROID);
|
||||
DECLARE_REFLECTION_STRUCT(VkExternalFormatANDROID);
|
||||
|
||||
DECLARE_DESERIALISE_TYPE(VkAndroidHardwareBufferUsageANDROID);
|
||||
DECLARE_DESERIALISE_TYPE(VkAndroidHardwareBufferPropertiesANDROID);
|
||||
DECLARE_DESERIALISE_TYPE(VkAndroidHardwareBufferFormatPropertiesANDROID);
|
||||
DECLARE_DESERIALISE_TYPE(VkImportAndroidHardwareBufferInfoANDROID);
|
||||
DECLARE_DESERIALISE_TYPE(VkMemoryGetAndroidHardwareBufferInfoANDROID);
|
||||
DECLARE_DESERIALISE_TYPE(VkExternalFormatANDROID);
|
||||
#endif
|
||||
|
||||
// enums
|
||||
|
||||
DECLARE_REFLECTION_ENUM(VkAccessFlagBits);
|
||||
|
||||
@@ -275,7 +275,7 @@ SERIALISE_VK_HANDLES();
|
||||
|
||||
#ifdef VK_USE_PLATFORM_WIN32_KHR
|
||||
|
||||
#define HANDLE_PNEXT_OS() \
|
||||
#define HANDLE_PNEXT_OS_WIN32() \
|
||||
/* VK_NV_external_memory_win32 */ \
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV, VkImportMemoryWin32HandleInfoNV) \
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV, VkExportMemoryWin32HandleInfoNV) \
|
||||
@@ -321,7 +321,7 @@ SERIALISE_VK_HANDLES();
|
||||
|
||||
#else
|
||||
|
||||
#define HANDLE_PNEXT_OS() \
|
||||
#define HANDLE_PNEXT_OS_WIN32() \
|
||||
/* VK_NV_external_memory_win32 */ \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV) \
|
||||
@@ -356,10 +356,38 @@ SERIALISE_VK_HANDLES();
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef VK_USE_PLATFORM_ANDROID_KHR
|
||||
|
||||
#define HANDLE_PNEXT_OS_ANDROID() \
|
||||
/* VK_ANDROID_external_memory_android_hardware_buffer */ \
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID, \
|
||||
VkAndroidHardwareBufferUsageANDROID) \
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID, \
|
||||
VkAndroidHardwareBufferPropertiesANDROID) \
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID, \
|
||||
VkAndroidHardwareBufferFormatPropertiesANDROID) \
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID, \
|
||||
VkImportAndroidHardwareBufferInfoANDROID) \
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID, \
|
||||
VkMemoryGetAndroidHardwareBufferInfoANDROID) \
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID, VkExternalFormatANDROID)
|
||||
#else
|
||||
|
||||
#define HANDLE_PNEXT_OS_ANDROID() \
|
||||
/* VK_ANDROID_external_memory_android_hardware_buffer */ \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID)
|
||||
#endif
|
||||
|
||||
// pNext structure type dispatch
|
||||
#define HANDLE_PNEXT() \
|
||||
/* OS-specific extensions */ \
|
||||
HANDLE_PNEXT_OS() \
|
||||
HANDLE_PNEXT_OS_WIN32() \
|
||||
HANDLE_PNEXT_OS_ANDROID() \
|
||||
\
|
||||
/* Core 1.0 structs. Should never be serialised in a pNext chain */ \
|
||||
PNEXT_STRUCT(VK_STRUCTURE_TYPE_APPLICATION_INFO, VkApplicationInfo) \
|
||||
@@ -1058,14 +1086,6 @@ SERIALISE_VK_HANDLES();
|
||||
/* VK_AMD_shader_core_properties2 */ \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD) \
|
||||
\
|
||||
/* VK_ANDROID_external_memory_android_hardware_buffer */ \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID) \
|
||||
\
|
||||
/* VK_EXT_blend_operation_advanced */ \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT) \
|
||||
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT) \
|
||||
@@ -9319,3 +9339,114 @@ INSTANTIATE_SERIALISE_TYPE(VkSurfaceCapabilitiesFullScreenExclusiveEXT);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkSurfaceFullScreenExclusiveInfoEXT);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkSurfaceFullScreenExclusiveWin32InfoEXT);
|
||||
#endif
|
||||
|
||||
#ifdef VK_USE_PLATFORM_ANDROID_KHR
|
||||
template <typename SerialiserType>
|
||||
void DoSerialise(SerialiserType &ser, VkAndroidHardwareBufferPropertiesANDROID &el)
|
||||
{
|
||||
RDCASSERT(ser.IsReading() ||
|
||||
el.sType == VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID);
|
||||
SerialiseNext(ser, el.sType, el.pNext);
|
||||
|
||||
SERIALISE_MEMBER(allocationSize);
|
||||
SERIALISE_MEMBER_TYPED(uint32_t, memoryTypeBits);
|
||||
}
|
||||
|
||||
template <>
|
||||
void Deserialise(const VkAndroidHardwareBufferPropertiesANDROID &el)
|
||||
{
|
||||
DeserialiseNext(el.pNext);
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
void DoSerialise(SerialiserType &ser, VkMemoryGetAndroidHardwareBufferInfoANDROID &el)
|
||||
{
|
||||
RDCASSERT(ser.IsReading() ||
|
||||
el.sType == VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID);
|
||||
SerialiseNext(ser, el.sType, el.pNext);
|
||||
|
||||
SERIALISE_MEMBER(memory);
|
||||
}
|
||||
|
||||
template <>
|
||||
void Deserialise(const VkMemoryGetAndroidHardwareBufferInfoANDROID &el)
|
||||
{
|
||||
DeserialiseNext(el.pNext);
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
void DoSerialise(SerialiserType &ser, VkAndroidHardwareBufferFormatPropertiesANDROID &el)
|
||||
{
|
||||
RDCASSERT(ser.IsReading() ||
|
||||
el.sType == VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID);
|
||||
SerialiseNext(ser, el.sType, el.pNext);
|
||||
|
||||
SERIALISE_MEMBER(format);
|
||||
SERIALISE_MEMBER(externalFormat);
|
||||
SERIALISE_MEMBER_VKFLAGS(VkFormatFeatureFlags, formatFeatures);
|
||||
SERIALISE_MEMBER(samplerYcbcrConversionComponents);
|
||||
SERIALISE_MEMBER(suggestedYcbcrModel);
|
||||
SERIALISE_MEMBER(suggestedYcbcrRange);
|
||||
SERIALISE_MEMBER(suggestedXChromaOffset);
|
||||
SERIALISE_MEMBER(suggestedYChromaOffset);
|
||||
}
|
||||
|
||||
template <>
|
||||
void Deserialise(const VkAndroidHardwareBufferFormatPropertiesANDROID &el)
|
||||
{
|
||||
DeserialiseNext(el.pNext);
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
void DoSerialise(SerialiserType &ser, VkExternalFormatANDROID &el)
|
||||
{
|
||||
RDCASSERT(ser.IsReading() || el.sType == VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID);
|
||||
SerialiseNext(ser, el.sType, el.pNext);
|
||||
|
||||
SERIALISE_MEMBER(externalFormat);
|
||||
}
|
||||
|
||||
template <>
|
||||
void Deserialise(const VkExternalFormatANDROID &el)
|
||||
{
|
||||
DeserialiseNext(el.pNext);
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
void DoSerialise(SerialiserType &ser, VkAndroidHardwareBufferUsageANDROID &el)
|
||||
{
|
||||
RDCASSERT(ser.IsReading() || el.sType == VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID);
|
||||
SerialiseNext(ser, el.sType, el.pNext);
|
||||
|
||||
SERIALISE_MEMBER(androidHardwareBufferUsage);
|
||||
}
|
||||
|
||||
template <>
|
||||
void Deserialise(const VkAndroidHardwareBufferUsageANDROID &el)
|
||||
{
|
||||
DeserialiseNext(el.pNext);
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
void DoSerialise(SerialiserType &ser, VkImportAndroidHardwareBufferInfoANDROID &el)
|
||||
{
|
||||
RDCASSERT(ser.IsReading() ||
|
||||
el.sType == VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID);
|
||||
SerialiseNext(ser, el.sType, el.pNext);
|
||||
|
||||
// SERIALISE_MEMBER(buffer);
|
||||
}
|
||||
|
||||
template <>
|
||||
void Deserialise(const VkImportAndroidHardwareBufferInfoANDROID &el)
|
||||
{
|
||||
DeserialiseNext(el.pNext);
|
||||
}
|
||||
|
||||
INSTANTIATE_SERIALISE_TYPE(VkAndroidHardwareBufferUsageANDROID);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkAndroidHardwareBufferPropertiesANDROID);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkAndroidHardwareBufferFormatPropertiesANDROID);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkImportAndroidHardwareBufferInfoANDROID);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkMemoryGetAndroidHardwareBufferInfoANDROID);
|
||||
INSTANTIATE_SERIALISE_TYPE(VkExternalFormatANDROID);
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user