diff options
Diffstat (limited to 'gfx/angle/src/tests/test_utils/angle_test_configs.cpp')
-rwxr-xr-x | gfx/angle/src/tests/test_utils/angle_test_configs.cpp | 598 |
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 |