From 78d6342818017a4fde22d60166e5c9e895901e53 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mika=20Isoj=C3=A4rvi?= Date: Fri, 19 Feb 2016 15:04:14 -0800 Subject: [PATCH] Add native window resizing to buffer age tests Bug: 27171356 Change-Id: Ie63cc517557e8d878b290b7a9744b4e31ecd2995 --- .../cts/master/com.drawelements.deqp.egl.xml | 692 +++++++++++++----- android/cts/master/egl-master.txt | 224 ++++-- modules/egl/teglBufferAgeTests.cpp | 126 +++- 3 files changed, 796 insertions(+), 246 deletions(-) diff --git a/android/cts/master/com.drawelements.deqp.egl.xml b/android/cts/master/com.drawelements.deqp.egl.xml index b931e93c6..0c113b228 100644 --- a/android/cts/master/com.drawelements.deqp.egl.xml +++ b/android/cts/master/com.drawelements.deqp.egl.xml @@ -10358,178 +10358,526 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/cts/master/egl-master.txt b/android/cts/master/egl-master.txt index 00b7cd1e9..eb7388c58 100644 --- a/android/cts/master/egl-master.txt +++ b/android/cts/master/egl-master.txt @@ -3287,62 +3287,174 @@ dEQP-EGL.functional.resize.pixel_density.shrink dEQP-EGL.functional.resize.pixel_density.grow dEQP-EGL.functional.resize.pixel_density.stretch_width dEQP-EGL.functional.resize.pixel_density.stretch_height -dEQP-EGL.functional.buffer_age.preserve.odd_none_even_none -dEQP-EGL.functional.buffer_age.preserve.odd_clear_even_none -dEQP-EGL.functional.buffer_age.preserve.odd_render_even_none -dEQP-EGL.functional.buffer_age.preserve.odd_clear_clear_even_none -dEQP-EGL.functional.buffer_age.preserve.odd_render_render_even_none -dEQP-EGL.functional.buffer_age.preserve.odd_clear_render_even_none -dEQP-EGL.functional.buffer_age.preserve.odd_render_clear_even_none -dEQP-EGL.functional.buffer_age.preserve.odd_clear_even_clear -dEQP-EGL.functional.buffer_age.preserve.odd_render_even_clear -dEQP-EGL.functional.buffer_age.preserve.odd_clear_clear_even_clear -dEQP-EGL.functional.buffer_age.preserve.odd_render_render_even_clear -dEQP-EGL.functional.buffer_age.preserve.odd_clear_render_even_clear -dEQP-EGL.functional.buffer_age.preserve.odd_render_clear_even_clear -dEQP-EGL.functional.buffer_age.preserve.odd_render_even_render -dEQP-EGL.functional.buffer_age.preserve.odd_clear_clear_even_render -dEQP-EGL.functional.buffer_age.preserve.odd_render_render_even_render -dEQP-EGL.functional.buffer_age.preserve.odd_clear_render_even_render -dEQP-EGL.functional.buffer_age.preserve.odd_render_clear_even_render -dEQP-EGL.functional.buffer_age.preserve.odd_clear_clear_even_clear_clear -dEQP-EGL.functional.buffer_age.preserve.odd_render_render_even_clear_clear -dEQP-EGL.functional.buffer_age.preserve.odd_clear_render_even_clear_clear -dEQP-EGL.functional.buffer_age.preserve.odd_render_clear_even_clear_clear -dEQP-EGL.functional.buffer_age.preserve.odd_render_render_even_render_render -dEQP-EGL.functional.buffer_age.preserve.odd_clear_render_even_render_render -dEQP-EGL.functional.buffer_age.preserve.odd_render_clear_even_render_render -dEQP-EGL.functional.buffer_age.preserve.odd_clear_render_even_clear_render -dEQP-EGL.functional.buffer_age.preserve.odd_render_clear_even_clear_render -dEQP-EGL.functional.buffer_age.preserve.odd_render_clear_even_render_clear -dEQP-EGL.functional.buffer_age.no_preserve.odd_none_even_none -dEQP-EGL.functional.buffer_age.no_preserve.odd_clear_even_none -dEQP-EGL.functional.buffer_age.no_preserve.odd_render_even_none -dEQP-EGL.functional.buffer_age.no_preserve.odd_clear_clear_even_none -dEQP-EGL.functional.buffer_age.no_preserve.odd_render_render_even_none -dEQP-EGL.functional.buffer_age.no_preserve.odd_clear_render_even_none -dEQP-EGL.functional.buffer_age.no_preserve.odd_render_clear_even_none -dEQP-EGL.functional.buffer_age.no_preserve.odd_clear_even_clear -dEQP-EGL.functional.buffer_age.no_preserve.odd_render_even_clear -dEQP-EGL.functional.buffer_age.no_preserve.odd_clear_clear_even_clear -dEQP-EGL.functional.buffer_age.no_preserve.odd_render_render_even_clear -dEQP-EGL.functional.buffer_age.no_preserve.odd_clear_render_even_clear -dEQP-EGL.functional.buffer_age.no_preserve.odd_render_clear_even_clear -dEQP-EGL.functional.buffer_age.no_preserve.odd_render_even_render -dEQP-EGL.functional.buffer_age.no_preserve.odd_clear_clear_even_render -dEQP-EGL.functional.buffer_age.no_preserve.odd_render_render_even_render -dEQP-EGL.functional.buffer_age.no_preserve.odd_clear_render_even_render -dEQP-EGL.functional.buffer_age.no_preserve.odd_render_clear_even_render -dEQP-EGL.functional.buffer_age.no_preserve.odd_clear_clear_even_clear_clear -dEQP-EGL.functional.buffer_age.no_preserve.odd_render_render_even_clear_clear -dEQP-EGL.functional.buffer_age.no_preserve.odd_clear_render_even_clear_clear -dEQP-EGL.functional.buffer_age.no_preserve.odd_render_clear_even_clear_clear -dEQP-EGL.functional.buffer_age.no_preserve.odd_render_render_even_render_render -dEQP-EGL.functional.buffer_age.no_preserve.odd_clear_render_even_render_render -dEQP-EGL.functional.buffer_age.no_preserve.odd_render_clear_even_render_render -dEQP-EGL.functional.buffer_age.no_preserve.odd_clear_render_even_clear_render -dEQP-EGL.functional.buffer_age.no_preserve.odd_render_clear_even_clear_render -dEQP-EGL.functional.buffer_age.no_preserve.odd_render_clear_even_render_clear +dEQP-EGL.functional.buffer_age.preserve.no_resize.odd_none_even_none +dEQP-EGL.functional.buffer_age.preserve.no_resize.odd_clear_even_none +dEQP-EGL.functional.buffer_age.preserve.no_resize.odd_render_even_none +dEQP-EGL.functional.buffer_age.preserve.no_resize.odd_clear_clear_even_none +dEQP-EGL.functional.buffer_age.preserve.no_resize.odd_render_render_even_none +dEQP-EGL.functional.buffer_age.preserve.no_resize.odd_clear_render_even_none +dEQP-EGL.functional.buffer_age.preserve.no_resize.odd_render_clear_even_none +dEQP-EGL.functional.buffer_age.preserve.no_resize.odd_clear_even_clear +dEQP-EGL.functional.buffer_age.preserve.no_resize.odd_render_even_clear +dEQP-EGL.functional.buffer_age.preserve.no_resize.odd_clear_clear_even_clear +dEQP-EGL.functional.buffer_age.preserve.no_resize.odd_render_render_even_clear +dEQP-EGL.functional.buffer_age.preserve.no_resize.odd_clear_render_even_clear +dEQP-EGL.functional.buffer_age.preserve.no_resize.odd_render_clear_even_clear +dEQP-EGL.functional.buffer_age.preserve.no_resize.odd_render_even_render +dEQP-EGL.functional.buffer_age.preserve.no_resize.odd_clear_clear_even_render +dEQP-EGL.functional.buffer_age.preserve.no_resize.odd_render_render_even_render +dEQP-EGL.functional.buffer_age.preserve.no_resize.odd_clear_render_even_render +dEQP-EGL.functional.buffer_age.preserve.no_resize.odd_render_clear_even_render +dEQP-EGL.functional.buffer_age.preserve.no_resize.odd_clear_clear_even_clear_clear +dEQP-EGL.functional.buffer_age.preserve.no_resize.odd_render_render_even_clear_clear +dEQP-EGL.functional.buffer_age.preserve.no_resize.odd_clear_render_even_clear_clear +dEQP-EGL.functional.buffer_age.preserve.no_resize.odd_render_clear_even_clear_clear +dEQP-EGL.functional.buffer_age.preserve.no_resize.odd_render_render_even_render_render +dEQP-EGL.functional.buffer_age.preserve.no_resize.odd_clear_render_even_render_render +dEQP-EGL.functional.buffer_age.preserve.no_resize.odd_render_clear_even_render_render +dEQP-EGL.functional.buffer_age.preserve.no_resize.odd_clear_render_even_clear_render +dEQP-EGL.functional.buffer_age.preserve.no_resize.odd_render_clear_even_clear_render +dEQP-EGL.functional.buffer_age.preserve.no_resize.odd_render_clear_even_render_clear +dEQP-EGL.functional.buffer_age.preserve.resize_before_swap.odd_none_even_none +dEQP-EGL.functional.buffer_age.preserve.resize_before_swap.odd_clear_even_none +dEQP-EGL.functional.buffer_age.preserve.resize_before_swap.odd_render_even_none +dEQP-EGL.functional.buffer_age.preserve.resize_before_swap.odd_clear_clear_even_none +dEQP-EGL.functional.buffer_age.preserve.resize_before_swap.odd_render_render_even_none +dEQP-EGL.functional.buffer_age.preserve.resize_before_swap.odd_clear_render_even_none +dEQP-EGL.functional.buffer_age.preserve.resize_before_swap.odd_render_clear_even_none +dEQP-EGL.functional.buffer_age.preserve.resize_before_swap.odd_clear_even_clear +dEQP-EGL.functional.buffer_age.preserve.resize_before_swap.odd_render_even_clear +dEQP-EGL.functional.buffer_age.preserve.resize_before_swap.odd_clear_clear_even_clear +dEQP-EGL.functional.buffer_age.preserve.resize_before_swap.odd_render_render_even_clear +dEQP-EGL.functional.buffer_age.preserve.resize_before_swap.odd_clear_render_even_clear +dEQP-EGL.functional.buffer_age.preserve.resize_before_swap.odd_render_clear_even_clear +dEQP-EGL.functional.buffer_age.preserve.resize_before_swap.odd_render_even_render +dEQP-EGL.functional.buffer_age.preserve.resize_before_swap.odd_clear_clear_even_render +dEQP-EGL.functional.buffer_age.preserve.resize_before_swap.odd_render_render_even_render +dEQP-EGL.functional.buffer_age.preserve.resize_before_swap.odd_clear_render_even_render +dEQP-EGL.functional.buffer_age.preserve.resize_before_swap.odd_render_clear_even_render +dEQP-EGL.functional.buffer_age.preserve.resize_before_swap.odd_clear_clear_even_clear_clear +dEQP-EGL.functional.buffer_age.preserve.resize_before_swap.odd_render_render_even_clear_clear +dEQP-EGL.functional.buffer_age.preserve.resize_before_swap.odd_clear_render_even_clear_clear +dEQP-EGL.functional.buffer_age.preserve.resize_before_swap.odd_render_clear_even_clear_clear +dEQP-EGL.functional.buffer_age.preserve.resize_before_swap.odd_render_render_even_render_render +dEQP-EGL.functional.buffer_age.preserve.resize_before_swap.odd_clear_render_even_render_render +dEQP-EGL.functional.buffer_age.preserve.resize_before_swap.odd_render_clear_even_render_render +dEQP-EGL.functional.buffer_age.preserve.resize_before_swap.odd_clear_render_even_clear_render +dEQP-EGL.functional.buffer_age.preserve.resize_before_swap.odd_render_clear_even_clear_render +dEQP-EGL.functional.buffer_age.preserve.resize_before_swap.odd_render_clear_even_render_clear +dEQP-EGL.functional.buffer_age.preserve.resize_after_swap.odd_none_even_none +dEQP-EGL.functional.buffer_age.preserve.resize_after_swap.odd_clear_even_none +dEQP-EGL.functional.buffer_age.preserve.resize_after_swap.odd_render_even_none +dEQP-EGL.functional.buffer_age.preserve.resize_after_swap.odd_clear_clear_even_none +dEQP-EGL.functional.buffer_age.preserve.resize_after_swap.odd_render_render_even_none +dEQP-EGL.functional.buffer_age.preserve.resize_after_swap.odd_clear_render_even_none +dEQP-EGL.functional.buffer_age.preserve.resize_after_swap.odd_render_clear_even_none +dEQP-EGL.functional.buffer_age.preserve.resize_after_swap.odd_clear_even_clear +dEQP-EGL.functional.buffer_age.preserve.resize_after_swap.odd_render_even_clear +dEQP-EGL.functional.buffer_age.preserve.resize_after_swap.odd_clear_clear_even_clear +dEQP-EGL.functional.buffer_age.preserve.resize_after_swap.odd_render_render_even_clear +dEQP-EGL.functional.buffer_age.preserve.resize_after_swap.odd_clear_render_even_clear +dEQP-EGL.functional.buffer_age.preserve.resize_after_swap.odd_render_clear_even_clear +dEQP-EGL.functional.buffer_age.preserve.resize_after_swap.odd_render_even_render +dEQP-EGL.functional.buffer_age.preserve.resize_after_swap.odd_clear_clear_even_render +dEQP-EGL.functional.buffer_age.preserve.resize_after_swap.odd_render_render_even_render +dEQP-EGL.functional.buffer_age.preserve.resize_after_swap.odd_clear_render_even_render +dEQP-EGL.functional.buffer_age.preserve.resize_after_swap.odd_render_clear_even_render +dEQP-EGL.functional.buffer_age.preserve.resize_after_swap.odd_clear_clear_even_clear_clear +dEQP-EGL.functional.buffer_age.preserve.resize_after_swap.odd_render_render_even_clear_clear +dEQP-EGL.functional.buffer_age.preserve.resize_after_swap.odd_clear_render_even_clear_clear +dEQP-EGL.functional.buffer_age.preserve.resize_after_swap.odd_render_clear_even_clear_clear +dEQP-EGL.functional.buffer_age.preserve.resize_after_swap.odd_render_render_even_render_render +dEQP-EGL.functional.buffer_age.preserve.resize_after_swap.odd_clear_render_even_render_render +dEQP-EGL.functional.buffer_age.preserve.resize_after_swap.odd_render_clear_even_render_render +dEQP-EGL.functional.buffer_age.preserve.resize_after_swap.odd_clear_render_even_clear_render +dEQP-EGL.functional.buffer_age.preserve.resize_after_swap.odd_render_clear_even_clear_render +dEQP-EGL.functional.buffer_age.preserve.resize_after_swap.odd_render_clear_even_render_clear +dEQP-EGL.functional.buffer_age.no_preserve.no_resize.odd_none_even_none +dEQP-EGL.functional.buffer_age.no_preserve.no_resize.odd_clear_even_none +dEQP-EGL.functional.buffer_age.no_preserve.no_resize.odd_render_even_none +dEQP-EGL.functional.buffer_age.no_preserve.no_resize.odd_clear_clear_even_none +dEQP-EGL.functional.buffer_age.no_preserve.no_resize.odd_render_render_even_none +dEQP-EGL.functional.buffer_age.no_preserve.no_resize.odd_clear_render_even_none +dEQP-EGL.functional.buffer_age.no_preserve.no_resize.odd_render_clear_even_none +dEQP-EGL.functional.buffer_age.no_preserve.no_resize.odd_clear_even_clear +dEQP-EGL.functional.buffer_age.no_preserve.no_resize.odd_render_even_clear +dEQP-EGL.functional.buffer_age.no_preserve.no_resize.odd_clear_clear_even_clear +dEQP-EGL.functional.buffer_age.no_preserve.no_resize.odd_render_render_even_clear +dEQP-EGL.functional.buffer_age.no_preserve.no_resize.odd_clear_render_even_clear +dEQP-EGL.functional.buffer_age.no_preserve.no_resize.odd_render_clear_even_clear +dEQP-EGL.functional.buffer_age.no_preserve.no_resize.odd_render_even_render +dEQP-EGL.functional.buffer_age.no_preserve.no_resize.odd_clear_clear_even_render +dEQP-EGL.functional.buffer_age.no_preserve.no_resize.odd_render_render_even_render +dEQP-EGL.functional.buffer_age.no_preserve.no_resize.odd_clear_render_even_render +dEQP-EGL.functional.buffer_age.no_preserve.no_resize.odd_render_clear_even_render +dEQP-EGL.functional.buffer_age.no_preserve.no_resize.odd_clear_clear_even_clear_clear +dEQP-EGL.functional.buffer_age.no_preserve.no_resize.odd_render_render_even_clear_clear +dEQP-EGL.functional.buffer_age.no_preserve.no_resize.odd_clear_render_even_clear_clear +dEQP-EGL.functional.buffer_age.no_preserve.no_resize.odd_render_clear_even_clear_clear +dEQP-EGL.functional.buffer_age.no_preserve.no_resize.odd_render_render_even_render_render +dEQP-EGL.functional.buffer_age.no_preserve.no_resize.odd_clear_render_even_render_render +dEQP-EGL.functional.buffer_age.no_preserve.no_resize.odd_render_clear_even_render_render +dEQP-EGL.functional.buffer_age.no_preserve.no_resize.odd_clear_render_even_clear_render +dEQP-EGL.functional.buffer_age.no_preserve.no_resize.odd_render_clear_even_clear_render +dEQP-EGL.functional.buffer_age.no_preserve.no_resize.odd_render_clear_even_render_clear +dEQP-EGL.functional.buffer_age.no_preserve.resize_before_swap.odd_none_even_none +dEQP-EGL.functional.buffer_age.no_preserve.resize_before_swap.odd_clear_even_none +dEQP-EGL.functional.buffer_age.no_preserve.resize_before_swap.odd_render_even_none +dEQP-EGL.functional.buffer_age.no_preserve.resize_before_swap.odd_clear_clear_even_none +dEQP-EGL.functional.buffer_age.no_preserve.resize_before_swap.odd_render_render_even_none +dEQP-EGL.functional.buffer_age.no_preserve.resize_before_swap.odd_clear_render_even_none +dEQP-EGL.functional.buffer_age.no_preserve.resize_before_swap.odd_render_clear_even_none +dEQP-EGL.functional.buffer_age.no_preserve.resize_before_swap.odd_clear_even_clear +dEQP-EGL.functional.buffer_age.no_preserve.resize_before_swap.odd_render_even_clear +dEQP-EGL.functional.buffer_age.no_preserve.resize_before_swap.odd_clear_clear_even_clear +dEQP-EGL.functional.buffer_age.no_preserve.resize_before_swap.odd_render_render_even_clear +dEQP-EGL.functional.buffer_age.no_preserve.resize_before_swap.odd_clear_render_even_clear +dEQP-EGL.functional.buffer_age.no_preserve.resize_before_swap.odd_render_clear_even_clear +dEQP-EGL.functional.buffer_age.no_preserve.resize_before_swap.odd_render_even_render +dEQP-EGL.functional.buffer_age.no_preserve.resize_before_swap.odd_clear_clear_even_render +dEQP-EGL.functional.buffer_age.no_preserve.resize_before_swap.odd_render_render_even_render +dEQP-EGL.functional.buffer_age.no_preserve.resize_before_swap.odd_clear_render_even_render +dEQP-EGL.functional.buffer_age.no_preserve.resize_before_swap.odd_render_clear_even_render +dEQP-EGL.functional.buffer_age.no_preserve.resize_before_swap.odd_clear_clear_even_clear_clear +dEQP-EGL.functional.buffer_age.no_preserve.resize_before_swap.odd_render_render_even_clear_clear +dEQP-EGL.functional.buffer_age.no_preserve.resize_before_swap.odd_clear_render_even_clear_clear +dEQP-EGL.functional.buffer_age.no_preserve.resize_before_swap.odd_render_clear_even_clear_clear +dEQP-EGL.functional.buffer_age.no_preserve.resize_before_swap.odd_render_render_even_render_render +dEQP-EGL.functional.buffer_age.no_preserve.resize_before_swap.odd_clear_render_even_render_render +dEQP-EGL.functional.buffer_age.no_preserve.resize_before_swap.odd_render_clear_even_render_render +dEQP-EGL.functional.buffer_age.no_preserve.resize_before_swap.odd_clear_render_even_clear_render +dEQP-EGL.functional.buffer_age.no_preserve.resize_before_swap.odd_render_clear_even_clear_render +dEQP-EGL.functional.buffer_age.no_preserve.resize_before_swap.odd_render_clear_even_render_clear +dEQP-EGL.functional.buffer_age.no_preserve.resize_after_swap.odd_none_even_none +dEQP-EGL.functional.buffer_age.no_preserve.resize_after_swap.odd_clear_even_none +dEQP-EGL.functional.buffer_age.no_preserve.resize_after_swap.odd_render_even_none +dEQP-EGL.functional.buffer_age.no_preserve.resize_after_swap.odd_clear_clear_even_none +dEQP-EGL.functional.buffer_age.no_preserve.resize_after_swap.odd_render_render_even_none +dEQP-EGL.functional.buffer_age.no_preserve.resize_after_swap.odd_clear_render_even_none +dEQP-EGL.functional.buffer_age.no_preserve.resize_after_swap.odd_render_clear_even_none +dEQP-EGL.functional.buffer_age.no_preserve.resize_after_swap.odd_clear_even_clear +dEQP-EGL.functional.buffer_age.no_preserve.resize_after_swap.odd_render_even_clear +dEQP-EGL.functional.buffer_age.no_preserve.resize_after_swap.odd_clear_clear_even_clear +dEQP-EGL.functional.buffer_age.no_preserve.resize_after_swap.odd_render_render_even_clear +dEQP-EGL.functional.buffer_age.no_preserve.resize_after_swap.odd_clear_render_even_clear +dEQP-EGL.functional.buffer_age.no_preserve.resize_after_swap.odd_render_clear_even_clear +dEQP-EGL.functional.buffer_age.no_preserve.resize_after_swap.odd_render_even_render +dEQP-EGL.functional.buffer_age.no_preserve.resize_after_swap.odd_clear_clear_even_render +dEQP-EGL.functional.buffer_age.no_preserve.resize_after_swap.odd_render_render_even_render +dEQP-EGL.functional.buffer_age.no_preserve.resize_after_swap.odd_clear_render_even_render +dEQP-EGL.functional.buffer_age.no_preserve.resize_after_swap.odd_render_clear_even_render +dEQP-EGL.functional.buffer_age.no_preserve.resize_after_swap.odd_clear_clear_even_clear_clear +dEQP-EGL.functional.buffer_age.no_preserve.resize_after_swap.odd_render_render_even_clear_clear +dEQP-EGL.functional.buffer_age.no_preserve.resize_after_swap.odd_clear_render_even_clear_clear +dEQP-EGL.functional.buffer_age.no_preserve.resize_after_swap.odd_render_clear_even_clear_clear +dEQP-EGL.functional.buffer_age.no_preserve.resize_after_swap.odd_render_render_even_render_render +dEQP-EGL.functional.buffer_age.no_preserve.resize_after_swap.odd_clear_render_even_render_render +dEQP-EGL.functional.buffer_age.no_preserve.resize_after_swap.odd_render_clear_even_render_render +dEQP-EGL.functional.buffer_age.no_preserve.resize_after_swap.odd_clear_render_even_clear_render +dEQP-EGL.functional.buffer_age.no_preserve.resize_after_swap.odd_render_clear_even_clear_render +dEQP-EGL.functional.buffer_age.no_preserve.resize_after_swap.odd_render_clear_even_render_clear dEQP-EGL.functional.partial_update.odd_clear_even_none dEQP-EGL.functional.partial_update.odd_render_even_none dEQP-EGL.functional.partial_update.odd_clear_clear_even_none diff --git a/modules/egl/teglBufferAgeTests.cpp b/modules/egl/teglBufferAgeTests.cpp index 727815a84..523e8d8e2 100644 --- a/modules/egl/teglBufferAgeTests.cpp +++ b/modules/egl/teglBufferAgeTests.cpp @@ -79,8 +79,23 @@ public: DRAWTYPE_GLES2_RENDER }; - BufferAgeTest (EglTestContext& eglTestCtx, bool preserveColorBuffer, const vector& oddFrameDrawType, - const vector& evenFrameDrawType, const char* name, const char* description); + enum ResizeType + { + RESIZETYPE_NONE = 0, + RESIZETYPE_BEFORE_SWAP, + RESIZETYPE_AFTER_SWAP, + + RESIZETYPE_LAST + }; + + BufferAgeTest (EglTestContext& eglTestCtx, + bool preserveColorBuffer, + const vector& oddFrameDrawType, + const vector& evenFrameDrawType, + ResizeType resizeType, + const char* name, + const char* description); + ~BufferAgeTest (void); void init (void); @@ -95,6 +110,7 @@ private: const bool m_preserveColorBuffer; const vector m_oddFrameDrawType; const vector m_evenFrameDrawType; + const ResizeType m_resizeType; EGLDisplay m_eglDisplay; eglu::NativeWindow* m_window; @@ -112,7 +128,7 @@ struct ColoredRect { public: ColoredRect (const IVec2& bottomLeft_, const IVec2& topRight_, const Color& color_); - IVec2 bottomLeft; + IVec2 bottomLeft; IVec2 topRight; Color color; }; @@ -311,11 +327,11 @@ void GLES2Renderer::render (int width, int height, const Frame& frame) const class ReferenceRenderer { public: - ReferenceRenderer (void); - void render (tcu::Surface* target, const Frame& frame) const; + ReferenceRenderer (void); + void render (tcu::Surface* target, const Frame& frame) const; private: ReferenceRenderer (const ReferenceRenderer&); - ReferenceRenderer& operator= (const ReferenceRenderer&); + ReferenceRenderer& operator= (const ReferenceRenderer&); }; ReferenceRenderer::ReferenceRenderer(void) @@ -338,13 +354,19 @@ void ReferenceRenderer::render (tcu::Surface* target, const Frame& frame) const } } -BufferAgeTest::BufferAgeTest (EglTestContext& eglTestCtx, bool preserveColorBuffer, const vector& oddFrameDrawType, const vector& evenFrameDrawType, - const char* name, const char* description) +BufferAgeTest::BufferAgeTest (EglTestContext& eglTestCtx, + bool preserveColorBuffer, + const vector& oddFrameDrawType, + const vector& evenFrameDrawType, + ResizeType resizeType, + const char* name, + const char* description) : TestCase (eglTestCtx, name, description) , m_seed (deStringHash(name)) , m_preserveColorBuffer (preserveColorBuffer) , m_oddFrameDrawType (oddFrameDrawType) , m_evenFrameDrawType (evenFrameDrawType) + , m_resizeType (resizeType) , m_eglDisplay (EGL_NO_DISPLAY) , m_window (DE_NULL) , m_eglSurface (EGL_NO_SURFACE) @@ -520,7 +542,25 @@ TestCase::IterateResult BufferAgeTest::iterate (void) clearColorScreen(m_gl, clearColor); m_gles2Renderer->render(width, height, newFrame); + + if (m_resizeType == RESIZETYPE_BEFORE_SWAP) + { + if (frameNdx % 2 == 0) + m_window->setSurfaceSize(IVec2(width*2, height/2)); + else + m_window->setSurfaceSize(IVec2(height/2, width*2)); + } + EGLU_CHECK_CALL(egl, swapBuffers(m_eglDisplay, m_eglSurface)); + + if (m_resizeType == RESIZETYPE_AFTER_SWAP) + { + if (frameNdx % 2 == 0) + m_window->setSurfaceSize(IVec2(width*2, height/2)); + else + m_window->setSurfaceSize(IVec2(height/2, width*2)); + } + continue; } @@ -557,7 +597,23 @@ TestCase::IterateResult BufferAgeTest::iterate (void) return STOP; } + if (m_resizeType == RESIZETYPE_BEFORE_SWAP) + { + if (frameNdx % 2 == 0) + m_window->setSurfaceSize(IVec2(width*2, height/2)); + else + m_window->setSurfaceSize(IVec2(height/2, width*2)); + } + EGLU_CHECK_CALL(egl, swapBuffers(m_eglDisplay, m_eglSurface)); + + if (m_resizeType == RESIZETYPE_AFTER_SWAP) + { + if (frameNdx % 2 == 0) + m_window->setSurfaceSize(IVec2(width*2, height/2)); + else + m_window->setSurfaceSize(IVec2(height/2, width*2)); + } } m_testCtx.setTestResult(QP_TEST_RESULT_PASS, "Pass"); @@ -587,6 +643,25 @@ string generateTestName (const vector& oddFrameDrawType return "odd" + generateDrawTypeName(oddFrameDrawType) + "_even" + generateDrawTypeName(evenFrameDrawType); } +string generateResizeGroupName (BufferAgeTest::ResizeType resizeType) +{ + switch (resizeType) + { + case BufferAgeTest::RESIZETYPE_NONE: + return "no_resize"; + + case BufferAgeTest::RESIZETYPE_AFTER_SWAP: + return "resize_after_swap"; + + case BufferAgeTest::RESIZETYPE_BEFORE_SWAP: + return "resize_before_swap"; + + default: + DE_FATAL("Unknown resize type"); + return ""; + } +} + bool isWindow (const eglu::CandidateConfig& c) { return (c.surfaceType() & EGL_WINDOW_BIT) == EGL_WINDOW_BIT; @@ -649,18 +724,25 @@ BufferAgeTests::BufferAgeTests (EglTestContext& eglTestCtx) void BufferAgeTests::init (void) { - const BufferAgeTest::DrawType clearRender[2] = + const BufferAgeTest::DrawType clearRender[] = { BufferAgeTest::DRAWTYPE_GLES2_CLEAR, BufferAgeTest::DRAWTYPE_GLES2_RENDER }; - const BufferAgeTest::DrawType renderClear[2] = + const BufferAgeTest::DrawType renderClear[] = { BufferAgeTest::DRAWTYPE_GLES2_RENDER, BufferAgeTest::DRAWTYPE_GLES2_CLEAR }; + const BufferAgeTest::ResizeType resizeTypes[] = + { + BufferAgeTest::RESIZETYPE_NONE, + BufferAgeTest::RESIZETYPE_BEFORE_SWAP, + BufferAgeTest::RESIZETYPE_AFTER_SWAP + }; + vector< vector > frameDrawTypes; frameDrawTypes.push_back(vector ()); frameDrawTypes.push_back(vector (1, BufferAgeTest::DRAWTYPE_GLES2_CLEAR)); @@ -672,19 +754,27 @@ void BufferAgeTests::init (void) for (int preserveNdx = 0; preserveNdx < 2; preserveNdx++) { - const bool preserve = (preserveNdx == 0); - TestCaseGroup* const preserveGroup = new TestCaseGroup(m_eglTestCtx, (preserve ? "preserve" : "no_preserve"), ""); + const bool preserve = (preserveNdx == 0); + TestCaseGroup* const preserveGroup = new TestCaseGroup(m_eglTestCtx, (preserve ? "preserve" : "no_preserve"), ""); - for (size_t evenNdx = 0; evenNdx < frameDrawTypes.size(); evenNdx++) + for (size_t resizeTypeNdx = 0; resizeTypeNdx < DE_LENGTH_OF_ARRAY(resizeTypes); resizeTypeNdx++) { - const vector& evenFrameDrawType = frameDrawTypes[evenNdx]; + const BufferAgeTest::ResizeType resizeType = resizeTypes[resizeTypeNdx]; + TestCaseGroup* const resizeGroup = new TestCaseGroup(m_eglTestCtx, generateResizeGroupName(resizeType).c_str(), ""); - for (size_t oddNdx = evenNdx; oddNdx < frameDrawTypes.size(); oddNdx++) + for (size_t evenNdx = 0; evenNdx < frameDrawTypes.size(); evenNdx++) { - const vector& oddFrameDrawType = frameDrawTypes[oddNdx]; - const std::string name = generateTestName(oddFrameDrawType, evenFrameDrawType); - preserveGroup->addChild(new BufferAgeTest(m_eglTestCtx, preserve, oddFrameDrawType, evenFrameDrawType, name.c_str(), "")); + const vector& evenFrameDrawType = frameDrawTypes[evenNdx]; + + for (size_t oddNdx = evenNdx; oddNdx < frameDrawTypes.size(); oddNdx++) + { + const vector& oddFrameDrawType = frameDrawTypes[oddNdx]; + const std::string name = generateTestName(oddFrameDrawType, evenFrameDrawType); + resizeGroup->addChild(new BufferAgeTest(m_eglTestCtx, preserve, oddFrameDrawType, evenFrameDrawType, BufferAgeTest::RESIZETYPE_NONE, name.c_str(), "")); + } } + + preserveGroup->addChild(resizeGroup); } addChild(preserveGroup); } -- 2.34.1