diff options
author | Stan Iliev <stani@google.com> | 2018-08-14 13:30:17 -0400 |
---|---|---|
committer | Stan Iliev <stani@google.com> | 2018-08-29 10:22:03 -0400 |
commit | c8e22a653297837da9a80b0ba65f6854c8986c96 (patch) | |
tree | 7344df1a8aff45ccbf5b9ffb5b4de49499cc7c94 /libs/hwui/renderthread/EglManager.h | |
parent | 660bb2f3a1dde0b5cca5c8293bf0e72d47b2b6fc (diff) |
TextureView Vulkan support and optimized OpenGL draw
Render TextureView as hardware bitmaps, instead of GL textures.
Cache SkImage for each observed GraphicBuffer, which is faster
even for GL.
Implement C++ SurfaceTexture, which allows Java SurfaceTexture
to be used with Vulkan HWUI render thread and application GL.
threads. Delete GLLayer and VkLayer classes and texture code
from old HWUI pipeline.
Test: Ran skiagl and skiavk pipeline with a TextureView app.
Test: TextureView CTS tests pass for GL pipeline.
Test: Ran Android NDK Native codec sample app.
Change-Id: Idc94f864ce2d34fd6ceff4be4fc7d3327e99879c
Diffstat (limited to 'libs/hwui/renderthread/EglManager.h')
-rw-r--r-- | libs/hwui/renderthread/EglManager.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/libs/hwui/renderthread/EglManager.h b/libs/hwui/renderthread/EglManager.h index 8e8bb8b68a1c..507673adf26e 100644 --- a/libs/hwui/renderthread/EglManager.h +++ b/libs/hwui/renderthread/EglManager.h @@ -17,8 +17,10 @@ #define EGLMANAGER_H #include <EGL/egl.h> +#include <EGL/eglext.h> #include <SkRect.h> #include <cutils/compiler.h> +#include <ui/Fence.h> #include <ui/GraphicBuffer.h> #include <utils/StrongPointer.h> @@ -66,6 +68,14 @@ public: EGLDisplay eglDisplay() const { return mEglDisplay; } + // Inserts a wait on fence command into the OpenGL ES command stream. If EGL extension + // support is missing, block the CPU on the fence. + status_t fenceWait(sp<Fence>& fence); + + // Creates a fence that is signaled, when all the pending GL commands are flushed. + // Depending on installed extensions, the result is either Android native fence or EGL fence. + status_t createReleaseFence(bool useFenceSync, EGLSyncKHR* eglFence, sp<Fence>& nativeFence); + private: void initExtensions(); |