diff options
author | John Reck <jreck@google.com> | 2018-08-30 16:47:59 +0000 |
---|---|---|
committer | Stan Iliev <stani@google.com> | 2018-08-30 18:42:08 +0000 |
commit | 867c43de0544217d26c3ee18f4d6603bb2ea97ce (patch) | |
tree | d780e25edaa90578c80309a105d6fe2e9eea71c8 /libs/hwui/renderthread/EglManager.cpp | |
parent | c8e22a653297837da9a80b0ba65f6854c8986c96 (diff) |
Revert "TextureView Vulkan support and optimized OpenGL draw"
This reverts commit c8e22a653297837da9a80b0ba65f6854c8986c96.
Reason for revert: broke camera, b/113555199
Bug: 113555199
Change-Id: Iae9b462694d5de0cd99427afead63b567fb4d71d
Diffstat (limited to 'libs/hwui/renderthread/EglManager.cpp')
-rw-r--r-- | libs/hwui/renderthread/EglManager.cpp | 104 |
1 files changed, 0 insertions, 104 deletions
diff --git a/libs/hwui/renderthread/EglManager.cpp b/libs/hwui/renderthread/EglManager.cpp index 5f8d7ad3373a..cd21822df5b1 100644 --- a/libs/hwui/renderthread/EglManager.cpp +++ b/libs/hwui/renderthread/EglManager.cpp @@ -18,7 +18,6 @@ #include <cutils/properties.h> #include <log/log.h> -#include <private/gui/SyncFeatures.h> #include <utils/Trace.h> #include "utils/StringUtils.h" @@ -465,109 +464,6 @@ bool EglManager::setPreserveBuffer(EGLSurface surface, bool preserve) { return preserved; } -status_t EglManager::fenceWait(sp<Fence>& fence) { - if (!hasEglContext()) { - ALOGE("EglManager::fenceWait: EGLDisplay not initialized"); - return INVALID_OPERATION; - } - - if (SyncFeatures::getInstance().useWaitSync() && - SyncFeatures::getInstance().useNativeFenceSync()) { - // Block GPU on the fence. - // Create an EGLSyncKHR from the current fence. - int fenceFd = fence->dup(); - if (fenceFd == -1) { - ALOGE("EglManager::fenceWait: error dup'ing fence fd: %d", errno); - return -errno; - } - EGLint attribs[] = { - EGL_SYNC_NATIVE_FENCE_FD_ANDROID, fenceFd, - EGL_NONE - }; - EGLSyncKHR sync = eglCreateSyncKHR(mEglDisplay, - EGL_SYNC_NATIVE_FENCE_ANDROID, attribs); - if (sync == EGL_NO_SYNC_KHR) { - close(fenceFd); - ALOGE("EglManager::fenceWait: error creating EGL fence: %#x", eglGetError()); - return UNKNOWN_ERROR; - } - - // XXX: The spec draft is inconsistent as to whether this should - // return an EGLint or void. Ignore the return value for now, as - // it's not strictly needed. - eglWaitSyncKHR(mEglDisplay, sync, 0); - EGLint eglErr = eglGetError(); - eglDestroySyncKHR(mEglDisplay, sync); - if (eglErr != EGL_SUCCESS) { - ALOGE("EglManager::fenceWait: error waiting for EGL fence: %#x", eglErr); - return UNKNOWN_ERROR; - } - } else { - // Block CPU on the fence. - status_t err = fence->waitForever("EglManager::fenceWait"); - if (err != NO_ERROR) { - ALOGE("EglManager::fenceWait: error waiting for fence: %d", err); - return err; - } - } - return OK; -} - -status_t EglManager::createReleaseFence(bool useFenceSync, EGLSyncKHR* eglFence, - sp<Fence>& nativeFence) { - if (!hasEglContext()) { - ALOGE("EglManager::createReleaseFence: EGLDisplay not initialized"); - return INVALID_OPERATION; - } - - if (SyncFeatures::getInstance().useNativeFenceSync()) { - EGLSyncKHR sync = eglCreateSyncKHR(mEglDisplay, - EGL_SYNC_NATIVE_FENCE_ANDROID, nullptr); - if (sync == EGL_NO_SYNC_KHR) { - ALOGE("EglManager::createReleaseFence: error creating EGL fence: %#x", - eglGetError()); - return UNKNOWN_ERROR; - } - glFlush(); - int fenceFd = eglDupNativeFenceFDANDROID(mEglDisplay, sync); - eglDestroySyncKHR(mEglDisplay, sync); - if (fenceFd == EGL_NO_NATIVE_FENCE_FD_ANDROID) { - ALOGE("EglManager::createReleaseFence: error dup'ing native fence " - "fd: %#x", eglGetError()); - return UNKNOWN_ERROR; - } - nativeFence = new Fence(fenceFd); - *eglFence = EGL_NO_SYNC_KHR; - } else if (useFenceSync && SyncFeatures::getInstance().useFenceSync()) { - if (*eglFence != EGL_NO_SYNC_KHR) { - // There is already a fence for the current slot. We need to - // wait on that before replacing it with another fence to - // ensure that all outstanding buffer accesses have completed - // before the producer accesses it. - EGLint result = eglClientWaitSyncKHR(mEglDisplay, *eglFence, 0, 1000000000); - if (result == EGL_FALSE) { - ALOGE("EglManager::createReleaseFence: error waiting for previous fence: %#x", - eglGetError()); - return UNKNOWN_ERROR; - } else if (result == EGL_TIMEOUT_EXPIRED_KHR) { - ALOGE("EglManager::createReleaseFence: timeout waiting for previous fence"); - return TIMED_OUT; - } - eglDestroySyncKHR(mEglDisplay, *eglFence); - } - - // Create a fence for the outstanding accesses in the current - // OpenGL ES context. - *eglFence = eglCreateSyncKHR(mEglDisplay, EGL_SYNC_FENCE_KHR, nullptr); - if (*eglFence == EGL_NO_SYNC_KHR) { - ALOGE("EglManager::createReleaseFence: error creating fence: %#x", eglGetError()); - return UNKNOWN_ERROR; - } - glFlush(); - } - return OK; -} - } /* namespace renderthread */ } /* namespace uirenderer */ } /* namespace android */ |