Below is the dEQP result for all the dEQP-EGL.*swap_interval tests

11-11 18:22:44.164 12737 12737 I dEQP    : Device has at least 832.00 MiB total 
system memory per Android CDD
11-11 18:22:44.164 12737 12737 I dEQP    : Writing test log into 
/sdcard/dEQP-Log.qpa
11-11 18:22:44.165 12737 12737 I dEQP    : dEQP Core unknown (0xcafebabe) 
starting..
11-11 18:22:44.165 12737 12737 I dEQP    :   target implementation = 'android'
11-11 18:22:44.329 12737 12760 I dEQP    : 
11-11 18:22:44.329 12737 12760 I dEQP    : Test case 
'dEQP-EGL.functional.query_config.get_config_attrib.max_swap_interval'..
11-11 18:22:44.391 12737 12760 I dEQP    :   Pass (Pass)
11-11 18:22:44.392 12737 12760 I dEQP    : 
11-11 18:22:44.392 12737 12760 I dEQP    : Test case 
'dEQP-EGL.functional.query_config.get_config_attrib.min_swap_interval'..
11-11 18:22:44.421 12737 12760 I dEQP    :   Pass (Pass)
11-11 18:22:44.421 12737 12760 I dEQP    : 
11-11 18:22:44.421 12737 12760 I dEQP    : Test case 
'dEQP-EGL.functional.choose_config.simple.selection_only.max_swap_interval'..
11-11 18:22:44.429 12737 12760 I dEQP    :   Pass (Pass)
11-11 18:22:44.429 12737 12760 I dEQP    : 
11-11 18:22:44.429 12737 12760 I dEQP    : Test case 
'dEQP-EGL.functional.choose_config.simple.selection_only.min_swap_interval'..
11-11 18:22:44.437 12737 12760 I dEQP    :   Pass (Pass)
11-11 18:22:44.437 12737 12760 I dEQP    : 
11-11 18:22:44.437 12737 12760 I dEQP    : Test case 
'dEQP-EGL.functional.choose_config.simple.selection_and_sort.max_swap_interval'..
11-11 18:22:44.444 12737 12760 I dEQP    :   Pass (Pass)
11-11 18:22:44.444 12737 12760 I dEQP    : 
11-11 18:22:44.444 12737 12760 I dEQP    : Test case 
'dEQP-EGL.functional.choose_config.simple.selection_and_sort.min_swap_interval'..
11-11 18:22:44.451 12737 12760 I dEQP    :   Pass (Pass)
11-11 18:22:44.618 12737 12760 I dEQP    : 
11-11 18:22:44.618 12737 12760 I dEQP    : Test case 
'dEQP-EGL.functional.negative_api.swap_interval'..
11-11 18:22:44.621 12737 12760 I dEQP    :   Pass (Pass)
11-11 18:22:44.645 12737 12760 I dEQP    : 
11-11 18:22:44.645 12737 12760 I dEQP    : DONE!
11-11 18:22:44.645 12737 12760 I dEQP    : 
11-11 18:22:44.645 12737 12760 I dEQP    : Test run totals:
11-11 18:22:44.645 12737 12760 I dEQP    :   Passed:        7/7 (100.0%)
11-11 18:22:44.645 12737 12760 I dEQP    :   Failed:        0/7 (0.0%)
11-11 18:22:44.645 12737 12760 I dEQP    :   Not supported: 0/7 (0.0%)
11-11 18:22:44.645 12737 12760 I dEQP    :   Warnings:      0/7 (0.0%)
11-11 18:22:45.097 12737 12737 I dEQP    : Done, killing process

-----Original Message-----
From: Wu, Zhongmin 
Sent: Thursday, January 18, 2018 15:39 
To: mesa-dev@lists.freedesktop.org
Cc: tf...@chromium.org; r...@kernel.org; emil.l.veli...@gmail.com; Liu, Zhiquan 
<zhiquan....@intel.com>; Long, Zhifang <zhifang.l...@intel.com>; Kondapally, 
Kalyan <kalyan.kondapa...@intel.com>; Palli, Tapani <tapani.pa...@intel.com>; 
Xu, Randy <randy...@intel.com>; Wu, Zhongmin <zhongmin...@intel.com>; Eric 
Engestrom <e...@engestrom.ch>; Bhardwaj, MunishX <munishx.bhard...@intel.com>; 
Kps, Harish Krupo <harish.krupo....@intel.com>; Chad Versace 
<chadvers...@chromium.org>
Subject: [PATCH v2] egl/android: Implement the eglSwapinterval for Android.

Implement the eglSwapinterval for Android platform to enable the async mode for 
some GFX benchmarks such as Daimler C217, CityBench.

Signed-off-by: Zhongmin Wu <zhongmin...@intel.com>
---
 src/egl/drivers/dri2/platform_android.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/src/egl/drivers/dri2/platform_android.c 
b/src/egl/drivers/dri2/platform_android.c
index f6a24cd..3a64689 100644
--- a/src/egl/drivers/dri2/platform_android.c
+++ b/src/egl/drivers/dri2/platform_android.c
@@ -476,6 +476,20 @@ 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 +1314,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 +1458,12 @@ 
dri2_initialize_android(_EGLDriver *drv, _EGLDisplay *dpy)
 
    dri2_setup_screen(dpy);
 
+   /* we set the maximum swap interval as 1 for Android platform, Since
+   it is the maximum value supported by Android according to the
+   value of ANativeWindow::maxSwapInterval.
+   */
+   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

Attachment: dEQP-Log.qpa
Description: dEQP-Log.qpa

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to