diff --git a/src/gfxstream/guest/android/ANativeWindowAndroid.cpp b/src/gfxstream/guest/android/ANativeWindowAndroid.cpp index caba878c932..5131c4e12be 100644 --- a/src/gfxstream/guest/android/ANativeWindowAndroid.cpp +++ b/src/gfxstream/guest/android/ANativeWindowAndroid.cpp @@ -4,26 +4,27 @@ */ #include "ANativeWindowAndroid.h" +#include "util/detect_os.h" -#if defined(__ANDROID__) +#if DETECT_OS_ANDROID #include #include -#endif // defined(__ANDROID__) +#endif // DETECT_OS_ANDROID namespace gfxstream { bool ANativeWindowHelperAndroid::isValid(EGLNativeWindowType window) { -#if defined(__ANDROID__) +#if DETECT_OS_ANDROID auto* anw = reinterpret_cast(window); return anw->common.magic == ANDROID_NATIVE_WINDOW_MAGIC; #else (void)window; return false; -#endif // defined(__ANDROID__) +#endif // DETECT_OS_ANDROID } bool ANativeWindowHelperAndroid::isValid(EGLClientBuffer buffer) { -#if defined(__ANDROID__) +#if DETECT_OS_ANDROID auto* anwb = reinterpret_cast(buffer); if (anwb->common.magic != ANDROID_NATIVE_BUFFER_MAGIC) { return false; @@ -38,130 +39,130 @@ bool ANativeWindowHelperAndroid::isValid(EGLClientBuffer buffer) { #else (void)buffer; return false; -#endif // defined(__ANDROID__) +#endif // DETECT_OS_ANDROID } void ANativeWindowHelperAndroid::acquire(EGLNativeWindowType window) { -#if defined(__ANDROID__) +#if DETECT_OS_ANDROID auto* anw = reinterpret_cast(window); ANativeWindow_acquire(anw); #else (void)window; -#endif // defined(__ANDROID__) +#endif // DETECT_OS_ANDROID } void ANativeWindowHelperAndroid::release(EGLNativeWindowType window) { -#if defined(__ANDROID__) +#if DETECT_OS_ANDROID auto* anw = reinterpret_cast(window); ANativeWindow_release(anw); #else (void)window; -#endif // defined(__ANDROID__) +#endif // DETECT_OS_ANDROID } void ANativeWindowHelperAndroid::acquire(EGLClientBuffer buffer) { -#if defined(__ANDROID__) +#if DETECT_OS_ANDROID auto* anwb = reinterpret_cast(buffer); anwb->incStrong(anwb); #else (void)buffer; -#endif // defined(__ANDROID__) +#endif // DETECT_OS_ANDROID } void ANativeWindowHelperAndroid::release(EGLClientBuffer buffer) { -#if defined(__ANDROID__) +#if DETECT_OS_ANDROID auto* anwb = reinterpret_cast(buffer); anwb->decStrong(anwb); #else (void)buffer; -#endif // defined(__ANDROID__) +#endif // DETECT_OS_ANDROID } int ANativeWindowHelperAndroid::getConsumerUsage(EGLNativeWindowType window, int* usage) { -#if defined(__ANDROID__) +#if DETECT_OS_ANDROID auto* anw = reinterpret_cast(window); return anw->query(anw, NATIVE_WINDOW_CONSUMER_USAGE_BITS, usage); #else (void)window; (void)usage; return -1; -#endif // defined(__ANDROID__) +#endif // DETECT_OS_ANDROID } void ANativeWindowHelperAndroid::setUsage(EGLNativeWindowType window, int usage) { -#if defined(__ANDROID__) +#if DETECT_OS_ANDROID auto* anw = reinterpret_cast(window); ANativeWindow_setUsage(anw, usage); #else (void)window; (void)usage; -#endif // defined(__ANDROID__) +#endif // DETECT_OS_ANDROID } int ANativeWindowHelperAndroid::getWidth(EGLNativeWindowType window) { -#if defined(__ANDROID__) +#if DETECT_OS_ANDROID auto* anw = reinterpret_cast(window); return ANativeWindow_getWidth(anw); #else (void)window; return -1; -#endif // defined(__ANDROID__) +#endif // DETECT_OS_ANDROID } int ANativeWindowHelperAndroid::getHeight(EGLNativeWindowType window) { -#if defined(__ANDROID__) +#if DETECT_OS_ANDROID auto* anw = reinterpret_cast(window); return ANativeWindow_getHeight(anw); #else (void)window; return -1; -#endif // defined(__ANDROID__) +#endif // DETECT_OS_ANDROID } int ANativeWindowHelperAndroid::getWidth(EGLClientBuffer buffer) { -#if defined(__ANDROID__) +#if DETECT_OS_ANDROID auto* anwb = reinterpret_cast(buffer); return anwb->width; #else (void)buffer; return -1; -#endif // defined(__ANDROID__) +#endif // DETECT_OS_ANDROID } int ANativeWindowHelperAndroid::getHeight(EGLClientBuffer buffer) { -#if defined(__ANDROID__) +#if DETECT_OS_ANDROID auto* anwb = reinterpret_cast(buffer); return anwb->height; #else (void)buffer; return -1; -#endif // defined(__ANDROID__) +#endif // DETECT_OS_ANDROID } int ANativeWindowHelperAndroid::getFormat(EGLClientBuffer buffer, Gralloc* gralloc) { -#if defined(__ANDROID__) +#if DETECT_OS_ANDROID auto* anb = reinterpret_cast(buffer); return gralloc->getFormat(anb->handle); #else (void)buffer; (void)gralloc; return -1; -#endif // defined(__ANDROID__) +#endif // DETECT_OS_ANDROID } void ANativeWindowHelperAndroid::setSwapInterval(EGLNativeWindowType window, int interval) { -#if defined(__ANDROID__) +#if DETECT_OS_ANDROID auto* anw = reinterpret_cast(window); anw->setSwapInterval(anw, interval); #else (void)window; (void)interval; -#endif // defined(__ANDROID__) +#endif // DETECT_OS_ANDROID } int ANativeWindowHelperAndroid::queueBuffer(EGLNativeWindowType window, EGLClientBuffer buffer, int fence) { -#if defined(__ANDROID__) +#if DETECT_OS_ANDROID auto* anw = reinterpret_cast(window); auto* anb = reinterpret_cast(buffer); return ANativeWindow_queueBuffer(anw, anb, fence); @@ -170,12 +171,12 @@ int ANativeWindowHelperAndroid::queueBuffer(EGLNativeWindowType window, EGLClien (void)buffer; (void)fence; return -1; -#endif // defined(__ANDROID__) +#endif // DETECT_OS_ANDROID } int ANativeWindowHelperAndroid::dequeueBuffer(EGLNativeWindowType window, EGLClientBuffer* buffer, int* fence) { -#if defined(__ANDROID__) +#if DETECT_OS_ANDROID auto* anw = reinterpret_cast(window); auto* anb = reinterpret_cast(buffer); return ANativeWindow_dequeueBuffer(anw, anb, fence); @@ -184,11 +185,11 @@ int ANativeWindowHelperAndroid::dequeueBuffer(EGLNativeWindowType window, EGLCli (void)buffer; (void)fence; return -1; -#endif // defined(__ANDROID__) +#endif // DETECT_OS_ANDROID } int ANativeWindowHelperAndroid::cancelBuffer(EGLNativeWindowType window, EGLClientBuffer buffer) { -#if defined(__ANDROID__) +#if DETECT_OS_ANDROID auto* anw = reinterpret_cast(window); auto* anb = reinterpret_cast(buffer); return ANativeWindow_cancelBuffer(anw, anb, -1); @@ -196,18 +197,18 @@ int ANativeWindowHelperAndroid::cancelBuffer(EGLNativeWindowType window, EGLClie (void)window; (void)buffer; return -1; -#endif // defined(__ANDROID__) +#endif // DETECT_OS_ANDROID } int ANativeWindowHelperAndroid::getHostHandle(EGLClientBuffer buffer, Gralloc* gralloc) { -#if defined(__ANDROID__) +#if DETECT_OS_ANDROID auto* anb = reinterpret_cast(buffer); return gralloc->getHostHandle(anb->handle); #else (void)buffer; (void)gralloc; return -1; -#endif // defined(__ANDROID__) +#endif // DETECT_OS_ANDROID } ANativeWindowHelper* createPlatformANativeWindowHelper() { diff --git a/src/gfxstream/guest/android/GfxStreamGralloc.cpp b/src/gfxstream/guest/android/GfxStreamGralloc.cpp index 33166cd42cf..1a70a9da5b9 100644 --- a/src/gfxstream/guest/android/GfxStreamGralloc.cpp +++ b/src/gfxstream/guest/android/GfxStreamGralloc.cpp @@ -4,8 +4,9 @@ */ #include "gfxstream/guest/GfxStreamGralloc.h" +#include "util/detect_os.h" -#if defined(__ANDROID__) +#if DETECT_OS_ANDROID #include diff --git a/src/gfxstream/guest/platform/kumquat/VirtGpuKumquatDevice.cpp b/src/gfxstream/guest/platform/kumquat/VirtGpuKumquatDevice.cpp index 4f87f6ba3ff..01ac74b20a6 100644 --- a/src/gfxstream/guest/platform/kumquat/VirtGpuKumquatDevice.cpp +++ b/src/gfxstream/guest/platform/kumquat/VirtGpuKumquatDevice.cpp @@ -45,7 +45,7 @@ VirtGpuKumquatDevice::VirtGpuKumquatDevice(enum VirtGpuCapset capset, int32_t de memset(&mCaps, 0, sizeof(struct VirtGpuCaps)); -#ifdef __ANDROID__ +#if DETECT_OS_ANDROID processName = getprogname(); #endif diff --git a/src/gfxstream/guest/platform/linux/LinuxVirtGpuDevice.cpp b/src/gfxstream/guest/platform/linux/LinuxVirtGpuDevice.cpp index 6a6ad913e78..533a14f0338 100644 --- a/src/gfxstream/guest/platform/linux/LinuxVirtGpuDevice.cpp +++ b/src/gfxstream/guest/platform/linux/LinuxVirtGpuDevice.cpp @@ -47,7 +47,7 @@ LinuxVirtGpuDevice::LinuxVirtGpuDevice(enum VirtGpuCapset capset, int32_t descri memset(&mCaps, 0, sizeof(struct VirtGpuCaps)); -#ifdef __ANDROID__ +#if DETECT_OS_ANDROID processName = getprogname(); #endif diff --git a/src/gfxstream/guest/vulkan_enc/AndroidHardwareBuffer.cpp b/src/gfxstream/guest/vulkan_enc/AndroidHardwareBuffer.cpp index 42c49a2041c..66c1d32298c 100644 --- a/src/gfxstream/guest/vulkan_enc/AndroidHardwareBuffer.cpp +++ b/src/gfxstream/guest/vulkan_enc/AndroidHardwareBuffer.cpp @@ -3,8 +3,9 @@ * SPDX-License-Identifier: MIT */ #include "AndroidHardwareBuffer.h" +#include "util/detect_os.h" -#if defined(__ANDROID__) || defined(__linux__) +#if DETECT_OS_ANDROID || defined(__linux__) #include #define DRM_FORMAT_YVU420_ANDROID fourcc_code('9', '9', '9', '7') #define DRM_FORMAT_D16_UNORM fourcc_code('9', '9', '9', '6') @@ -160,7 +161,7 @@ VkResult getAndroidHardwareBufferPropertiesANDROID( ahbFormatProps->suggestedXChromaOffset = VK_CHROMA_LOCATION_MIDPOINT; ahbFormatProps->suggestedYChromaOffset = VK_CHROMA_LOCATION_MIDPOINT; -#if defined(__ANDROID__) || defined(__linux__) +#if DETECT_OS_ANDROID || defined(__linux__) if (android_format_is_yuv(format)) { uint32_t drmFormat = grallocHelper->getFormatDrmFourcc(buffer); ahbFormatProps->externalFormat = static_cast(drmFormat); diff --git a/src/gfxstream/guest/vulkan_enc/HostVisibleMemoryVirtualization.cpp b/src/gfxstream/guest/vulkan_enc/HostVisibleMemoryVirtualization.cpp index b4588c24b2c..a54d7971018 100644 --- a/src/gfxstream/guest/vulkan_enc/HostVisibleMemoryVirtualization.cpp +++ b/src/gfxstream/guest/vulkan_enc/HostVisibleMemoryVirtualization.cpp @@ -3,6 +3,7 @@ * SPDX-License-Identifier: MIT */ #include "HostVisibleMemoryVirtualization.h" +#include "util/detect_os.h" #include @@ -20,14 +21,14 @@ CoherentMemory::CoherentMemory(VirtGpuResourceMappingPtr blobMapping, uint64_t s mBaseAddr = blobMapping->asRawPtr(); } -#if defined(__ANDROID__) +#if DETECT_OS_ANDROID CoherentMemory::CoherentMemory(GoldfishAddressSpaceBlockPtr block, uint64_t gpuAddr, uint64_t size, VkDevice device, VkDeviceMemory memory) : mSize(size), mBlock(block), mDevice(device), mMemory(memory) { mHeap = u_mmInit(0, kHostVisibleHeapSize); mBaseAddr = (uint8_t*)block->mmap(gpuAddr); } -#endif // defined(__ANDROID__) +#endif // DETECT_OS_ANDROID CoherentMemory::~CoherentMemory() { ResourceTracker::getThreadLocalEncoder()->vkFreeMemorySyncGOOGLE(mDevice, mMemory, nullptr, diff --git a/src/gfxstream/guest/vulkan_enc/HostVisibleMemoryVirtualization.h b/src/gfxstream/guest/vulkan_enc/HostVisibleMemoryVirtualization.h index bbc26fdde1d..f6cf9e95b96 100644 --- a/src/gfxstream/guest/vulkan_enc/HostVisibleMemoryVirtualization.h +++ b/src/gfxstream/guest/vulkan_enc/HostVisibleMemoryVirtualization.h @@ -9,6 +9,7 @@ #include "VirtGpu.h" #include "goldfish_address_space.h" #include "util/u_mm.h" +#include "util/detect_os.h" constexpr uint64_t kMegaByte = 1048576; @@ -31,10 +32,10 @@ class CoherentMemory { CoherentMemory(VirtGpuResourceMappingPtr blobMapping, uint64_t size, VkDevice device, VkDeviceMemory memory); -#if defined(__ANDROID__) +#if DETECT_OS_ANDROID CoherentMemory(GoldfishAddressSpaceBlockPtr block, uint64_t gpuAddr, uint64_t size, VkDevice device, VkDeviceMemory memory); -#endif // defined(__ANDROID__) +#endif // DETECT_OS_ANDROID ~CoherentMemory(); diff --git a/src/gfxstream/guest/vulkan_enc/ResourceTracker.cpp b/src/gfxstream/guest/vulkan_enc/ResourceTracker.cpp index af09b5ff745..bba49845081 100644 --- a/src/gfxstream/guest/vulkan_enc/ResourceTracker.cpp +++ b/src/gfxstream/guest/vulkan_enc/ResourceTracker.cpp @@ -1421,12 +1421,12 @@ void ResourceTracker::setupFeatures(const struct GfxStreamVkFeatureInfo* feature } mFeatureInfo = *features; -#if defined(__ANDROID__) +#if DETECT_OS_ANDROID if (mFeatureInfo.hasDirectMem) { mGoldfishAddressSpaceBlockProvider.reset( new GoldfishAddressSpaceBlockProvider(GoldfishAddressSpaceSubdeviceType::NoSubdevice)); } -#endif // defined(__ANDROID__) +#endif // DETECT_OS_ANDROID #ifdef VK_USE_PLATFORM_FUCHSIA if (mFeatureInfo.hasVulkan) { @@ -2903,7 +2903,7 @@ CoherentMemoryPtr ResourceTracker::createCoherentMemory( VkEncoder* enc, VkResult& res) { CoherentMemoryPtr coherentMemory = nullptr; -#if defined(__ANDROID__) +#if DETECT_OS_ANDROID if (mFeatureInfo.hasDirectMem) { uint64_t gpuAddr = 0; GoldfishAddressSpaceBlockPtr block = nullptr; @@ -2931,7 +2931,7 @@ CoherentMemoryPtr ResourceTracker::createCoherentMemory( block, gpuAddr, hostAllocationInfo.allocationSize, device, mem); } } else -#endif // defined(__ANDROID__) +#endif // DETECT_OS_ANDROID if (mFeatureInfo.hasVirtioGpuNext) { struct VirtGpuCreateBlob createBlob = {0}; uint64_t hvaSizeId[3]; @@ -6353,7 +6353,7 @@ VkResult ResourceTracker::on_vkMapMemoryIntoAddressSpaceGOOGLE_pre(void*, VkResu return VK_ERROR_OUT_OF_HOST_MEMORY; } -#if defined(__ANDROID__) +#if DETECT_OS_ANDROID auto& memInfo = it->second; GoldfishAddressSpaceBlockPtr block = std::make_shared(); diff --git a/src/gfxstream/guest/vulkan_enc/ResourceTracker.h b/src/gfxstream/guest/vulkan_enc/ResourceTracker.h index c7c434026be..8e3834a3ad2 100644 --- a/src/gfxstream/guest/vulkan_enc/ResourceTracker.h +++ b/src/gfxstream/guest/vulkan_enc/ResourceTracker.h @@ -758,9 +758,9 @@ class ResourceTracker { uint64_t coherentMemorySize = 0; uint64_t coherentMemoryOffset = 0; -#if defined(__ANDROID__) +#if DETECT_OS_ANDROID GoldfishAddressSpaceBlockPtr goldfishBlock = nullptr; -#endif // defined(__ANDROID__) +#endif // DETECT_OS_ANDROID CoherentMemoryPtr coherentMemory = nullptr; VirtGpuResourcePtr blobPtr = nullptr; }; @@ -894,9 +894,9 @@ class ResourceTracker { struct GfxStreamVkFeatureInfo mFeatureInfo = {}; -#if defined(__ANDROID__) +#if DETECT_OS_ANDROID std::unique_ptr mGoldfishAddressSpaceBlockProvider; -#endif // defined(__ANDROID__) +#endif // DETECT_OS_ANDROID #if defined(VK_USE_PLATFORM_ANDROID_KHR) std::unique_ptr mGralloc = nullptr; diff --git a/src/gfxstream/guest/vulkan_enc/Resources.cpp b/src/gfxstream/guest/vulkan_enc/Resources.cpp index ccc59a9e6c6..6a63039f16d 100644 --- a/src/gfxstream/guest/vulkan_enc/Resources.cpp +++ b/src/gfxstream/guest/vulkan_enc/Resources.cpp @@ -7,6 +7,7 @@ #include #include "util/log.h" +#include "util/detect_os.h" #define GOLDFISH_VK_OBJECT_DEBUG 0 @@ -20,7 +21,7 @@ extern "C" { -#if defined(__ANDROID__) || defined(__Fuchsia__) +#if DETECT_OS_ANDROID || defined(__Fuchsia__) #define SET_HWVULKAN_DISPATCH_MAGIC res->dispatch.magic = HWVULKAN_DISPATCH_MAGIC; #elif defined(__linux__) #define SET_HWVULKAN_DISPATCH_MAGIC res->loaderData.loaderMagic = ICD_LOADER_MAGIC; diff --git a/src/gfxstream/guest/vulkan_enc/Resources.h b/src/gfxstream/guest/vulkan_enc/Resources.h index 8b5222db3d8..a1a7cf932f1 100644 --- a/src/gfxstream/guest/vulkan_enc/Resources.h +++ b/src/gfxstream/guest/vulkan_enc/Resources.h @@ -3,8 +3,9 @@ * SPDX-License-Identifier: MIT */ #pragma once +#include "util/detect_os.h" -#if defined(__ANDROID__) || defined(__Fuchsia__) +#if DETECT_OS_ANDROID || defined(__Fuchsia__) #include #elif defined(__linux__) #include @@ -38,7 +39,7 @@ struct goldfish_vk_object_list { struct goldfish_vk_object_list* next; }; -#if defined(__ANDROID__) || defined(__Fuchsia__) +#if DETECT_OS_ANDROID || defined(__Fuchsia__) #define DECLARE_HWVULKAN_DISPATCH hwvulkan_dispatch_t dispatch; #elif defined(__linux__) #define DECLARE_HWVULKAN_DISPATCH VK_LOADER_DATA loaderData; diff --git a/src/gfxstream/guest/vulkan_enc/VkEncoder.cpp.inl b/src/gfxstream/guest/vulkan_enc/VkEncoder.cpp.inl index f533707a382..3499964139b 100644 --- a/src/gfxstream/guest/vulkan_enc/VkEncoder.cpp.inl +++ b/src/gfxstream/guest/vulkan_enc/VkEncoder.cpp.inl @@ -7,7 +7,7 @@ static ResourceTracker* sResourceTracker = nullptr; static uint32_t sFeatureBits = 0; static constexpr uint32_t kWatchdogBufferMax = 1'000; -#if defined(__ANDROID__) +#if DETECT_OS_ANDROID #include #endif @@ -16,7 +16,7 @@ class VkEncoder::Impl { Impl(gfxstream::guest::IOStream* stream) : m_stream(stream), m_logEncodes(false) { if (!sResourceTracker) sResourceTracker = ResourceTracker::get(); m_stream.incStreamRef(); -#if defined(__ANDROID__) +#if DETECT_OS_ANDROID const char* emuVkLogEncodesPropName = "qemu.vk.log"; char encodeProp[PROPERTY_VALUE_MAX]; if (property_get(emuVkLogEncodesPropName, encodeProp, nullptr) > 0) {