Fix some missed compiles and undefined references Bug: 171711491 Change-Id: I5a1d78010715b5af907173521fd92e1162a06b6f
diff --git a/base/CMakeLists.txt b/base/CMakeLists.txt index 7e9c223..7996b22 100644 --- a/base/CMakeLists.txt +++ b/base/CMakeLists.txt
@@ -13,7 +13,7 @@ MemoryTracker.cpp MessageChannel.cpp PathUtils.cpp - ring_buffer.c + ring_buffer.cpp SharedLibrary.cpp StringFormat.cpp Stream.cpp @@ -21,7 +21,6 @@ SubAllocator.cpp System.cpp Tracing.cpp) - set(gfxstream-base-posix-sources SharedMemory_posix.cpp Thread_pthread.cpp) @@ -50,3 +49,5 @@ gfxstream-base PRIVATE lz4) target_include_directories( gfxstream-base PUBLIC ${GFXSTREAM_REPO_ROOT}) +target_compile_options( + gfxstream-base PRIVATE -fvisibility=default)
diff --git a/base/ring_buffer.c b/base/ring_buffer.cpp similarity index 100% rename from base/ring_buffer.c rename to base/ring_buffer.cpp
diff --git a/base/ring_buffer.h b/base/ring_buffer.h index 119f539..5994752 100644 --- a/base/ring_buffer.h +++ b/base/ring_buffer.h
@@ -13,6 +13,8 @@ // limitations under the License. #pragma once +#include "base/export.h" + #include <stdbool.h> #include <stdint.h>
diff --git a/host-common/CMakeLists.txt b/host-common/CMakeLists.txt index f365738..ef6d093 100644 --- a/host-common/CMakeLists.txt +++ b/host-common/CMakeLists.txt
@@ -1,12 +1,14 @@ add_library( gfxstream-host-common STATIC + address_space_device_control_ops.cpp crash_reporter.cpp vm_operations.cpp feature_control.cpp dma_device.cpp sync_device.cpp - misc.cpp) + misc.cpp + window_operations.cpp) target_include_directories( gfxstream-host-common PRIVATE
diff --git a/host-common/window_operations.cpp b/host-common/window_operations.cpp new file mode 100644 index 0000000..b279fef --- /dev/null +++ b/host-common/window_operations.cpp
@@ -0,0 +1,50 @@ +/* +* Copyright (C) 2019 The Android Open Source Project +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#include "misc.h" +#include "AndroidAgentFactory.h" +#include <cassert> + +namespace { + +QAndroidEmulatorWindowAgent g_window_operations; +QAndroidMultiDisplayAgent g_multi_display_operations; +static bool g_window_initialized = false; +static bool g_multi_display_initialized = false; + +} // namespace + +void emugl::set_emugl_window_operations(const QAndroidEmulatorWindowAgent &operations) +{ + g_window_operations = operations; + g_window_initialized = true; +} + +const QAndroidEmulatorWindowAgent &emugl::get_emugl_window_operations() +{ + assert(g_window_initialized); + return g_window_operations; +} + +void emugl::set_emugl_multi_display_operations(const QAndroidMultiDisplayAgent &operations) { + g_multi_display_operations = operations; + g_multi_display_initialized = true; +} + +const QAndroidMultiDisplayAgent &emugl::get_emugl_multi_display_operations() { + assert(g_multi_display_initialized); + return g_multi_display_operations; +}
diff --git a/stream-servers/CMakeLists.txt b/stream-servers/CMakeLists.txt index 938d0f4..d952399 100644 --- a/stream-servers/CMakeLists.txt +++ b/stream-servers/CMakeLists.txt
@@ -39,6 +39,8 @@ WindowSurface.cpp YUVConverter.cpp RenderThread.cpp + RenderContext.cpp + RenderControl.cpp RenderWindow.cpp RenderLibImpl.cpp RendererImpl.cpp @@ -94,4 +96,3 @@ gfxstream-base gtest_main) -
diff --git a/stream-servers/OpenGLESDispatch/CMakeLists.txt b/stream-servers/OpenGLESDispatch/CMakeLists.txt index 79b843a..c896e5c 100644 --- a/stream-servers/OpenGLESDispatch/CMakeLists.txt +++ b/stream-servers/OpenGLESDispatch/CMakeLists.txt
@@ -7,7 +7,7 @@ GLESv2Dispatch.cpp OpenGLDispatchLoader.cpp StaticDispatch.cpp) -target_compile_options(OpenGLESDispatch PRIVATE -fvisibility=hidden) +target_compile_options(OpenGLESDispatch PRIVATE -fvisibility=default) target_link_libraries(OpenGLESDispatch PRIVATE gfxstream-base) target_link_libraries(OpenGLESDispatch PUBLIC gles1_dec gles2_dec apigen-codec-common) target_link_libraries(OpenGLESDispatch PRIVATE EGL_translator_static)
diff --git a/stream-servers/OpenGLESDispatch/GLESv1Dispatch.cpp b/stream-servers/OpenGLESDispatch/GLESv1Dispatch.cpp index b0ead12..59f4145 100644 --- a/stream-servers/OpenGLESDispatch/GLESv1Dispatch.cpp +++ b/stream-servers/OpenGLESDispatch/GLESv1Dispatch.cpp
@@ -116,3 +116,16 @@ dispatch_table->initialized = true; return true; } + +void *gles1_dispatch_get_proc_func(const char *name, void *userData) +{ + void* func = NULL; + func = gles1_dispatch_get_proc_func_static(name); + + // To make it consistent with the guest, redirect any unsupported functions + // to gles1_unimplemented. + if (!func) { + func = (void *)gles1_unimplemented; + } + return func; +}
diff --git a/stream-servers/OpenGLESDispatch/GLESv2Dispatch.cpp b/stream-servers/OpenGLESDispatch/GLESv2Dispatch.cpp index fc52546..68bbafa 100644 --- a/stream-servers/OpenGLESDispatch/GLESv2Dispatch.cpp +++ b/stream-servers/OpenGLESDispatch/GLESv2Dispatch.cpp
@@ -47,3 +47,17 @@ dispatch_table->initialized = true; return true; } + + +void *gles2_dispatch_get_proc_func(const char *name, void *userData) +{ + void* func = NULL; + func = gles2_dispatch_get_proc_func_static(name); + + // To make it consistent with the guest, redirect any unsupported functions + // to gles2_unimplemented. + if (!func) { + func = (void *)gles2_unimplemented; + } + return func; +}
diff --git a/stream-servers/RenderContext.cpp b/stream-servers/RenderContext.cpp index 24a0a55..ddd753a 100644 --- a/stream-servers/RenderContext.cpp +++ b/stream-servers/RenderContext.cpp
@@ -20,13 +20,13 @@ #include "OpenGLESDispatch/EGLDispatch.h" #include "OpenGLESDispatch/GLESv1Dispatch.h" -#include "android/base/containers/SmallVector.h" +#include "base/SmallVector.h" -#include "emugl/common/feature_control.h" -#include "emugl/common/misc.h" +#include "host-common/feature_control.h" +#include "host-common/misc.h" #include <assert.h> -#include <OpenglCodecCommon/ErrorLog.h> +#include "ErrorLog.h" RenderContext* RenderContext::create(EGLDisplay display, EGLConfig config,
diff --git a/stream-servers/RenderControl.cpp b/stream-servers/RenderControl.cpp index 3ca2cbf..d27c366 100644 --- a/stream-servers/RenderControl.cpp +++ b/stream-servers/RenderControl.cpp
@@ -29,15 +29,11 @@ #include "vulkan/VkCommonOperations.h" #include "vulkan/VkDecoderGlobalState.h" -#include "android/utils/debug.h" -#include "android/base/StringView.h" -#include "android/base/Tracing.h" -#include "emugl/common/feature_control.h" -#include "emugl/common/lazy_instance.h" -#include "emugl/common/sync_device.h" -#include "emugl/common/dma_device.h" -#include "emugl/common/misc.h" -#include "emugl/common/thread.h" +#include "base/Tracing.h" +#include "host-common/feature_control.h" +#include "host-common/sync_device.h" +#include "host-common/dma_device.h" +#include "host-common/misc.h" #include "math.h" #include <atomic> @@ -46,7 +42,6 @@ using android::base::AutoLock; using android::base::Lock; -using emugl::emugl_feature_is_enabled; using emugl::emugl_sync_device_exists; using emugl::emugl_sync_register_trigger_wait; @@ -97,7 +92,7 @@ // in many situations // (switching camera sides, exiting benchmark apps, etc) // So, we put GrallocSync under the feature control. - mEnabled = emugl_feature_is_enabled(android::featurecontrol::GrallocSync); + mEnabled = feature_is_enabled(kFeature_GrallocSync); // There are two potential tricky situations to handle: // a. Multiple users of gralloc buffers that all want to @@ -150,7 +145,10 @@ android::base::AutoWriteLock(grallocsync.mGrallocColorBufferLock) { } }; -static ::emugl::LazyInstance<GrallocSync> sGrallocSync = LAZY_INSTANCE_INIT; +static GrallocSync* sGrallocSync() { + static GrallocSync* g = new GrallocSync; + return g; +} static const GLint rendererVersion = 1; @@ -161,66 +159,66 @@ // "ANDROIDEMU_native_sync_v4": Correct eglGetSyncAttrib via rcIsSyncSignaled // (We need all the different strings to not be prefixes of any other // due to how they are checked for in the GL extensions on the guest) -static constexpr android::base::StringView kAsyncSwapStrV2 = "ANDROID_EMU_native_sync_v2"; -static constexpr android::base::StringView kAsyncSwapStrV3 = "ANDROID_EMU_native_sync_v3"; -static constexpr android::base::StringView kAsyncSwapStrV4 = "ANDROID_EMU_native_sync_v4"; +static const char* kAsyncSwapStrV2 = "ANDROID_EMU_native_sync_v2"; +static const char* kAsyncSwapStrV3 = "ANDROID_EMU_native_sync_v3"; +static const char* kAsyncSwapStrV4 = "ANDROID_EMU_native_sync_v4"; // DMA version history: // "ANDROID_EMU_dma_v1": add dma device and rcUpdateColorBufferDMA and do // yv12 conversion on the GPU // "ANDROID_EMU_dma_v2": adds DMA support glMapBufferRange (and unmap) -static constexpr android::base::StringView kDma1Str = "ANDROID_EMU_dma_v1"; -static constexpr android::base::StringView kDma2Str = "ANDROID_EMU_dma_v2"; -static constexpr android::base::StringView kDirectMemStr = "ANDROID_EMU_direct_mem"; +static const char* kDma1Str = "ANDROID_EMU_dma_v1"; +static const char* kDma2Str = "ANDROID_EMU_dma_v2"; +static const char* kDirectMemStr = "ANDROID_EMU_direct_mem"; // GLESDynamicVersion: up to 3.1 so far -static constexpr android::base::StringView kGLESDynamicVersion_2 = "ANDROID_EMU_gles_max_version_2"; -static constexpr android::base::StringView kGLESDynamicVersion_3_0 = "ANDROID_EMU_gles_max_version_3_0"; -static constexpr android::base::StringView kGLESDynamicVersion_3_1 = "ANDROID_EMU_gles_max_version_3_1"; +static const char* kGLESDynamicVersion_2 = "ANDROID_EMU_gles_max_version_2"; +static const char* kGLESDynamicVersion_3_0 = "ANDROID_EMU_gles_max_version_3_0"; +static const char* kGLESDynamicVersion_3_1 = "ANDROID_EMU_gles_max_version_3_1"; // HWComposer Host Composition -static constexpr android::base::StringView kHostCompositionV1 = "ANDROID_EMU_host_composition_v1"; -static constexpr android::base::StringView kHostCompositionV2 = "ANDROID_EMU_host_composition_v2"; +static const char* kHostCompositionV1 = "ANDROID_EMU_host_composition_v1"; +static const char* kHostCompositionV2 = "ANDROID_EMU_host_composition_v2"; -static constexpr android::base::StringView kGLESNoHostError = "ANDROID_EMU_gles_no_host_error"; +static const char* kGLESNoHostError = "ANDROID_EMU_gles_no_host_error"; // Vulkan -static constexpr android::base::StringView kVulkanFeatureStr = "ANDROID_EMU_vulkan"; -static constexpr android::base::StringView kDeferredVulkanCommands = "ANDROID_EMU_deferred_vulkan_commands"; -static constexpr android::base::StringView kVulkanNullOptionalStrings = "ANDROID_EMU_vulkan_null_optional_strings"; -static constexpr android::base::StringView kVulkanCreateResourcesWithRequirements = "ANDROID_EMU_vulkan_create_resources_with_requirements"; +static const char* kVulkanFeatureStr = "ANDROID_EMU_vulkan"; +static const char* kDeferredVulkanCommands = "ANDROID_EMU_deferred_vulkan_commands"; +static const char* kVulkanNullOptionalStrings = "ANDROID_EMU_vulkan_null_optional_strings"; +static const char* kVulkanCreateResourcesWithRequirements = "ANDROID_EMU_vulkan_create_resources_with_requirements"; // treat YUV420_888 as NV21 -static constexpr android::base::StringView kYUV420888toNV21 = "ANDROID_EMU_YUV420_888_to_NV21"; +static const char* kYUV420888toNV21 = "ANDROID_EMU_YUV420_888_to_NV21"; // Cache YUV frame -static constexpr android::base::StringView kYUVCache = "ANDROID_EMU_YUV_Cache"; +static const char* kYUVCache = "ANDROID_EMU_YUV_Cache"; // GL protocol v2 -static constexpr android::base::StringView kAsyncUnmapBuffer = "ANDROID_EMU_async_unmap_buffer"; +static const char* kAsyncUnmapBuffer = "ANDROID_EMU_async_unmap_buffer"; // Vulkan: Correct marshaling for ignored handles -static constexpr android::base::StringView kVulkanIgnoredHandles = "ANDROID_EMU_vulkan_ignored_handles"; +static const char* kVulkanIgnoredHandles = "ANDROID_EMU_vulkan_ignored_handles"; // virtio-gpu-next -static constexpr android::base::StringView kVirtioGpuNext = "ANDROID_EMU_virtio_gpu_next"; +static const char* kVirtioGpuNext = "ANDROID_EMU_virtio_gpu_next"; // address space subdevices -static constexpr android::base::StringView kHasSharedSlotsHostMemoryAllocator = "ANDROID_EMU_has_shared_slots_host_memory_allocator"; +static const char* kHasSharedSlotsHostMemoryAllocator = "ANDROID_EMU_has_shared_slots_host_memory_allocator"; // vulkan free memory sync -static constexpr android::base::StringView kVulkanFreeMemorySync = "ANDROID_EMU_vulkan_free_memory_sync"; +static const char* kVulkanFreeMemorySync = "ANDROID_EMU_vulkan_free_memory_sync"; // virtio-gpu native sync -static constexpr android::base::StringView kVirtioGpuNativeSync = "ANDROID_EMU_virtio_gpu_native_sync"; +static const char* kVirtioGpuNativeSync = "ANDROID_EMU_virtio_gpu_native_sync"; // Struct defs for VK_KHR_shader_float16_int8 -static constexpr android::base::StringView kVulkanShaderFloat16Int8 = "ANDROID_EMU_vulkan_shader_float16_int8"; +static const char* kVulkanShaderFloat16Int8 = "ANDROID_EMU_vulkan_shader_float16_int8"; // Async queue submit -static constexpr android::base::StringView kVulkanAsyncQueueSubmit = "ANDROID_EMU_vulkan_async_queue_submit"; +static const char* kVulkanAsyncQueueSubmit = "ANDROID_EMU_vulkan_async_queue_submit"; // Host side tracing -static constexpr android::base::StringView kHostSideTracing = "ANDROID_EMU_host_side_tracing"; +static const char* kHostSideTracing = "ANDROID_EMU_host_side_tracing"; static void rcTriggerWait(uint64_t glsync_ptr, uint64_t thread_ptr, @@ -234,7 +232,7 @@ { registerTriggerWait(); - sGrallocSync.ptr(); + sGrallocSync(); return rendererVersion; } @@ -264,7 +262,7 @@ std::string eglStr(str); if ((FrameBuffer::getMaxGLESVersion() >= GLES_DISPATCH_MAX_VERSION_3_0) && - emugl_feature_is_enabled(android::featurecontrol::GLESDynamicVersion) && + feature_is_enabled(kFeature_GLESDynamicVersion) && eglStr.find("EGL_KHR_create_context") == std::string::npos) { eglStr += "EGL_KHR_create_context "; } @@ -279,21 +277,20 @@ } static bool shouldEnableAsyncSwap() { - bool isPhone; - emugl::getAvdInfo(&isPhone, NULL); - bool playStoreImage = emugl::emugl_feature_is_enabled( - android::featurecontrol::PlayStoreImage); - return emugl_feature_is_enabled(android::featurecontrol::GLAsyncSwap) && + bool isPhone = true; + bool playStoreImage = feature_is_enabled( + kFeature_PlayStoreImage); + return feature_is_enabled(kFeature_GLAsyncSwap) && emugl_sync_device_exists() && (isPhone || playStoreImage) && sizeof(void*) == 8; } static bool shouldEnableVirtioGpuNativeSync() { - return emugl_feature_is_enabled(android::featurecontrol::VirtioGpuNativeSync); + return feature_is_enabled(kFeature_VirtioGpuNativeSync); } static bool shouldEnableHostComposition() { - return emugl_feature_is_enabled(android::featurecontrol::HostComposition); + return feature_is_enabled(kFeature_HostComposition); } static bool shouldEnableVulkan() { @@ -301,7 +298,7 @@ goldfish_vk::VkDecoderGlobalState::get()-> getHostFeatureSupport(); bool flagEnabled = - emugl_feature_is_enabled(android::featurecontrol::Vulkan); + feature_is_enabled(kFeature_Vulkan); // TODO: Restrict further to devices supporting external memory. return supportInfo.supportsVulkan && flagEnabled; @@ -325,14 +322,14 @@ static bool shouldEnableVulkanShaderFloat16Int8() { return shouldEnableVulkan() && - emugl_feature_is_enabled(android::featurecontrol::VulkanShaderFloat16Int8); + feature_is_enabled(kFeature_VulkanShaderFloat16Int8); } static bool shouldEnableAsyncQueueSubmit() { return shouldEnableVulkan(); } -android::base::StringView maxVersionToFeatureString(GLESDispatchMaxVersion version) { +const char* maxVersionToFeatureString(GLESDispatchMaxVersion version) { switch (version) { case GLES_DISPATCH_MAX_VERSION_2: return kGLESDynamicVersion_2; @@ -356,7 +353,7 @@ // is Translator, SwiftShader, ANGLE, et al) may not advertise a GL_VERSION // string reflecting their maximum capabilities. std::string replaceESVersionString(const std::string& prev, - android::base::StringView newver) { + const std::string& newver) { // There is no need to fiddle with the string // if we are in a ES 1.x context. @@ -423,34 +420,34 @@ } bool isChecksumEnabled = - emugl_feature_is_enabled(android::featurecontrol::GLPipeChecksum); + feature_is_enabled(kFeature_GLPipeChecksum); bool asyncSwapEnabled = shouldEnableAsyncSwap(); bool virtioGpuNativeSyncEnabled = shouldEnableVirtioGpuNativeSync(); bool dma1Enabled = - emugl_feature_is_enabled(android::featurecontrol::GLDMA); + feature_is_enabled(kFeature_GLDMA); bool dma2Enabled = - emugl_feature_is_enabled(android::featurecontrol::GLDMA2); + feature_is_enabled(kFeature_GLDMA2); bool directMemEnabled = - emugl_feature_is_enabled(android::featurecontrol::GLDirectMem); + feature_is_enabled(kFeature_GLDirectMem); bool hostCompositionEnabled = shouldEnableHostComposition(); bool vulkanEnabled = shouldEnableVulkan(); bool deferredVulkanCommandsEnabled = shouldEnableVulkan() && shouldEnableDeferredVulkanCommands(); bool vulkanNullOptionalStringsEnabled = - shouldEnableVulkan() && emugl_feature_is_enabled(android::featurecontrol::VulkanNullOptionalStrings); + shouldEnableVulkan() && feature_is_enabled(kFeature_VulkanNullOptionalStrings); bool vulkanCreateResourceWithRequirementsEnabled = shouldEnableVulkan() && shouldEnableCreateResourcesWithRequirements(); bool YUV420888toNV21Enabled = - emugl_feature_is_enabled(android::featurecontrol::YUV420888toNV21); + feature_is_enabled(kFeature_YUV420888toNV21); bool YUVCacheEnabled = - emugl_feature_is_enabled(android::featurecontrol::YUVCache); + feature_is_enabled(kFeature_YUVCache); bool AsyncUnmapBufferEnabled = true; bool vulkanIgnoredHandlesEnabled = - shouldEnableVulkan() && emugl_feature_is_enabled(android::featurecontrol::VulkanIgnoredHandles); + shouldEnableVulkan() && feature_is_enabled(kFeature_VulkanIgnoredHandles); bool virtioGpuNextEnabled = - emugl_feature_is_enabled(android::featurecontrol::VirtioGpuNext); + feature_is_enabled(kFeature_VirtioGpuNext); bool hasSharedSlotsHostMemoryAllocatorEnabled = - emugl_feature_is_enabled(android::featurecontrol::HasSharedSlotsHostMemoryAllocator); + feature_is_enabled(kFeature_HasSharedSlotsHostMemoryAllocator); bool vulkanFreeMemorySyncEnabled = shouldEnableVulkan(); bool vulkanShaderFloat16Int8Enabled = shouldEnableVulkanShaderFloat16Int8(); @@ -571,7 +568,7 @@ if (name == GL_EXTENSIONS) { GLESDispatchMaxVersion guestExtVer = GLES_DISPATCH_MAX_VERSION_2; - if (emugl_feature_is_enabled(android::featurecontrol::GLESDynamicVersion)) { + if (feature_is_enabled(kFeature_GLESDynamicVersion)) { // If the image is in ES 3 mode, add GL_OES_EGL_image_external_essl3 for better Skia support. glStr += "GL_OES_EGL_image_external_essl3 "; guestExtVer = maxVersion; @@ -587,7 +584,7 @@ glStr += "GL_KHR_texture_compression_astc_ldr "; // BPTC compressed texture support - if (emugl_feature_is_enabled(android::featurecontrol::BptcTextureSupport)) { + if (feature_is_enabled(kFeature_BptcTextureSupport)) { glStr += "GL_EXT_texture_compression_bptc "; } @@ -595,7 +592,7 @@ glStr += kHostSideTracing; glStr += " "; - if (emugl_feature_is_enabled(android::featurecontrol::IgnoreHostOpenGLErrors)) { + if (feature_is_enabled(kFeature_IgnoreHostOpenGLErrors)) { glStr += kGLESNoHostError; glStr += " "; } @@ -605,7 +602,7 @@ } if (name == GL_VERSION) { - if (emugl_feature_is_enabled(android::featurecontrol::GLESDynamicVersion)) { + if (feature_is_enabled(kFeature_GLESDynamicVersion)) { GLESDispatchMaxVersion maxVersion = FrameBuffer::getMaxGLESVersion(); switch (maxVersion) { // Underlying GLES implmentation's max version string @@ -809,7 +806,7 @@ static int rcFlushWindowColorBuffer(uint32_t windowSurface) { GRSYNC_DPRINT("waiting for gralloc cb lock"); - GrallocSyncPostLock lock(sGrallocSync.get()); + GrallocSyncPostLock lock(*sGrallocSync()); GRSYNC_DPRINT("lock gralloc cb lock {"); FrameBuffer *fb = FrameBuffer::getFB(); @@ -936,7 +933,7 @@ { // gralloc_lock() on the guest calls rcColorBufferCacheFlush GRSYNC_DPRINT("waiting for gralloc cb lock"); - sGrallocSync->lockColorBufferPrepare(); + sGrallocSync()->lockColorBufferPrepare(); GRSYNC_DPRINT("lock gralloc cb lock {"); return 0; } @@ -966,7 +963,7 @@ if (!fb) { GRSYNC_DPRINT("unlock gralloc cb lock"); - sGrallocSync->unlockColorBufferPrepare(); + sGrallocSync()->unlockColorBufferPrepare(); return -1; } @@ -977,7 +974,7 @@ fb->updateColorBuffer(colorBuffer, x, y, width, height, format, type, pixels); GRSYNC_DPRINT("unlock gralloc cb lock"); - sGrallocSync->unlockColorBufferPrepare(); + sGrallocSync()->unlockColorBufferPrepare(); // Update to Vulkan if necessary goldfish_vk::updateVkImageFromColorBuffer(colorBuffer); @@ -995,7 +992,7 @@ if (!fb) { GRSYNC_DPRINT("unlock gralloc cb lock"); - sGrallocSync->unlockColorBufferPrepare(); + sGrallocSync()->unlockColorBufferPrepare(); return -1; } @@ -1007,7 +1004,7 @@ format, type, pixels); GRSYNC_DPRINT("unlock gralloc cb lock"); - sGrallocSync->unlockColorBufferPrepare(); + sGrallocSync()->unlockColorBufferPrepare(); // Update to Vulkan if necessary goldfish_vk::updateVkImageFromColorBuffer(colorBuffer);
diff --git a/third-party/angle/CMakeLists.txt b/third-party/angle/CMakeLists.txt index 6e23916..b7388b1 100644 --- a/third-party/angle/CMakeLists.txt +++ b/third-party/angle/CMakeLists.txt
@@ -1,3 +1,18 @@ +if (APPLE) + set(angle-common-platform-sources + src/common/system_utils_posix.cpp + src/common/system_utils_mac.cpp) +elseif (WIN32) + set(angle-common-platform-sources + src/common/system_utils_win.cpp + src/common/system_utils_win32.cpp + src/common/system_utils_winuwp) +else() + set(angle-common-platform-sources + src/common/system_utils_posix.cpp + src/common/system_utils_linux.cpp) +endif() + add_library( angle_common src/common/Color.h @@ -55,7 +70,10 @@ src/common/uniform_type_info_autogen.cpp src/common/utilities.cpp src/common/utilities.h - src/common/vector_utils.h) + src/common/vector_utils.h + src/common/system_utils.h + src/common/system_utils.cpp + ${angle-common-platform-sources}) target_include_directories( angle_common PRIVATE