Merge "Amend VR CTS for some GL and EGL extensions." into pie-cts-dev
diff --git a/tests/tests/opengl/src/android/opengl/cts/OpenGlEsVersionTest.java b/tests/tests/opengl/src/android/opengl/cts/OpenGlEsVersionTest.java
index b8f334d..c599d65 100644
--- a/tests/tests/opengl/src/android/opengl/cts/OpenGlEsVersionTest.java
+++ b/tests/tests/opengl/src/android/opengl/cts/OpenGlEsVersionTest.java
@@ -26,6 +26,7 @@
import android.content.pm.ConfigurationInfo;
import android.content.pm.FeatureInfo;
import android.content.pm.PackageManager;
+import android.content.res.Configuration;
import android.support.test.filters.LargeTest;
import android.support.test.rule.ActivityTestRule;
import android.support.test.runner.AndroidJUnit4;
@@ -171,21 +172,32 @@
if (!supportsVrHighPerformance())
return;
restartActivityWithClientVersion(3);
+ final boolean isVrHeadset = (mActivity.getResources().getConfiguration().uiMode
+ & Configuration.UI_MODE_TYPE_MASK) == Configuration.UI_MODE_TYPE_VR_HEADSET;
String extensions = mActivity.getExtensionsString();
final String requiredList[] = {
- "GL_EXT_EGL_image_array",
- "GL_EXT_external_buffer",
- "GL_EXT_multisampled_render_to_texture2",
+ "GL_EXT_multisampled_render_to_texture",
"GL_EXT_protected_textures",
"GL_OVR_multiview",
"GL_OVR_multiview2",
"GL_OVR_multiview_multisampled_render_to_texture",
};
+ final String vrHeadsetRequiredList[] = {
+ "GL_EXT_EGL_image_array",
+ "GL_EXT_external_buffer",
+ "GL_EXT_multisampled_render_to_texture2",
+ };
- for (int i = 0; i < requiredList.length; ++i) {
- assertTrue("Required extension for VR high-performance is missing: " + requiredList[i],
- hasExtension(extensions, requiredList[i]));
+ for (String requiredExtension : requiredList) {
+ assertTrue("Required extension for VR high-performance is missing: " + requiredExtension,
+ hasExtension(extensions, requiredExtension));
+ }
+ if (isVrHeadset) {
+ for (String requiredExtension : vrHeadsetRequiredList) {
+ assertTrue("Required extension for VR high-performance is missing: " + requiredExtension,
+ hasExtension(extensions, requiredExtension));
+ }
}
EGL10 egl = (EGL10) EGLContext.getEGL();
@@ -194,17 +206,25 @@
final String requiredEglList[] = {
"EGL_ANDROID_front_buffer_auto_refresh",
"EGL_ANDROID_get_native_client_buffer",
- "EGL_EXT_image_gl_colorspace",
"EGL_EXT_protected_content",
"EGL_IMG_context_priority",
"EGL_KHR_fence_sync",
"EGL_KHR_mutable_render_buffer",
"EGL_KHR_wait_sync",
};
+ final String vrHeadsetRequiredEglList[] = {
+ "EGL_EXT_image_gl_colorspace",
+ };
- for (int i = 0; i < requiredEglList.length; ++i) {
- assertTrue("Required EGL extension for VR high-performance is missing: " +
- requiredEglList[i], hasExtension(extensions, requiredEglList[i]));
+ for (String requiredExtension : requiredEglList) {
+ assertTrue("Required EGL extension for VR high-performance is missing: " + requiredExtension,
+ hasExtension(extensions, requiredExtension));
+ }
+ if (isVrHeadset) {
+ for (String requiredExtension : vrHeadsetRequiredEglList) {
+ assertTrue("Required EGL extension for VR high-performance is missing: " + requiredExtension,
+ hasExtension(extensions, requiredExtension));
+ }
}
}
@CddTest(requirement="7.1.4.1/C-6-1")
diff --git a/tests/vr/jni/VrExtensionsJni.cpp b/tests/vr/jni/VrExtensionsJni.cpp
index 75031ce..a5d9db3 100644
--- a/tests/vr/jni/VrExtensionsJni.cpp
+++ b/tests/vr/jni/VrExtensionsJni.cpp
@@ -265,7 +265,8 @@
JNIEnv* env, jclass /* unused */) {
// First, check for EXT_external_buffer in the extension string.
auto exts = reinterpret_cast<const char*>(glGetString(GL_EXTENSIONS));
- ASSERT_TRUE(exts && strstr(exts, "GL_EXT_external_buffer"));
+ ASSERT_TRUE(exts);
+ if (strstr(exts, "GL_EXT_external_buffer") == nullptr) return;
// Next, load entry points provided by extensions.
LOAD_PROC(eglGetNativeClientBufferANDROID, PFNEGLGETNATIVECLIENTBUFFERANDROID);
ASSERT_NE(eglGetNativeClientBufferANDROID, nullptr);