diff --git a/doc/dEQP.md b/doc/dEQP.md index a7cbdf56b..900ae5367 100644 --- a/doc/dEQP.md +++ b/doc/dEQP.md @@ -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`. diff --git a/samples/sample_util/SampleApplication.cpp b/samples/sample_util/SampleApplication.cpp index 17b245d20..ff9af44b7 100644 --- a/samples/sample_util/SampleApplication.cpp +++ b/samples/sample_util/SampleApplication.cpp @@ -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) diff --git a/src/tests/deqp_support/angle_deqp_gtest.cpp b/src/tests/deqp_support/angle_deqp_gtest.cpp index 05db50b03..b03a2767d 100644 --- a/src/tests/deqp_support/angle_deqp_gtest.cpp +++ b/src/tests/deqp_support/angle_deqp_gtest.cpp @@ -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="; diff --git a/src/tests/deqp_support/tcuANGLEPlatform.cpp b/src/tests/deqp_support/tcuANGLEPlatform.cpp index b85d507bb..3a272ff31 100644 --- a/src/tests/deqp_support/tcuANGLEPlatform.cpp +++ b/src/tests/deqp_support/tcuANGLEPlatform.cpp @@ -106,6 +106,16 @@ ANGLEPlatform::ANGLEPlatform(angle::LogErrorFunc logErrorFunc) } #endif +#if (DE_OS == DE_OS_OSX) + { + std::vector 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 nullAttribs = initAttribs(EGL_PLATFORM_ANGLE_TYPE_NULL_ANGLE);