summaryrefslogtreecommitdiffstats
path: root/gfx/angle/src/tests/test_utils/angle_test_configs.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'gfx/angle/src/tests/test_utils/angle_test_configs.cpp')
-rwxr-xr-xgfx/angle/src/tests/test_utils/angle_test_configs.cpp598
1 files changed, 598 insertions, 0 deletions
diff --git a/gfx/angle/src/tests/test_utils/angle_test_configs.cpp b/gfx/angle/src/tests/test_utils/angle_test_configs.cpp
new file mode 100755
index 000000000..76690ca7b
--- /dev/null
+++ b/gfx/angle/src/tests/test_utils/angle_test_configs.cpp
@@ -0,0 +1,598 @@
+//
+// Copyright (c) 2014 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+
+#include "test_utils/angle_test_configs.h"
+
+namespace angle
+{
+
+PlatformParameters::PlatformParameters()
+ : PlatformParameters(2, 0, EGLPlatformParameters())
+{
+}
+
+PlatformParameters::PlatformParameters(EGLint majorVersion, EGLint minorVersion,
+ const EGLPlatformParameters &eglPlatformParameters)
+ : majorVersion(majorVersion),
+ minorVersion(minorVersion),
+ eglParameters(eglPlatformParameters)
+{
+}
+
+EGLint PlatformParameters::getRenderer() const
+{
+ return eglParameters.renderer;
+}
+
+bool operator<(const PlatformParameters &a, const PlatformParameters &b)
+{
+ if (a.majorVersion != b.majorVersion)
+ {
+ return a.majorVersion < b.majorVersion;
+ }
+
+ if (a.minorVersion != b.minorVersion)
+ {
+ return a.minorVersion < b.minorVersion;
+ }
+
+ return a.eglParameters < b.eglParameters;
+}
+
+bool operator==(const PlatformParameters &a, const PlatformParameters &b)
+{
+ return (a.majorVersion == b.majorVersion) &&
+ (a.minorVersion == b.minorVersion) &&
+ (a.eglParameters == b.eglParameters);
+}
+
+std::ostream &operator<<(std::ostream& stream, const PlatformParameters &pp)
+{
+ stream << "ES" << pp.majorVersion << "_" ;
+ if (pp.minorVersion != 0)
+ {
+ stream << pp.minorVersion << "_";
+ }
+
+ switch (pp.eglParameters.renderer)
+ {
+ case EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE:
+ stream << "D3D9";
+ break;
+ case EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE:
+ stream << "D3D11";
+ break;
+ case EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE:
+ stream << "OPENGL";
+ break;
+ case EGL_PLATFORM_ANGLE_TYPE_OPENGLES_ANGLE:
+ stream << "OPENGLES";
+ break;
+ case EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE:
+ stream << "DEFAULT";
+ break;
+ default:
+ UNREACHABLE();
+ break;
+ }
+
+ if (pp.eglParameters.majorVersion != EGL_DONT_CARE)
+ {
+ stream << "_" << pp.eglParameters.majorVersion;
+ }
+
+ if (pp.eglParameters.minorVersion != EGL_DONT_CARE)
+ {
+ stream << "_" << pp.eglParameters.minorVersion;
+ }
+
+ switch (pp.eglParameters.deviceType)
+ {
+ case EGL_DONT_CARE:
+ case EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE:
+ // default
+ break;
+
+ case EGL_PLATFORM_ANGLE_DEVICE_TYPE_NULL_ANGLE:
+ stream << "_NULL";
+ break;
+
+ case EGL_PLATFORM_ANGLE_DEVICE_TYPE_REFERENCE_ANGLE:
+ stream << "_REFERENCE";
+ break;
+
+ case EGL_PLATFORM_ANGLE_DEVICE_TYPE_WARP_ANGLE:
+ stream << "_WARP";
+ break;
+
+ default:
+ UNREACHABLE();
+ break;
+ }
+
+ switch (pp.eglParameters.presentPath)
+ {
+ case EGL_EXPERIMENTAL_PRESENT_PATH_COPY_ANGLE:
+ stream << "_PRESENT_PATH_COPY";
+ break;
+
+ case EGL_EXPERIMENTAL_PRESENT_PATH_FAST_ANGLE:
+ stream << "_PRESENT_PATH_FAST";
+ break;
+
+ case EGL_DONT_CARE:
+ // default
+ break;
+
+ default:
+ UNREACHABLE();
+ break;
+ }
+
+ return stream;
+}
+
+// EGL platforms
+namespace egl_platform
+{
+
+EGLPlatformParameters DEFAULT()
+{
+ return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE);
+}
+
+EGLPlatformParameters DEFAULT_NULL()
+{
+ return EGLPlatformParameters(
+ EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE,
+ EGL_DONT_CARE, EGL_DONT_CARE,
+ EGL_PLATFORM_ANGLE_DEVICE_TYPE_NULL_ANGLE);
+}
+
+EGLPlatformParameters D3D9()
+{
+ return EGLPlatformParameters(
+ EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE,
+ EGL_DONT_CARE, EGL_DONT_CARE,
+ EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE);
+}
+
+EGLPlatformParameters D3D9_NULL()
+{
+ return EGLPlatformParameters(
+ EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE,
+ EGL_DONT_CARE, EGL_DONT_CARE,
+ EGL_PLATFORM_ANGLE_DEVICE_TYPE_NULL_ANGLE);
+}
+
+EGLPlatformParameters D3D9_REFERENCE()
+{
+ return EGLPlatformParameters(
+ EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE,
+ EGL_DONT_CARE, EGL_DONT_CARE,
+ EGL_PLATFORM_ANGLE_DEVICE_TYPE_REFERENCE_ANGLE);
+}
+
+EGLPlatformParameters D3D11()
+{
+ return EGLPlatformParameters(
+ EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE,
+ EGL_DONT_CARE, EGL_DONT_CARE,
+ EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE);
+}
+
+EGLPlatformParameters D3D11(EGLenum presentPath)
+{
+ return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE, EGL_DONT_CARE, EGL_DONT_CARE,
+ EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE, presentPath);
+}
+
+EGLPlatformParameters D3D11_FL11_1()
+{
+ return EGLPlatformParameters(
+ EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE,
+ 11, 1,
+ EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE);
+}
+
+EGLPlatformParameters D3D11_FL11_0()
+{
+ return EGLPlatformParameters(
+ EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE,
+ 11, 0,
+ EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE);
+}
+
+EGLPlatformParameters D3D11_FL10_1()
+{
+ return EGLPlatformParameters(
+ EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE,
+ 10, 1,
+ EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE);
+}
+
+EGLPlatformParameters D3D11_FL10_0()
+{
+ return EGLPlatformParameters(
+ EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE,
+ 10, 0,
+ EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE);
+}
+
+EGLPlatformParameters D3D11_FL9_3()
+{
+ return EGLPlatformParameters(
+ EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE,
+ 9, 3,
+ EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE);
+}
+
+EGLPlatformParameters D3D11_NULL()
+{
+ return EGLPlatformParameters(
+ EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE,
+ EGL_DONT_CARE, EGL_DONT_CARE,
+ EGL_PLATFORM_ANGLE_DEVICE_TYPE_NULL_ANGLE);
+}
+
+EGLPlatformParameters D3D11_WARP()
+{
+ return EGLPlatformParameters(
+ EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE,
+ EGL_DONT_CARE, EGL_DONT_CARE,
+ EGL_PLATFORM_ANGLE_DEVICE_TYPE_WARP_ANGLE);
+}
+
+EGLPlatformParameters D3D11_FL11_1_WARP()
+{
+ return EGLPlatformParameters(
+ EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE,
+ 11, 1,
+ EGL_PLATFORM_ANGLE_DEVICE_TYPE_WARP_ANGLE);
+}
+
+EGLPlatformParameters D3D11_FL11_0_WARP()
+{
+ return EGLPlatformParameters(
+ EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE,
+ 11, 0,
+ EGL_PLATFORM_ANGLE_DEVICE_TYPE_WARP_ANGLE);
+}
+
+EGLPlatformParameters D3D11_FL10_1_WARP()
+{
+ return EGLPlatformParameters(
+ EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE,
+ 10, 1,
+ EGL_PLATFORM_ANGLE_DEVICE_TYPE_WARP_ANGLE);
+}
+
+EGLPlatformParameters D3D11_FL10_0_WARP()
+{
+ return EGLPlatformParameters(
+ EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE,
+ 10, 0,
+ EGL_PLATFORM_ANGLE_DEVICE_TYPE_WARP_ANGLE);
+}
+
+EGLPlatformParameters D3D11_FL9_3_WARP()
+{
+ return EGLPlatformParameters(
+ EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE,
+ 9, 3,
+ EGL_PLATFORM_ANGLE_DEVICE_TYPE_WARP_ANGLE);
+}
+
+EGLPlatformParameters D3D11_REFERENCE()
+{
+ return EGLPlatformParameters(
+ EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE,
+ EGL_DONT_CARE, EGL_DONT_CARE,
+ EGL_PLATFORM_ANGLE_DEVICE_TYPE_REFERENCE_ANGLE);
+}
+
+EGLPlatformParameters D3D11_FL11_1_REFERENCE()
+{
+ return EGLPlatformParameters(
+ EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE,
+ 11, 1,
+ EGL_PLATFORM_ANGLE_DEVICE_TYPE_REFERENCE_ANGLE);
+}
+
+EGLPlatformParameters D3D11_FL11_0_REFERENCE()
+{
+ return EGLPlatformParameters(
+ EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE,
+ 11, 0,
+ EGL_PLATFORM_ANGLE_DEVICE_TYPE_REFERENCE_ANGLE);
+}
+
+EGLPlatformParameters D3D11_FL10_1_REFERENCE()
+{
+ return EGLPlatformParameters(
+ EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE,
+ 10, 1,
+ EGL_PLATFORM_ANGLE_DEVICE_TYPE_REFERENCE_ANGLE);
+}
+
+EGLPlatformParameters D3D11_FL10_0_REFERENCE()
+{
+ return EGLPlatformParameters(
+ EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE,
+ 10, 0,
+ EGL_PLATFORM_ANGLE_DEVICE_TYPE_REFERENCE_ANGLE);
+}
+
+EGLPlatformParameters D3D11_FL9_3_REFERENCE()
+{
+ return EGLPlatformParameters(
+ EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE,
+ 9, 3,
+ EGL_PLATFORM_ANGLE_DEVICE_TYPE_REFERENCE_ANGLE);
+}
+
+EGLPlatformParameters OPENGL()
+{
+ return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE);
+}
+
+
+EGLPlatformParameters OPENGL(EGLint major, EGLint minor)
+{
+ return EGLPlatformParameters(
+ EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE,
+ major, minor,
+ EGL_DONT_CARE);
+}
+
+EGLPlatformParameters OPENGL_NULL()
+{
+ return EGLPlatformParameters(
+ EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE,
+ 0, 0,
+ EGL_PLATFORM_ANGLE_DEVICE_TYPE_NULL_ANGLE);
+}
+
+EGLPlatformParameters OPENGLES()
+{
+ return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_OPENGLES_ANGLE);
+}
+
+EGLPlatformParameters OPENGLES(EGLint major, EGLint minor)
+{
+ return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_OPENGLES_ANGLE, major, minor,
+ EGL_DONT_CARE);
+}
+
+} // namespace egl_platform
+
+// ANGLE tests platforms
+PlatformParameters ES2_D3D9()
+{
+ return PlatformParameters(2, 0, egl_platform::D3D9());
+}
+
+PlatformParameters ES2_D3D9_REFERENCE()
+{
+ return PlatformParameters(2, 0, egl_platform::D3D9_REFERENCE());
+}
+
+PlatformParameters ES2_D3D11()
+{
+ return PlatformParameters(2, 0, egl_platform::D3D11());
+}
+
+PlatformParameters ES2_D3D11(EGLenum presentPath)
+{
+ return PlatformParameters(2, 0, egl_platform::D3D11(presentPath));
+}
+
+PlatformParameters ES2_D3D11_FL11_0()
+{
+ return PlatformParameters(2, 0, egl_platform::D3D11_FL11_0());
+}
+
+PlatformParameters ES2_D3D11_FL10_1()
+{
+ return PlatformParameters(2, 0, egl_platform::D3D11_FL10_1());
+}
+
+PlatformParameters ES2_D3D11_FL10_0()
+{
+ return PlatformParameters(2, 0, egl_platform::D3D11_FL10_0());
+}
+
+PlatformParameters ES2_D3D11_FL9_3()
+{
+ return PlatformParameters(2, 0, egl_platform::D3D11_FL9_3());
+}
+
+PlatformParameters ES2_D3D11_WARP()
+{
+ return PlatformParameters(2, 0, egl_platform::D3D11_WARP());
+}
+
+PlatformParameters ES2_D3D11_FL11_0_WARP()
+{
+ return PlatformParameters(2, 0, egl_platform::D3D11_FL11_0_WARP());
+}
+
+PlatformParameters ES2_D3D11_FL10_1_WARP()
+{
+ return PlatformParameters(2, 0, egl_platform::D3D11_FL10_1_WARP());
+}
+
+PlatformParameters ES2_D3D11_FL10_0_WARP()
+{
+ return PlatformParameters(2, 0, egl_platform::D3D11_FL10_0_WARP());
+}
+
+PlatformParameters ES2_D3D11_FL9_3_WARP()
+{
+ return PlatformParameters(2, 0, egl_platform::D3D11_FL9_3_WARP());
+}
+
+PlatformParameters ES2_D3D11_REFERENCE()
+{
+ return PlatformParameters(2, 0, egl_platform::D3D11_REFERENCE());
+}
+
+PlatformParameters ES2_D3D11_FL11_0_REFERENCE()
+{
+ return PlatformParameters(2, 0, egl_platform::D3D11_FL11_0_REFERENCE());
+}
+
+PlatformParameters ES2_D3D11_FL10_1_REFERENCE()
+{
+ return PlatformParameters(2, 0, egl_platform::D3D11_FL10_1_REFERENCE());
+}
+
+PlatformParameters ES2_D3D11_FL10_0_REFERENCE()
+{
+ return PlatformParameters(2, 0, egl_platform::D3D11_FL10_0_REFERENCE());
+}
+
+PlatformParameters ES2_D3D11_FL9_3_REFERENCE()
+{
+ return PlatformParameters(2, 0, egl_platform::D3D11_FL9_3_REFERENCE());
+}
+
+PlatformParameters ES3_D3D11()
+{
+ return PlatformParameters(3, 0, egl_platform::D3D11());
+}
+
+PlatformParameters ES3_D3D11_FL11_1()
+{
+ return PlatformParameters(3, 0, egl_platform::D3D11_FL11_1());
+}
+
+PlatformParameters ES3_D3D11_FL11_0()
+{
+ return PlatformParameters(3, 0, egl_platform::D3D11_FL11_0());
+}
+
+PlatformParameters ES3_D3D11_FL10_1()
+{
+ return PlatformParameters(3, 0, egl_platform::D3D11_FL10_1());
+}
+
+PlatformParameters ES3_D3D11_FL10_0()
+{
+ return PlatformParameters(3, 0, egl_platform::D3D11_FL10_0());
+}
+
+PlatformParameters ES3_D3D11_WARP()
+{
+ return PlatformParameters(3, 0, egl_platform::D3D11_WARP());
+}
+
+PlatformParameters ES3_D3D11_FL11_1_WARP()
+{
+ return PlatformParameters(3, 0, egl_platform::D3D11_FL11_1_WARP());
+}
+
+PlatformParameters ES3_D3D11_FL11_0_WARP()
+{
+ return PlatformParameters(3, 0, egl_platform::D3D11_FL11_0_WARP());
+}
+
+PlatformParameters ES3_D3D11_FL10_1_WARP()
+{
+ return PlatformParameters(3, 0, egl_platform::D3D11_FL10_1_WARP());
+}
+
+PlatformParameters ES3_D3D11_FL10_0_WARP()
+{
+ return PlatformParameters(3, 0, egl_platform::D3D11_FL10_0_WARP());
+}
+
+PlatformParameters ES3_D3D11_REFERENCE()
+{
+ return PlatformParameters(3, 0, egl_platform::D3D11_REFERENCE());
+}
+
+PlatformParameters ES3_D3D11_FL11_1_REFERENCE()
+{
+ return PlatformParameters(3, 0, egl_platform::D3D11_FL11_1_REFERENCE());
+}
+
+PlatformParameters ES3_D3D11_FL11_0_REFERENCE()
+{
+ return PlatformParameters(3, 0, egl_platform::D3D11_FL11_0_REFERENCE());
+}
+
+PlatformParameters ES3_D3D11_FL10_1_REFERENCE()
+{
+ return PlatformParameters(3, 0, egl_platform::D3D11_FL10_1_REFERENCE());
+}
+
+PlatformParameters ES3_D3D11_FL10_0_REFERENCE()
+{
+ return PlatformParameters(3, 0, egl_platform::D3D11_FL10_0_REFERENCE());
+}
+
+PlatformParameters ES2_OPENGLES()
+{
+ return PlatformParameters(2, 0, egl_platform::OPENGLES());
+}
+
+PlatformParameters ES2_OPENGLES(EGLint major, EGLint minor)
+{
+ return PlatformParameters(2, 0, egl_platform::OPENGLES(major, minor));
+}
+
+PlatformParameters ES3_OPENGLES()
+{
+ return PlatformParameters(3, 0, egl_platform::OPENGLES());
+}
+
+PlatformParameters ES3_OPENGLES(EGLint major, EGLint minor)
+{
+ return PlatformParameters(3, 0, egl_platform::OPENGLES(major, minor));
+}
+
+PlatformParameters ES31_OPENGLES()
+{
+ return PlatformParameters(3, 1, egl_platform::OPENGLES());
+}
+
+PlatformParameters ES31_OPENGLES(EGLint major, EGLint minor)
+{
+ return PlatformParameters(3, 1, egl_platform::OPENGLES(major, minor));
+}
+
+PlatformParameters ES2_OPENGL()
+{
+ return PlatformParameters(2, 0, egl_platform::OPENGL());
+}
+
+PlatformParameters ES2_OPENGL(EGLint major, EGLint minor)
+{
+ return PlatformParameters(2, 0, egl_platform::OPENGL(major, minor));
+}
+
+PlatformParameters ES3_OPENGL()
+{
+ return PlatformParameters(3, 0, egl_platform::OPENGL());
+}
+
+PlatformParameters ES3_OPENGL(EGLint major, EGLint minor)
+{
+ return PlatformParameters(3, 0, egl_platform::OPENGL(major, minor));
+}
+
+PlatformParameters ES31_OPENGL()
+{
+ return PlatformParameters(3, 1, egl_platform::OPENGL());
+}
+
+PlatformParameters ES31_OPENGL(EGLint major, EGLint minor)
+{
+ return PlatformParameters(3, 1, egl_platform::OPENGL(major, minor));
+}
+
+} // namespace angle