mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-09-22 05:35:48 +00:00
Added Android Hardware Buffer Extension Support
Added support for the VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER device extension on Android *Created necessary hooks for vkGetAndroidHardwareBufferPropertiesANDROID and vkGetMemoryAndroidHardwareBufferANDROID
This commit is contained in:
committed by
Baldur Karlsson
parent
1286f4b272
commit
f5786077e5
@@ -50,6 +50,26 @@ VkResult WrappedVulkan::vkCreateAndroidSurfaceKHR(VkInstance instance,
|
||||
return ret;
|
||||
}
|
||||
|
||||
// VK_ANDROID_external_memory_android_hardware_buffer
|
||||
VkResult WrappedVulkan::vkGetAndroidHardwareBufferPropertiesANDROID(
|
||||
VkDevice device, const struct AHardwareBuffer *buffer,
|
||||
VkAndroidHardwareBufferPropertiesANDROID *pProperties)
|
||||
{
|
||||
return ObjDisp(device)->GetAndroidHardwareBufferPropertiesANDROID(Unwrap(device), buffer,
|
||||
pProperties);
|
||||
}
|
||||
|
||||
// VK_ANDROID_external_memory_android_hardware_buffer
|
||||
VkResult WrappedVulkan::vkGetMemoryAndroidHardwareBufferANDROID(
|
||||
VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID *pInfo,
|
||||
struct AHardwareBuffer **pBuffer)
|
||||
{
|
||||
VkMemoryGetAndroidHardwareBufferInfoANDROID unwrappedInfo = *pInfo;
|
||||
unwrappedInfo.memory = Unwrap(unwrappedInfo.memory);
|
||||
return ObjDisp(device)->GetMemoryAndroidHardwareBufferANDROID(Unwrap(device), &unwrappedInfo,
|
||||
pBuffer);
|
||||
}
|
||||
|
||||
void VulkanReplay::OutputWindow::SetWindowHandle(WindowingData window)
|
||||
{
|
||||
RDCASSERT(window.system == WindowingSystem::Android, window.system);
|
||||
|
||||
@@ -748,6 +748,12 @@ static const VkExtensionProperties supportedExtensions[] = {
|
||||
{
|
||||
VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME, VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION,
|
||||
},
|
||||
#ifdef VK_ANDROID_external_memory_android_hardware_buffer
|
||||
{
|
||||
VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME,
|
||||
VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION,
|
||||
},
|
||||
#endif
|
||||
#ifdef VK_EXT_acquire_xlib_display
|
||||
{
|
||||
VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME, VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION,
|
||||
|
||||
@@ -1776,6 +1776,16 @@ public:
|
||||
VkResult vkCreateAndroidSurfaceKHR(VkInstance instance,
|
||||
const VkAndroidSurfaceCreateInfoKHR *pCreateInfo,
|
||||
const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface);
|
||||
|
||||
// VK_ANDROID_external_memory_android_hardware_buffer
|
||||
VkResult vkGetAndroidHardwareBufferPropertiesANDROID(
|
||||
VkDevice device, const struct AHardwareBuffer *buffer,
|
||||
VkAndroidHardwareBufferPropertiesANDROID *pProperties);
|
||||
|
||||
// VK_ANDROID_external_memory_android_hardware_buffer
|
||||
VkResult vkGetMemoryAndroidHardwareBufferANDROID(
|
||||
VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID *pInfo,
|
||||
struct AHardwareBuffer **pBuffer);
|
||||
#endif
|
||||
|
||||
#if defined(VK_USE_PLATFORM_MACOS_MVK)
|
||||
|
||||
@@ -144,20 +144,33 @@
|
||||
|
||||
#define HookInitExtension_Instance_Android() \
|
||||
HookInitExtension(VK_KHR_android_surface, CreateAndroidSurfaceKHR);
|
||||
#define HookDefine_Android() \
|
||||
HookDefine4(VkResult, vkCreateAndroidSurfaceKHR, VkInstance, instance, \
|
||||
const VkAndroidSurfaceCreateInfoKHR *, pCreateInfo, const VkAllocationCallbacks *, \
|
||||
pAllocator, VkSurfaceKHR *, pSurface);
|
||||
|
||||
#define HookInitExtension_Device_Android() \
|
||||
HookInitExtension(VK_ANDROID_external_memory_android_hardware_buffer, \
|
||||
GetMemoryAndroidHardwareBufferANDROID); \
|
||||
HookInitExtension(VK_ANDROID_external_memory_android_hardware_buffer, \
|
||||
GetAndroidHardwareBufferPropertiesANDROID);
|
||||
|
||||
#define HookDefine_Android() \
|
||||
HookDefine4(VkResult, vkCreateAndroidSurfaceKHR, VkInstance, instance, \
|
||||
const VkAndroidSurfaceCreateInfoKHR *, pCreateInfo, const VkAllocationCallbacks *, \
|
||||
pAllocator, VkSurfaceKHR *, pSurface); \
|
||||
HookDefine3(VkResult, vkGetAndroidHardwareBufferPropertiesANDROID, VkDevice, device, \
|
||||
const struct AHardwareBuffer *, buffer, VkAndroidHardwareBufferPropertiesANDROID *, \
|
||||
pProperties); \
|
||||
HookDefine3(VkResult, vkGetMemoryAndroidHardwareBufferANDROID, VkDevice, device, \
|
||||
const VkMemoryGetAndroidHardwareBufferInfoANDROID *, pInfo, \
|
||||
struct AHardwareBuffer **, pBuffer);
|
||||
|
||||
#else // defined(VK_USE_PLATFORM_ANDROID_KHR)
|
||||
|
||||
#define HookInitExtension_Instance_Android()
|
||||
#define HookInitExtension_Device_Android()
|
||||
#define HookDefine_Android()
|
||||
|
||||
#endif // defined(VK_USE_PLATFORM_ANDROID_KHR)
|
||||
|
||||
#define HookInitExtension_PhysDev_Android()
|
||||
#define HookInitExtension_Device_Android()
|
||||
|
||||
#if defined(VK_USE_PLATFORM_GGP)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user