Sorry, is there any comment about the below patch, Thanks very much! Or did I 
miss something ?

-----Original Message-----
From: Wu, Zhongmin 
Sent: Wednesday, January 3, 2018 10:11 
To: [email protected]
Cc: Kondapally, Kalyan <[email protected]>; Palli, Tapani 
<[email protected]>; Xu, Randy <[email protected]>; Long, Zhifang 
<[email protected]>; Wu, Zhongmin <[email protected]>; Rob Herring 
<[email protected]>; Tomasz Figa <[email protected]>; Eric Engestrom 
<[email protected]>; Emil Velikov <[email protected]>; Bhardwaj, MunishX 
<[email protected]>; Kps, Harish Krupo <[email protected]>; 
Chad Versace <[email protected]>
Subject: [egl/android: Implement the eglSwapinterval for Android] egl/android: 
Implement the eglSwapinterval for Android.

From: Zhongmin Wu <[email protected]>

Implement the eglSwapinterval for Android platform to enable the async mode for 
some GFX benchmarks.

Change-Id: I3576d8b92862719dae11c31e2adc2d77cb5a0b64
Signed-off-by: Zhongmin Wu <[email protected]>
---
 src/egl/drivers/dri2/platform_android.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/src/egl/drivers/dri2/platform_android.c 
b/src/egl/drivers/dri2/platform_android.c
index f6a24cd..f9c74ee 100644
--- a/src/egl/drivers/dri2/platform_android.c
+++ b/src/egl/drivers/dri2/platform_android.c
@@ -476,6 +476,18 @@ droid_destroy_surface(_EGLDriver *drv, _EGLDisplay *disp, 
_EGLSurface *surf)
    return EGL_TRUE;
 }
 
+static EGLBoolean droid_swap_interval(_EGLDriver *drv, _EGLDisplay *dpy,
+        _EGLSurface *surf, EGLint interval) {
+
+   struct dri2_egl_surface *dri2_surf = dri2_egl_surface(surf);
+   struct ANativeWindow *window = dri2_surf->window;
+   if (window->setSwapInterval(window, interval)) {
+      return EGL_FALSE;
+   }
+   surf->SwapInterval = interval;
+   return EGL_TRUE;
+}
+
 static int
 update_buffers(struct dri2_egl_surface *dri2_surf)  { @@ -1300,6 +1312,7 @@ 
static const struct dri2_egl_display_vtbl droid_display_vtbl = {
    .swap_buffers = droid_swap_buffers,
    .swap_buffers_with_damage = dri2_fallback_swap_buffers_with_damage, /* 
Android implements the function */
    .swap_buffers_region = dri2_fallback_swap_buffers_region,
+   .swap_interval = droid_swap_interval,
 #if ANDROID_API_LEVEL >= 23
    .set_damage_region = droid_set_damage_region,  #else @@ -1443,6 +1456,8 @@ 
dri2_initialize_android(_EGLDriver *drv, _EGLDisplay *dpy)
 
    dri2_setup_screen(dpy);
 
+   dri2_setup_swap_interval(dpy, 1);
+
    if (!droid_add_configs_for_visuals(drv, dpy)) {
       err = "DRI2: failed to add configs";
       goto cleanup;
--
2.7.4

_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to