diff --git a/src/video_core/vulkan_common/vulkan.h b/src/video_core/vulkan_common/vulkan.h index 5794cf9803..c24653d937 100644 --- a/src/video_core/vulkan_common/vulkan.h +++ b/src/video_core/vulkan_common/vulkan.h @@ -21,6 +21,11 @@ #endif #include +// Ensure extension name macro exists even with older SDKs +#ifndef VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME +#define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME \ + "VK_ANDROID_external_memory_android_hardware_buffer" +#endif #ifndef VK_KHR_MAINTENANCE_1_EXTENSION_NAME diff --git a/src/video_core/vulkan_common/vulkan_wrapper.cpp b/src/video_core/vulkan_common/vulkan_wrapper.cpp index ed7e36d87b..40a671500e 100644 --- a/src/video_core/vulkan_common/vulkan_wrapper.cpp +++ b/src/video_core/vulkan_common/vulkan_wrapper.cpp @@ -224,8 +224,10 @@ void Load(VkDevice device, DeviceDispatch& dld) noexcept { X(vkGetPipelineExecutableStatisticsKHR); X(vkGetSemaphoreCounterValue); // Android AHardwareBuffer external memory extension (present on Android when enabled) +#ifdef __ANDROID__ X(vkGetAndroidHardwareBufferPropertiesANDROID); X(vkGetMemoryAndroidHardwareBufferANDROID); +#endif X(vkMapMemory); X(vkQueueSubmit); X(vkResetFences); diff --git a/src/video_core/vulkan_common/vulkan_wrapper.h b/src/video_core/vulkan_common/vulkan_wrapper.h index bf564beda7..839b3c5bab 100644 --- a/src/video_core/vulkan_common/vulkan_wrapper.h +++ b/src/video_core/vulkan_common/vulkan_wrapper.h @@ -18,6 +18,10 @@ #include "common/common_types.h" #include "video_core/vulkan_common/vulkan.h" +#ifdef __ANDROID__ +#include +#endif + #ifdef _MSC_VER #pragma warning(disable : 26812) // Disable prefer enum class over enum #endif @@ -324,8 +328,10 @@ struct DeviceDispatch : InstanceDispatch { PFN_vkGetQueryPoolResults vkGetQueryPoolResults{}; PFN_vkGetSemaphoreCounterValue vkGetSemaphoreCounterValue{}; // Android hardware buffer external memory extension functions +#ifdef __ANDROID__ PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID{}; PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID{}; +#endif PFN_vkMapMemory vkMapMemory{}; PFN_vkQueueSubmit vkQueueSubmit{}; PFN_vkResetFences vkResetFences{};