Commit 6e4004dd by Jonah Ryan-Davis Committed by Commit Bot

Add metal display type to angle_deqp_tests

Adds --deqp-egl-display-type=angle-metal for running the deqp tests on Mac. Note: does not add any test suppressions for metal. Bug: angleproject:2634 Change-Id: I8f8d3a83cf93a5b930b05af9f0075a9ce435823a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1954612Reviewed-by: 's avatarJonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
parent 01553e0e
......@@ -46,8 +46,9 @@ To specify the exact platform for ANGLE + dEQP, use the arguments:
* `--deqp-egl-display-type=angle-d3d11-fl93` for D3D11 Feature level 9_3
* `--deqp-egl-display-type=angle-gl` for OpenGL Desktop (OSX, Linux and Windows)
* `--deqp-egl-display-type=angle-gles` for OpenGL ES (Android/ChromeOS, some Windows platforms)
* `--deqp-egl-display-type=angle-vulkan` for Vulkan (Android, Linux, Windows)
* `--deqp-egl-display-type=angle-metal` for Metal (Mac)
* `--deqp-egl-display-type=angle-swiftshader` for Vulkan with SwiftShader as driver (Android, Linux, Mac, Windows)
* `--deqp-egl-display-type=angle-vulkan` for Vulkan (Android, Linux, Windows)
The flag `--use-angle=X` has the same effect as `--deqp-egl-display-type=angle-X`.
......
......@@ -26,9 +26,10 @@ const DisplayTypeInfo kDisplayTypes[] = {
{"d3d11", EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE},
{"gl", EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE},
{"gles", EGL_PLATFORM_ANGLE_TYPE_OPENGLES_ANGLE},
{"metal", EGL_PLATFORM_ANGLE_TYPE_METAL_ANGLE},
{"null", EGL_PLATFORM_ANGLE_TYPE_NULL_ANGLE},
{"vulkan", EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE},
{"swiftshader", EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE},
{"vulkan", EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE},
};
EGLint GetDisplayTypeFromArg(const char *displayTypeArg)
......
......@@ -96,9 +96,10 @@ constexpr APIInfo kEGLDisplayAPIs[] = {
{"angle-d3d11", GPUTestConfig::kAPID3D11},
{"angle-gl", GPUTestConfig::kAPIGLDesktop},
{"angle-gles", GPUTestConfig::kAPIGLES},
{"angle-metal", GPUTestConfig::kAPIMetal},
{"angle-null", GPUTestConfig::kAPIUnknown},
{"angle-vulkan", GPUTestConfig::kAPIVulkan},
{"angle-swiftshader", GPUTestConfig::kAPISwiftShader},
{"angle-vulkan", GPUTestConfig::kAPIVulkan},
};
constexpr char kdEQPEGLString[] = "--deqp-egl-display-type=";
......
......@@ -106,6 +106,16 @@ ANGLEPlatform::ANGLEPlatform(angle::LogErrorFunc logErrorFunc)
}
#endif
#if (DE_OS == DE_OS_OSX)
{
std::vector<eglw::EGLAttrib> mtlAttribs = initAttribs(EGL_PLATFORM_ANGLE_TYPE_METAL_ANGLE);
auto *mtlFactory = new ANGLENativeDisplayFactory("angle-metal", "ANGLE Metal Display",
mtlAttribs, &mEvents);
m_nativeDisplayFactoryRegistry.registerFactory(mtlFactory);
}
#endif
{
std::vector<eglw::EGLAttrib> nullAttribs = initAttribs(EGL_PLATFORM_ANGLE_TYPE_NULL_ANGLE);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment