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: ...@@ -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-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-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-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-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`. The flag `--use-angle=X` has the same effect as `--deqp-egl-display-type=angle-X`.
......
...@@ -26,9 +26,10 @@ const DisplayTypeInfo kDisplayTypes[] = { ...@@ -26,9 +26,10 @@ const DisplayTypeInfo kDisplayTypes[] = {
{"d3d11", EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE}, {"d3d11", EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE},
{"gl", EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE}, {"gl", EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE},
{"gles", EGL_PLATFORM_ANGLE_TYPE_OPENGLES_ANGLE}, {"gles", EGL_PLATFORM_ANGLE_TYPE_OPENGLES_ANGLE},
{"metal", EGL_PLATFORM_ANGLE_TYPE_METAL_ANGLE},
{"null", EGL_PLATFORM_ANGLE_TYPE_NULL_ANGLE}, {"null", EGL_PLATFORM_ANGLE_TYPE_NULL_ANGLE},
{"vulkan", EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE},
{"swiftshader", 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) EGLint GetDisplayTypeFromArg(const char *displayTypeArg)
......
...@@ -96,9 +96,10 @@ constexpr APIInfo kEGLDisplayAPIs[] = { ...@@ -96,9 +96,10 @@ constexpr APIInfo kEGLDisplayAPIs[] = {
{"angle-d3d11", GPUTestConfig::kAPID3D11}, {"angle-d3d11", GPUTestConfig::kAPID3D11},
{"angle-gl", GPUTestConfig::kAPIGLDesktop}, {"angle-gl", GPUTestConfig::kAPIGLDesktop},
{"angle-gles", GPUTestConfig::kAPIGLES}, {"angle-gles", GPUTestConfig::kAPIGLES},
{"angle-metal", GPUTestConfig::kAPIMetal},
{"angle-null", GPUTestConfig::kAPIUnknown}, {"angle-null", GPUTestConfig::kAPIUnknown},
{"angle-vulkan", GPUTestConfig::kAPIVulkan},
{"angle-swiftshader", GPUTestConfig::kAPISwiftShader}, {"angle-swiftshader", GPUTestConfig::kAPISwiftShader},
{"angle-vulkan", GPUTestConfig::kAPIVulkan},
}; };
constexpr char kdEQPEGLString[] = "--deqp-egl-display-type="; constexpr char kdEQPEGLString[] = "--deqp-egl-display-type=";
......
...@@ -106,6 +106,16 @@ ANGLEPlatform::ANGLEPlatform(angle::LogErrorFunc logErrorFunc) ...@@ -106,6 +106,16 @@ ANGLEPlatform::ANGLEPlatform(angle::LogErrorFunc logErrorFunc)
} }
#endif #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); 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