DO NOT MERGE: revert HWC2 changes
The changes are causing some issues with multi-window use cases.
Fixes: 64491794
Test: test gmail compose in multi-window + show taps enabled
Change-Id: I0b0a3f351ed48f81db89a71c78bf17bab8cb2acf
Signed-off-by: Adrian Salido <salidoa@google.com>
diff --git a/glworker.cpp b/glworker.cpp
index e12995e..6ce2de3 100644
--- a/glworker.cpp
+++ b/glworker.cpp
@@ -35,10 +35,14 @@
#include <utils/Trace.h>
#include "drmdisplaycomposition.h"
-#include "platform.h"
#include "glworker.h"
+// TODO(zachr): use hwc_drm_bo to turn buffer handles into textures
+#ifndef EGL_NATIVE_HANDLE_ANDROID_NVX
+#define EGL_NATIVE_HANDLE_ANDROID_NVX 0x322A
+#endif
+
#define MAX_OVERLAPPING_LAYERS 64
namespace android {
@@ -412,9 +416,10 @@
static int CreateTextureFromHandle(EGLDisplay egl_display,
buffer_handle_t handle,
- Importer *importer,
AutoEGLImageAndGLTexture *out) {
- EGLImageKHR image = importer->ImportImage(egl_display, handle);
+ EGLImageKHR image = eglCreateImageKHR(
+ egl_display, EGL_NO_CONTEXT, EGL_NATIVE_HANDLE_ANDROID_NVX,
+ (EGLClientBuffer)handle, NULL /* no attribs */);
if (image == EGL_NO_IMAGE_KHR) {
ALOGE("Failed to make image %s %p", GetEGLError(), handle);
@@ -547,8 +552,7 @@
int GLWorkerCompositor::Composite(DrmHwcLayer *layers,
DrmCompositionRegion *regions,
size_t num_regions,
- const sp<GraphicBuffer> &framebuffer,
- Importer *importer) {
+ const sp<GraphicBuffer> &framebuffer) {
ATRACE_CALL();
int ret = 0;
std::vector<AutoEGLImageAndGLTexture> layer_textures;
@@ -586,7 +590,7 @@
continue;
ret = CreateTextureFromHandle(egl_display_, layer->get_usable_handle(),
- importer, &layer_textures.back());
+ &layer_textures.back());
if (!ret) {
ret = EGLFenceWait(egl_display_, layer->acquire_fence.Release());