Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit eb55ebc0 authored by Christopher N. Hesse's avatar Christopher N. Hesse Committed by Michael Bestas
Browse files

surfaceflinger: Add support for Exynos BGRA mixer

Change-Id: Ibc9f784b35a7bd6d8cc6b13ff68b12418cce98c5
parent 1f206201
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -63,6 +63,10 @@ ifneq ($(MAX_EGL_CACHE_SIZE),)
  LOCAL_CFLAGS += -DMAX_EGL_CACHE_SIZE=$(MAX_EGL_CACHE_SIZE)
endif

ifeq ($(BOARD_USE_BGRA_8888), true)
  LOCAL_CFLAGS += -DUSE_BGRA_8888
endif

ifneq ($(filter address,$(SANITIZE_TARGET)),)
  LOCAL_CFLAGS_32 += -DEGL_WRAPPER_DIR=\"/$(TARGET_COPY_OUT_DATA)/lib\"
  LOCAL_CFLAGS_64 += -DEGL_WRAPPER_DIR=\"/$(TARGET_COPY_OUT_DATA)/lib64\"
+13 −0
Original line number Diff line number Diff line
@@ -487,8 +487,13 @@ EGLSurface eglCreateWindowSurface( EGLDisplay dpy, EGLConfig config,
        // modify the EGLconfig's format before setting the native window's
        // format.

#ifdef USE_BGRA_8888
        // by default, just pick BGRA_8888
        EGLint format = HAL_PIXEL_FORMAT_BGRA_8888;
#else
        // by default, just pick RGBA_8888
        EGLint format = HAL_PIXEL_FORMAT_RGBA_8888;
#endif
        android_dataspace dataSpace = HAL_DATASPACE_UNKNOWN;

#if WORKAROUND_BUG_10194508
@@ -503,7 +508,11 @@ EGLSurface eglCreateWindowSurface( EGLDisplay dpy, EGLConfig config,
        cnx->egl.eglGetConfigAttrib(iDpy, config, EGL_ALPHA_SIZE, &a);
        if (a > 0) {
            // alpha-channel requested, there's really only one suitable format
#ifdef USE_BGRA_8888
            format = HAL_PIXEL_FORMAT_BGRA_8888;
#else
            format = HAL_PIXEL_FORMAT_RGBA_8888;
#endif
        } else {
            EGLint r, g, b;
            r = g = b = 0;
@@ -1874,7 +1883,11 @@ EGLClientBuffer eglCreateNativeClientBufferANDROID(const EGLint *attrib_list)
    // Validate format.
    if (red_size == 8 && green_size == 8 && blue_size == 8) {
        if (alpha_size == 8) {
#ifdef USE_BGRA_8888
            format = HAL_PIXEL_FORMAT_BGRA_8888;
#else
            format = HAL_PIXEL_FORMAT_RGBA_8888;
#endif
        } else {
            format = HAL_PIXEL_FORMAT_RGB_888;
        }
+4 −0
Original line number Diff line number Diff line
@@ -134,6 +134,10 @@ else
    LOCAL_CFLAGS += -DMAX_VIRTUAL_DISPLAY_DIMENSION=0
endif

ifeq ($(BOARD_USE_BGRA_8888),true)
    LOCAL_CFLAGS += -DUSE_BGRA_8888
endif

LOCAL_CFLAGS += -fvisibility=hidden -Werror=format
LOCAL_CFLAGS += -std=c++14

+16 −0
Original line number Diff line number Diff line
@@ -442,7 +442,11 @@ status_t HWComposer::queryDisplayProperties(int disp) {
    }

    // FIXME: what should we set the format to?
#ifdef USE_BGRA_8888
    mDisplayData[disp].format = HAL_PIXEL_FORMAT_BGRA_8888;
#else
    mDisplayData[disp].format = HAL_PIXEL_FORMAT_RGBA_8888;
#endif
    mDisplayData[disp].connected = true;
    return NO_ERROR;
}
@@ -504,7 +508,11 @@ sp<Fence> HWComposer::getDisplayFence(int disp) const {

uint32_t HWComposer::getFormat(int disp) const {
    if (static_cast<uint32_t>(disp) >= MAX_HWC_DISPLAYS || !mAllocatedDisplayIDs.hasBit(disp)) {
#ifdef USE_BGRA_8888
        return HAL_PIXEL_FORMAT_BGRA_8888;
#else
        return HAL_PIXEL_FORMAT_RGBA_8888;
#endif
    } else {
        return mDisplayData[disp].format;
    }
@@ -889,7 +897,11 @@ int HWComposer::getVisualID() const {
        // FIXME: temporary hack until HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED
        // is supported by the implementation. we can only be in this case
        // if we have HWC 1.1
#ifdef USE_BGRA_8888
        return HAL_PIXEL_FORMAT_BGRA_8888;
#else
        return HAL_PIXEL_FORMAT_RGBA_8888;
#endif
        //return HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED;
    } else {
        return mFbDev->format;
@@ -1386,7 +1398,11 @@ bool HWComposer::VSyncThread::threadLoop() {
HWComposer::DisplayData::DisplayData()
:   configs(),
    currentConfig(0),
#ifdef USE_BGRA_8888
    format(HAL_PIXEL_FORMAT_BGRA_8888),
#else
    format(HAL_PIXEL_FORMAT_RGBA_8888),
#endif
    connected(false),
    hasFbComp(false), hasOvComp(false),
    capacity(0), list(NULL),