Commit 705f480f by jchen10 Committed by Commit Bot

ParallelCompile: Enable worker on GL backend

Except WGL AMD, WGL Intel, and GLX Nvidia. BUG=922936 Change-Id: I1bdbddd1485578465bcf6ece4b4b7173ae6f9f05 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1442312Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Reviewed-by: 's avatarKenneth Russell <kbr@chromium.org> Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
parent 0516e8a5
......@@ -1454,7 +1454,11 @@ void GenerateWorkarounds(const FunctionsGL *functions, WorkaroundsGL *workaround
workarounds->dontRelinkProgramsInParallel = IsAndroid() || (IsWindows() && IsIntel(vendor));
workarounds->disableWorkerContexts = !IsApple();
// TODO(jie.a.chen@intel.com): Clean up the bugs.
// anglebug.com/3031
// crbug.com/922936
workarounds->disableWorkerContexts =
(IsWindows() && (IsIntel(vendor) || IsAMD(vendor))) || (IsLinux() && IsNvidia(vendor));
}
void ApplyWorkarounds(const FunctionsGL *functions, gl::Workarounds *workarounds)
......
......@@ -106,7 +106,6 @@ DisplayWGL::DisplayWGL(const egl::DisplayState &state)
mD3d11Module(nullptr),
mD3D11DeviceHandle(nullptr),
mD3D11Device(nullptr),
mHasWorkerContexts(true),
mUseARBShare(true)
{}
......@@ -293,13 +292,6 @@ egl::Error DisplayWGL::initializeImpl(egl::Display *display)
return egl::EglNotInitialized() << "Intel OpenGL ES drivers are not supported.";
}
// Using worker contexts is not currently supported due to bugs in the driver.
// http://anglebug.com/3031
if (IsAMD(vendor))
{
mHasWorkerContexts = false;
}
// Create DXGI swap chains for windows that come from other processes. Windows is unable to
// SetPixelFormat on windows from other processes when a sandbox is enabled.
HDC nativeDisplay = display->getNativeDisplayId();
......@@ -995,11 +987,6 @@ WorkerContext *DisplayWGL::createWorkerContext(std::string *infoLog,
HGLRC sharedContext,
const std::vector<int> &workerContextAttribs)
{
if (!mHasWorkerContexts)
{
*infoLog += "Has no WorkerContext support.";
return nullptr;
}
if (!sharedContext)
{
*infoLog += "Unable to create the shared context.";
......
......@@ -145,7 +145,6 @@ class DisplayWGL : public DisplayGL
};
std::map<IUnknown *, D3DObjectHandle> mRegisteredD3DDevices;
bool mHasWorkerContexts;
bool mUseARBShare;
};
......
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