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

Commit 84ff7b2a authored by rnlee's avatar rnlee Committed by Rachel Lee
Browse files

eglSurfaceAttrib EGL_TIMESTAMPS_ANDROID non-window surface fix.

The spec says:
"If attribute is EGL_TIMESTAMPS_ANDROID, then values specifies whether
to enable/disable timestamp collection for this surface. A value of
EGL_TRUE enables timestamp collection, while a value of EGL_FALSE
disables it. The initial value is false. If surface is not a window
surface this has no effect."

Setting an error is considered a side effect, so return
EGL_TRUE for EGL_TIMESTAMPS_ANDROID attribute.

BUG: 174481138
Test: APK b/174481138#comment1, `adb logcat *:E -e egl` no error
Change-Id: Ia6f04126bd3dead47648a1c71f7100224f28553d
parent 3acce53a
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -1453,7 +1453,9 @@ EGLBoolean eglSurfaceAttribImpl(EGLDisplay dpy, EGLSurface surface, EGLint attri

    if (attribute == EGL_TIMESTAMPS_ANDROID) {
        if (!s->getNativeWindow()) {
            return setError(EGL_BAD_SURFACE, (EGLBoolean)EGL_FALSE);
            // According to the spec, "if surface is not a window surface this has no
            // effect."
            return EGL_TRUE;
        }
        int err = native_window_enable_frame_timestamps(s->getNativeWindow(), value != 0);
        return (err == 0) ? EGL_TRUE : setError(EGL_BAD_SURFACE, (EGLBoolean)EGL_FALSE);