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

Commit d3c6dfd4 authored by Ramkumar Radhakrishnan's avatar Ramkumar Radhakrishnan Committed by Linux Build Service Account
Browse files

egl: Addition of eglGpuPerfHintQCOM.

This patch implements a wrapper that hooks into the QCOM
functionality.

Change-Id: Ifcb77e90ba137a4dede7d25663b032df6acc799d
parent 9094ee23
Loading
Loading
Loading
Loading
+41 −1
Original line number Original line Diff line number Diff line
@@ -162,7 +162,8 @@ static const extention_map_t sExtensionMap[] = {
        (!strcmp((procname), "eglSetBlobCacheFuncsANDROID") ||    \
        (!strcmp((procname), "eglSetBlobCacheFuncsANDROID") ||    \
         !strcmp((procname), "eglHibernateProcessIMG")      ||    \
         !strcmp((procname), "eglHibernateProcessIMG")      ||    \
         !strcmp((procname), "eglAwakenProcessIMG")         ||    \
         !strcmp((procname), "eglAwakenProcessIMG")         ||    \
         !strcmp((procname), "eglDupNativeFenceFDANDROID"))
         !strcmp((procname), "eglDupNativeFenceFDANDROID")  ||    \
         !strcmp((procname), "eglGpuPerfHintQCOM"))






@@ -1553,6 +1554,45 @@ EGLBoolean eglPresentationTimeANDROID(EGLDisplay dpy, EGLSurface surface,
    return EGL_TRUE;
    return EGL_TRUE;
}
}


// ----------------------------------------------------------------------------
// QCOM extensions
// ----------------------------------------------------------------------------
#ifdef __cplusplus
extern "C" {
#endif
EGLAPI EGLBoolean eglGpuPerfHintQCOM(EGLDisplay dpy, EGLContext ctx, EGLint *attrib_list);
#ifdef __cplusplus
}
#endif

EGLBoolean eglGpuPerfHintQCOM(EGLDisplay dpy, EGLContext ctx, EGLint *attrib_list)
{
    clearError();

    const egl_display_ptr dp = validate_display(dpy);
    if (!dp) return EGL_FALSE;

    ContextRef _c(dp.get(), ctx);
    if ((ctx != EGL_NO_CONTEXT) && !_c.get()) {
        // ctx is not valid
        return setError(EGL_BAD_CONTEXT, EGL_FALSE);
    }

    egl_context_t * c = NULL;
    c = get_context(ctx);

    EGLint result = EGL_FALSE;
    egl_connection_t* const cnx = &gEGLImpl;
    if (cnx->dso && cnx->egl.eglGpuPerfHintQCOM) {
        result = cnx->egl.eglGpuPerfHintQCOM(
                dp->disp.dpy,
                c->context,
                attrib_list);
    }
    return result;

}

// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// NVIDIA extensions
// NVIDIA extensions
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
+4 −0
Original line number Original line Diff line number Diff line
@@ -81,6 +81,10 @@ EGL_ENTRY(EGLBoolean, eglSetSwapRectangleANDROID, EGLDisplay, EGLSurface, EGLint
EGL_ENTRY(EGLClientBuffer, eglGetRenderBufferANDROID, EGLDisplay, EGLSurface)
EGL_ENTRY(EGLClientBuffer, eglGetRenderBufferANDROID, EGLDisplay, EGLSurface)
EGL_ENTRY(EGLint, eglDupNativeFenceFDANDROID, EGLDisplay, EGLSyncKHR)
EGL_ENTRY(EGLint, eglDupNativeFenceFDANDROID, EGLDisplay, EGLSyncKHR)


/* QCOM extensions */

EGL_ENTRY(EGLBoolean, eglGpuPerfHintQCOM, EGLDisplay, EGLContext, EGLint *)

/* NVIDIA extensions */
/* NVIDIA extensions */


EGL_ENTRY(EGLuint64NV, eglGetSystemTimeFrequencyNV, void)
EGL_ENTRY(EGLuint64NV, eglGetSystemTimeFrequencyNV, void)