Commit cec2b7f8 by Geoff Lang Committed by Commit Bot

Allow the null backend to be used by dEQP.

BUG=angleproject:1468 Change-Id: Ife6f0001b9a6ae06c98385df47fc3887036f3a36 Reviewed-on: https://chromium-review.googlesource.com/412863 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
parent 44f26482
...@@ -52,6 +52,7 @@ const APIInfo g_eglDisplayAPIs[] = { ...@@ -52,6 +52,7 @@ const APIInfo g_eglDisplayAPIs[] = {
{"angle-d3d11", gpu::GPUTestConfig::kAPID3D11}, {"angle-d3d11", gpu::GPUTestConfig::kAPID3D11},
{"angle-gl", gpu::GPUTestConfig::kAPIGLDesktop}, {"angle-gl", gpu::GPUTestConfig::kAPIGLDesktop},
{"angle-gles", gpu::GPUTestConfig::kAPIGLES}, {"angle-gles", gpu::GPUTestConfig::kAPIGLES},
{"angle-null", gpu::GPUTestConfig::kAPIUnknown },
}; };
const APIInfo *g_initAPI = nullptr; const APIInfo *g_initAPI = nullptr;
......
...@@ -36,63 +36,84 @@ ANGLEPlatform::ANGLEPlatform() ...@@ -36,63 +36,84 @@ ANGLEPlatform::ANGLEPlatform()
angle::SetLowPriorityProcess(); angle::SetLowPriorityProcess();
#if (DE_OS == DE_OS_WIN32) #if (DE_OS == DE_OS_WIN32)
std::vector<eglw::EGLAttrib> d3d11Attribs; {
d3d11Attribs.push_back(EGL_PLATFORM_ANGLE_TYPE_ANGLE); std::vector<eglw::EGLAttrib> d3d11Attribs;
d3d11Attribs.push_back(EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE); d3d11Attribs.push_back(EGL_PLATFORM_ANGLE_TYPE_ANGLE);
d3d11Attribs.push_back(EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE); d3d11Attribs.push_back(EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE);
d3d11Attribs.push_back(EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE); d3d11Attribs.push_back(EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE);
d3d11Attribs.push_back(EGL_NONE); d3d11Attribs.push_back(EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE);
d3d11Attribs.push_back(EGL_NONE);
auto *d3d11Factory = new ANGLENativeDisplayFactory(
"angle-d3d11", "ANGLE D3D11 Display", d3d11Attribs, &mEvents); auto *d3d11Factory = new ANGLENativeDisplayFactory(
m_nativeDisplayFactoryRegistry.registerFactory(d3d11Factory); "angle-d3d11", "ANGLE D3D11 Display", d3d11Attribs, &mEvents);
m_nativeDisplayFactoryRegistry.registerFactory(d3d11Factory);
std::vector<eglw::EGLAttrib> d3d9Attribs; }
d3d9Attribs.push_back(EGL_PLATFORM_ANGLE_TYPE_ANGLE);
d3d9Attribs.push_back(EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE); {
d3d9Attribs.push_back(EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE); std::vector<eglw::EGLAttrib> d3d9Attribs;
d3d9Attribs.push_back(EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE); d3d9Attribs.push_back(EGL_PLATFORM_ANGLE_TYPE_ANGLE);
d3d9Attribs.push_back(EGL_NONE); d3d9Attribs.push_back(EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE);
d3d9Attribs.push_back(EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE);
auto *d3d9Factory = new ANGLENativeDisplayFactory( d3d9Attribs.push_back(EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE);
"angle-d3d9", "ANGLE D3D9 Display", d3d9Attribs, &mEvents); d3d9Attribs.push_back(EGL_NONE);
m_nativeDisplayFactoryRegistry.registerFactory(d3d9Factory);
auto *d3d9Factory = new ANGLENativeDisplayFactory(
std::vector<eglw::EGLAttrib> d3d1193Attribs; "angle-d3d9", "ANGLE D3D9 Display", d3d9Attribs, &mEvents);
d3d1193Attribs.push_back(EGL_PLATFORM_ANGLE_TYPE_ANGLE); m_nativeDisplayFactoryRegistry.registerFactory(d3d9Factory);
d3d1193Attribs.push_back(EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE); }
d3d1193Attribs.push_back(EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE);
d3d1193Attribs.push_back(EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE); {
d3d1193Attribs.push_back(EGL_PLATFORM_ANGLE_MAX_VERSION_MAJOR_ANGLE); std::vector<eglw::EGLAttrib> d3d1193Attribs;
d3d1193Attribs.push_back(9); d3d1193Attribs.push_back(EGL_PLATFORM_ANGLE_TYPE_ANGLE);
d3d1193Attribs.push_back(EGL_PLATFORM_ANGLE_MAX_VERSION_MINOR_ANGLE); d3d1193Attribs.push_back(EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE);
d3d1193Attribs.push_back(3); d3d1193Attribs.push_back(EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE);
d3d1193Attribs.push_back(EGL_NONE); d3d1193Attribs.push_back(EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE);
d3d1193Attribs.push_back(EGL_PLATFORM_ANGLE_MAX_VERSION_MAJOR_ANGLE);
auto *d3d1193Factory = new ANGLENativeDisplayFactory( d3d1193Attribs.push_back(9);
"angle-d3d11-fl93", "ANGLE D3D11 FL9_3 Display", d3d1193Attribs, &mEvents); d3d1193Attribs.push_back(EGL_PLATFORM_ANGLE_MAX_VERSION_MINOR_ANGLE);
m_nativeDisplayFactoryRegistry.registerFactory(d3d1193Factory); d3d1193Attribs.push_back(3);
d3d1193Attribs.push_back(EGL_NONE);
auto *d3d1193Factory = new ANGLENativeDisplayFactory(
"angle-d3d11-fl93", "ANGLE D3D11 FL9_3 Display", d3d1193Attribs, &mEvents);
m_nativeDisplayFactoryRegistry.registerFactory(d3d1193Factory);
}
#endif // (DE_OS == DE_OS_WIN32) #endif // (DE_OS == DE_OS_WIN32)
#if defined(ANGLE_USE_OZONE) || (DE_OS == DE_OS_ANDROID) #if defined(ANGLE_USE_OZONE) || (DE_OS == DE_OS_ANDROID)
std::vector<eglw::EGLAttrib> glesAttribs; {
glesAttribs.push_back(EGL_PLATFORM_ANGLE_TYPE_ANGLE); std::vector<eglw::EGLAttrib> glesAttribs;
glesAttribs.push_back(EGL_PLATFORM_ANGLE_TYPE_OPENGLES_ANGLE); glesAttribs.push_back(EGL_PLATFORM_ANGLE_TYPE_ANGLE);
glesAttribs.push_back(EGL_NONE); glesAttribs.push_back(EGL_PLATFORM_ANGLE_TYPE_OPENGLES_ANGLE);
glesAttribs.push_back(EGL_NONE);
auto *glesFactory = new ANGLENativeDisplayFactory(
"angle-gles", "ANGLE OpenGL ES Display", glesAttribs, &mEvents); auto *glesFactory = new ANGLENativeDisplayFactory(
m_nativeDisplayFactoryRegistry.registerFactory(glesFactory); "angle-gles", "ANGLE OpenGL ES Display", glesAttribs, &mEvents);
m_nativeDisplayFactoryRegistry.registerFactory(glesFactory);
}
#endif #endif
std::vector<eglw::EGLAttrib> glAttribs; {
glAttribs.push_back(EGL_PLATFORM_ANGLE_TYPE_ANGLE); std::vector<eglw::EGLAttrib> glAttribs;
glAttribs.push_back(EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE); glAttribs.push_back(EGL_PLATFORM_ANGLE_TYPE_ANGLE);
glAttribs.push_back(EGL_NONE); glAttribs.push_back(EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE);
glAttribs.push_back(EGL_NONE);
auto *glFactory = new ANGLENativeDisplayFactory(
"angle-gl", "ANGLE OpenGL Display", glAttribs, &mEvents); auto *glFactory = new ANGLENativeDisplayFactory(
m_nativeDisplayFactoryRegistry.registerFactory(glFactory); "angle-gl", "ANGLE OpenGL Display", glAttribs, &mEvents);
m_nativeDisplayFactoryRegistry.registerFactory(glFactory);
}
{
std::vector<eglw::EGLAttrib> nullAttribs;
nullAttribs.push_back(EGL_PLATFORM_ANGLE_TYPE_ANGLE);
nullAttribs.push_back(EGL_PLATFORM_ANGLE_TYPE_NULL_ANGLE);
nullAttribs.push_back(EGL_NONE);
auto *nullFactory = new ANGLENativeDisplayFactory(
"angle-null", "ANGLE NULL Display", nullAttribs, &mEvents);
m_nativeDisplayFactoryRegistry.registerFactory(nullFactory);
}
m_contextFactoryRegistry.registerFactory(new eglu::GLContextFactory(m_nativeDisplayFactoryRegistry)); m_contextFactoryRegistry.registerFactory(new eglu::GLContextFactory(m_nativeDisplayFactoryRegistry));
......
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