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 ...@@ -1454,7 +1454,11 @@ void GenerateWorkarounds(const FunctionsGL *functions, WorkaroundsGL *workaround
workarounds->dontRelinkProgramsInParallel = IsAndroid() || (IsWindows() && IsIntel(vendor)); 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) void ApplyWorkarounds(const FunctionsGL *functions, gl::Workarounds *workarounds)
......
...@@ -106,7 +106,6 @@ DisplayWGL::DisplayWGL(const egl::DisplayState &state) ...@@ -106,7 +106,6 @@ DisplayWGL::DisplayWGL(const egl::DisplayState &state)
mD3d11Module(nullptr), mD3d11Module(nullptr),
mD3D11DeviceHandle(nullptr), mD3D11DeviceHandle(nullptr),
mD3D11Device(nullptr), mD3D11Device(nullptr),
mHasWorkerContexts(true),
mUseARBShare(true) mUseARBShare(true)
{} {}
...@@ -293,13 +292,6 @@ egl::Error DisplayWGL::initializeImpl(egl::Display *display) ...@@ -293,13 +292,6 @@ egl::Error DisplayWGL::initializeImpl(egl::Display *display)
return egl::EglNotInitialized() << "Intel OpenGL ES drivers are not supported."; 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 // 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. // SetPixelFormat on windows from other processes when a sandbox is enabled.
HDC nativeDisplay = display->getNativeDisplayId(); HDC nativeDisplay = display->getNativeDisplayId();
...@@ -995,11 +987,6 @@ WorkerContext *DisplayWGL::createWorkerContext(std::string *infoLog, ...@@ -995,11 +987,6 @@ WorkerContext *DisplayWGL::createWorkerContext(std::string *infoLog,
HGLRC sharedContext, HGLRC sharedContext,
const std::vector<int> &workerContextAttribs) const std::vector<int> &workerContextAttribs)
{ {
if (!mHasWorkerContexts)
{
*infoLog += "Has no WorkerContext support.";
return nullptr;
}
if (!sharedContext) if (!sharedContext)
{ {
*infoLog += "Unable to create the shared context."; *infoLog += "Unable to create the shared context.";
......
...@@ -145,7 +145,6 @@ class DisplayWGL : public DisplayGL ...@@ -145,7 +145,6 @@ class DisplayWGL : public DisplayGL
}; };
std::map<IUnknown *, D3DObjectHandle> mRegisteredD3DDevices; std::map<IUnknown *, D3DObjectHandle> mRegisteredD3DDevices;
bool mHasWorkerContexts;
bool mUseARBShare; 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