mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-09-08 04:08:32 +09:00
105 lines
3.3 KiB
Diff
105 lines
3.3 KiB
Diff
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
index 1a38c21..b0b6ce2 100644
|
|
--- a/CMakeLists.txt
|
|
+++ b/CMakeLists.txt
|
|
@@ -22,7 +22,7 @@ INCLUDE (FindPkgConfig)
|
|
|
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
|
|
-if(${CMAKE_SYSTEM_NAME} MATCHES "Linux|FreeBSD")
|
|
+if(${CMAKE_SYSTEM_NAME} MATCHES "Linux|FreeBSD|Android")
|
|
set(DEFAULT_EGL ON)
|
|
set(DEFAULT_GLX ON)
|
|
set(DEFAULT_WGL OFF)
|
|
@@ -499,13 +499,18 @@ if(GBM_FOUND)
|
|
endif(HAVE_LIBCACA)
|
|
endif(GBM_FOUND)
|
|
|
|
-if(PIGLIT_BUILD_EGL_TESTS)
|
|
- pkg_check_modules(EGL REQUIRED egl)
|
|
+# EGL *support* (PIGLIT_HAS_EGL, e.g. the surfaceless_egl waffle platform) is
|
|
+# independent of building the EGL test binaries, which additionally need X11.
|
|
+pkg_check_modules(EGL egl)
|
|
+if(EGL_FOUND)
|
|
set(PIGLIT_HAS_EGL True)
|
|
add_definitions(-DPIGLIT_HAS_EGL)
|
|
include_directories(${EGL_INCLUDE_DIRS})
|
|
add_definitions (${EGL_CFLAGS_OTHER})
|
|
endif()
|
|
+if(PIGLIT_BUILD_EGL_TESTS AND NOT EGL_FOUND)
|
|
+ message(FATAL_ERROR "PIGLIT_BUILD_EGL_TESTS requires EGL")
|
|
+endif()
|
|
|
|
# Put all executables into the bin subdirectory
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${piglit_BINARY_DIR}/bin)
|
|
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
|
|
index e3c964a..36e2109 100644
|
|
--- a/tests/CMakeLists.txt
|
|
+++ b/tests/CMakeLists.txt
|
|
@@ -35,9 +35,9 @@ add_subdirectory (llvmpipe)
|
|
add_subdirectory (perf)
|
|
add_subdirectory (wgl)
|
|
|
|
-IF(EGL_FOUND)
|
|
+IF(PIGLIT_BUILD_EGL_TESTS)
|
|
add_subdirectory (egl)
|
|
-ENDIF(EGL_FOUND)
|
|
+ENDIF(PIGLIT_BUILD_EGL_TESTS)
|
|
|
|
IF(PIGLIT_BUILD_CL_TESTS)
|
|
add_subdirectory (cl)
|
|
diff --git a/tests/util/piglit-dispatch-init.c b/tests/util/piglit-dispatch-init.c
|
|
index 3d9772d..e036eac 100644
|
|
--- a/tests/util/piglit-dispatch-init.c
|
|
+++ b/tests/util/piglit-dispatch-init.c
|
|
@@ -322,14 +322,19 @@ piglit_dispatch_default_init(piglit_dispatch_api api)
|
|
break;
|
|
}
|
|
|
|
- if (gl_fw) {
|
|
- piglit_dispatch_init(api,
|
|
- get_wfl_core_proc,
|
|
- get_wfl_ext_proc,
|
|
- default_unsupported,
|
|
- default_get_proc_address_failure);
|
|
- } else
|
|
-#endif
|
|
+ /* MobileGL piglit harness: always use the waffle resolvers in waffle
|
|
+ * builds. This function runs while the waffle framework is still being
|
|
+ * constructed, so gl_fw is NULL here and the gl_fw branch never fired;
|
|
+ * the fallback resolvers bind GL functions via the SYSTEM libEGL's
|
|
+ * eglGetProcAddress (a DT_NEEDED symbol), which on Android is the raw
|
|
+ * GLES driver rather than the waffle-selected EGL implementation.
|
|
+ */
|
|
+ piglit_dispatch_init(api,
|
|
+ get_wfl_core_proc,
|
|
+ get_wfl_ext_proc,
|
|
+ default_unsupported,
|
|
+ default_get_proc_address_failure);
|
|
+#else
|
|
{
|
|
|
|
piglit_dispatch_init(api,
|
|
@@ -338,6 +343,7 @@ piglit_dispatch_default_init(piglit_dispatch_api api)
|
|
default_unsupported,
|
|
default_get_proc_address_failure);
|
|
}
|
|
+#endif
|
|
|
|
already_initialized = true;
|
|
}
|
|
diff --git a/tests/util/piglit-util-gl.c b/tests/util/piglit-util-gl.c
|
|
index 16eb425..7f2796c 100644
|
|
--- a/tests/util/piglit-util-gl.c
|
|
+++ b/tests/util/piglit-util-gl.c
|
|
@@ -47,6 +47,9 @@ bool piglit_is_core_profile;
|
|
bool piglit_is_gles(void)
|
|
{
|
|
const char *version_string = (const char *) glGetString(GL_VERSION);
|
|
+ if (getenv("PIGLIT_DEBUG_VERSION_STRING"))
|
|
+ printf("piglit: debug: GL_VERSION = \"%s\"\n",
|
|
+ version_string ? version_string : "(null)");
|
|
return strncmp("OpenGL ES", version_string, 9) == 0;
|
|
}
|
|
|