Loading media/libstagefright/renderfright/Android.bp +0 −1 Original line number Diff line number Diff line Loading @@ -23,7 +23,6 @@ cc_defaults { "libEGL", "libGLESv1_CM", "libGLESv2", "libgui", "liblog", "libnativewindow", "libprocessgroup", Loading media/libstagefright/renderfright/RenderEngine.cpp +35 −3 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ #include <cutils/properties.h> #include <log/log.h> #include <private/gui/SyncFeatures.h> #include "gl/GLESRenderEngine.h" #include "threaded/RenderEngineThreaded.h" Loading Loading @@ -52,6 +51,39 @@ std::unique_ptr<RenderEngine> RenderEngine::create(const RenderEngineCreationArg RenderEngine::~RenderEngine() = default; // static SyncFeatures &SyncFeatures::GetInstance() { static SyncFeatures syncFeatures; return syncFeatures; } bool SyncFeatures::useNativeFenceSync() const { return mHasNativeFenceSync; } bool SyncFeatures::useFenceSync() const { return mHasFenceSync; } bool SyncFeatures::useWaitSync() const { return mHasWaitSync; } SyncFeatures::SyncFeatures() : mHasNativeFenceSync(false), mHasFenceSync(false), mHasWaitSync(false) { EGLDisplay dpy = eglGetDisplay(EGL_DEFAULT_DISPLAY); // This can only be called after EGL has been initialized; otherwise the // check below will abort. const char* exts = eglQueryString(dpy, EGL_EXTENSIONS); LOG_ALWAYS_FATAL_IF(exts == nullptr, "eglQueryString failed"); if (strstr(exts, "EGL_ANDROID_native_fence_sync")) { // This makes GLConsumer use the EGL_ANDROID_native_fence_sync // extension to create Android native fences to signal when all // GLES reads for a given buffer have completed. mHasNativeFenceSync = true; } if (strstr(exts, "EGL_KHR_fence_sync")) { mHasFenceSync = true; } if (strstr(exts, "EGL_KHR_wait_sync")) { mHasWaitSync = true; } } namespace impl { RenderEngine::RenderEngine(const RenderEngineCreationArgs& args) : mArgs(args) {} Loading @@ -59,11 +91,11 @@ RenderEngine::RenderEngine(const RenderEngineCreationArgs& args) : mArgs(args) { RenderEngine::~RenderEngine() = default; bool RenderEngine::useNativeFenceSync() const { return SyncFeatures::getInstance().useNativeFenceSync(); return SyncFeatures::GetInstance().useNativeFenceSync(); } bool RenderEngine::useWaitSync() const { return SyncFeatures::getInstance().useWaitSync(); return SyncFeatures::GetInstance().useWaitSync(); } } // namespace impl Loading media/libstagefright/renderfright/gl/GLESRenderEngine.cpp +0 −6 Original line number Diff line number Diff line Loading @@ -30,7 +30,6 @@ #include <android-base/stringprintf.h> #include <cutils/compiler.h> #include <cutils/properties.h> #include <gui/DebugEGLImageTracker.h> #include <renderengine/Mesh.h> #include <renderengine/Texture.h> #include <renderengine/private/Description.h> Loading Loading @@ -436,7 +435,6 @@ GLESRenderEngine::~GLESRenderEngine() { EGLImageKHR expired = mFramebufferImageCache.front().second; mFramebufferImageCache.pop_front(); eglDestroyImageKHR(mEGLDisplay, expired); DEBUG_EGL_IMAGE_TRACKER_DESTROY(); } eglDestroyImageKHR(mEGLDisplay, mPlaceholderImage); mImageCache.clear(); Loading Loading @@ -1012,15 +1010,11 @@ EGLImageKHR GLESRenderEngine::createFramebufferImageIfNeeded(ANativeWindowBuffer EGLImageKHR expired = mFramebufferImageCache.front().second; mFramebufferImageCache.pop_front(); eglDestroyImageKHR(mEGLDisplay, expired); DEBUG_EGL_IMAGE_TRACKER_DESTROY(); } mFramebufferImageCache.push_back({graphicBuffer->getId(), image}); } } if (image != EGL_NO_IMAGE_KHR) { DEBUG_EGL_IMAGE_TRACKER_CREATE(); } return image; } Loading media/libstagefright/renderfright/gl/GLFramebuffer.cpp +0 −2 Original line number Diff line number Diff line Loading @@ -22,7 +22,6 @@ #include <GLES/glext.h> #include <GLES2/gl2ext.h> #include <GLES3/gl3.h> #include <gui/DebugEGLImageTracker.h> #include <nativebase/nativebase.h> #include <utils/Trace.h> #include "GLESRenderEngine.h" Loading @@ -48,7 +47,6 @@ bool GLFramebuffer::setNativeWindowBuffer(ANativeWindowBuffer* nativeBuffer, boo if (mEGLImage != EGL_NO_IMAGE_KHR) { if (!usingFramebufferCache) { eglDestroyImageKHR(mEGLDisplay, mEGLImage); DEBUG_EGL_IMAGE_TRACKER_DESTROY(); } mEGLImage = EGL_NO_IMAGE_KHR; mBufferWidth = 0; Loading media/libstagefright/renderfright/gl/GLImage.cpp +0 −3 Original line number Diff line number Diff line Loading @@ -20,7 +20,6 @@ #include <vector> #include <gui/DebugEGLImageTracker.h> #include <log/log.h> #include <utils/Trace.h> #include "GLESRenderEngine.h" Loading Loading @@ -59,7 +58,6 @@ bool GLImage::setNativeWindowBuffer(ANativeWindowBuffer* buffer, bool isProtecte if (!eglDestroyImageKHR(mEGLDisplay, mEGLImage)) { ALOGE("failed to destroy image: %#x", eglGetError()); } DEBUG_EGL_IMAGE_TRACKER_DESTROY(); mEGLImage = EGL_NO_IMAGE_KHR; } Loading @@ -71,7 +69,6 @@ bool GLImage::setNativeWindowBuffer(ANativeWindowBuffer* buffer, bool isProtecte ALOGE("failed to create EGLImage: %#x", eglGetError()); return false; } DEBUG_EGL_IMAGE_TRACKER_CREATE(); mProtected = isProtected; } Loading Loading
media/libstagefright/renderfright/Android.bp +0 −1 Original line number Diff line number Diff line Loading @@ -23,7 +23,6 @@ cc_defaults { "libEGL", "libGLESv1_CM", "libGLESv2", "libgui", "liblog", "libnativewindow", "libprocessgroup", Loading
media/libstagefright/renderfright/RenderEngine.cpp +35 −3 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ #include <cutils/properties.h> #include <log/log.h> #include <private/gui/SyncFeatures.h> #include "gl/GLESRenderEngine.h" #include "threaded/RenderEngineThreaded.h" Loading Loading @@ -52,6 +51,39 @@ std::unique_ptr<RenderEngine> RenderEngine::create(const RenderEngineCreationArg RenderEngine::~RenderEngine() = default; // static SyncFeatures &SyncFeatures::GetInstance() { static SyncFeatures syncFeatures; return syncFeatures; } bool SyncFeatures::useNativeFenceSync() const { return mHasNativeFenceSync; } bool SyncFeatures::useFenceSync() const { return mHasFenceSync; } bool SyncFeatures::useWaitSync() const { return mHasWaitSync; } SyncFeatures::SyncFeatures() : mHasNativeFenceSync(false), mHasFenceSync(false), mHasWaitSync(false) { EGLDisplay dpy = eglGetDisplay(EGL_DEFAULT_DISPLAY); // This can only be called after EGL has been initialized; otherwise the // check below will abort. const char* exts = eglQueryString(dpy, EGL_EXTENSIONS); LOG_ALWAYS_FATAL_IF(exts == nullptr, "eglQueryString failed"); if (strstr(exts, "EGL_ANDROID_native_fence_sync")) { // This makes GLConsumer use the EGL_ANDROID_native_fence_sync // extension to create Android native fences to signal when all // GLES reads for a given buffer have completed. mHasNativeFenceSync = true; } if (strstr(exts, "EGL_KHR_fence_sync")) { mHasFenceSync = true; } if (strstr(exts, "EGL_KHR_wait_sync")) { mHasWaitSync = true; } } namespace impl { RenderEngine::RenderEngine(const RenderEngineCreationArgs& args) : mArgs(args) {} Loading @@ -59,11 +91,11 @@ RenderEngine::RenderEngine(const RenderEngineCreationArgs& args) : mArgs(args) { RenderEngine::~RenderEngine() = default; bool RenderEngine::useNativeFenceSync() const { return SyncFeatures::getInstance().useNativeFenceSync(); return SyncFeatures::GetInstance().useNativeFenceSync(); } bool RenderEngine::useWaitSync() const { return SyncFeatures::getInstance().useWaitSync(); return SyncFeatures::GetInstance().useWaitSync(); } } // namespace impl Loading
media/libstagefright/renderfright/gl/GLESRenderEngine.cpp +0 −6 Original line number Diff line number Diff line Loading @@ -30,7 +30,6 @@ #include <android-base/stringprintf.h> #include <cutils/compiler.h> #include <cutils/properties.h> #include <gui/DebugEGLImageTracker.h> #include <renderengine/Mesh.h> #include <renderengine/Texture.h> #include <renderengine/private/Description.h> Loading Loading @@ -436,7 +435,6 @@ GLESRenderEngine::~GLESRenderEngine() { EGLImageKHR expired = mFramebufferImageCache.front().second; mFramebufferImageCache.pop_front(); eglDestroyImageKHR(mEGLDisplay, expired); DEBUG_EGL_IMAGE_TRACKER_DESTROY(); } eglDestroyImageKHR(mEGLDisplay, mPlaceholderImage); mImageCache.clear(); Loading Loading @@ -1012,15 +1010,11 @@ EGLImageKHR GLESRenderEngine::createFramebufferImageIfNeeded(ANativeWindowBuffer EGLImageKHR expired = mFramebufferImageCache.front().second; mFramebufferImageCache.pop_front(); eglDestroyImageKHR(mEGLDisplay, expired); DEBUG_EGL_IMAGE_TRACKER_DESTROY(); } mFramebufferImageCache.push_back({graphicBuffer->getId(), image}); } } if (image != EGL_NO_IMAGE_KHR) { DEBUG_EGL_IMAGE_TRACKER_CREATE(); } return image; } Loading
media/libstagefright/renderfright/gl/GLFramebuffer.cpp +0 −2 Original line number Diff line number Diff line Loading @@ -22,7 +22,6 @@ #include <GLES/glext.h> #include <GLES2/gl2ext.h> #include <GLES3/gl3.h> #include <gui/DebugEGLImageTracker.h> #include <nativebase/nativebase.h> #include <utils/Trace.h> #include "GLESRenderEngine.h" Loading @@ -48,7 +47,6 @@ bool GLFramebuffer::setNativeWindowBuffer(ANativeWindowBuffer* nativeBuffer, boo if (mEGLImage != EGL_NO_IMAGE_KHR) { if (!usingFramebufferCache) { eglDestroyImageKHR(mEGLDisplay, mEGLImage); DEBUG_EGL_IMAGE_TRACKER_DESTROY(); } mEGLImage = EGL_NO_IMAGE_KHR; mBufferWidth = 0; Loading
media/libstagefright/renderfright/gl/GLImage.cpp +0 −3 Original line number Diff line number Diff line Loading @@ -20,7 +20,6 @@ #include <vector> #include <gui/DebugEGLImageTracker.h> #include <log/log.h> #include <utils/Trace.h> #include "GLESRenderEngine.h" Loading Loading @@ -59,7 +58,6 @@ bool GLImage::setNativeWindowBuffer(ANativeWindowBuffer* buffer, bool isProtecte if (!eglDestroyImageKHR(mEGLDisplay, mEGLImage)) { ALOGE("failed to destroy image: %#x", eglGetError()); } DEBUG_EGL_IMAGE_TRACKER_DESTROY(); mEGLImage = EGL_NO_IMAGE_KHR; } Loading @@ -71,7 +69,6 @@ bool GLImage::setNativeWindowBuffer(ANativeWindowBuffer* buffer, bool isProtecte ALOGE("failed to create EGLImage: %#x", eglGetError()); return false; } DEBUG_EGL_IMAGE_TRACKER_CREATE(); mProtected = isProtected; } Loading