Commit c66cd693 by Geoff Lang Committed by Commit Bot

GL: Temporarily disable parallel shader compile.

The Skia bots have been unable to roll ANGLE since parallel compile landed in ANGLE. Speculatively disable parallel compile using a workaround. Failed roll: https://skia-review.googlesource.com/c/skia/+/184705 Also seen instability on Linux, Mac and Windows in 922936. BUG=922936 BUG=849576 Change-Id: I7116b3f6541425135984c52a8077bdb98d961784 Reviewed-on: https://chromium-review.googlesource.com/c/1415729Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
parent b3bdd2ac
...@@ -566,6 +566,11 @@ angle::Result RendererGL::memoryBarrierByRegion(GLbitfield barriers) ...@@ -566,6 +566,11 @@ angle::Result RendererGL::memoryBarrierByRegion(GLbitfield barriers)
bool RendererGL::bindWorkerContext(std::string *infoLog) bool RendererGL::bindWorkerContext(std::string *infoLog)
{ {
if (mWorkarounds.disableWorkerContexts)
{
return false;
}
std::thread::id threadID = std::this_thread::get_id(); std::thread::id threadID = std::this_thread::get_id();
std::lock_guard<std::mutex> lock(mWorkerMutex); std::lock_guard<std::mutex> lock(mWorkerMutex);
std::unique_ptr<WorkerContext> workerContext; std::unique_ptr<WorkerContext> workerContext;
......
...@@ -172,6 +172,10 @@ struct WorkaroundsGL ...@@ -172,6 +172,10 @@ struct WorkaroundsGL
// platforms. // platforms.
// http://anglebug.com/3045 // http://anglebug.com/3045
bool dontRelinkProgramsInParallel = false; bool dontRelinkProgramsInParallel = false;
// Some tests have been seen to fail using worker contexts, this switch allows worker contexts
// to be disabled for some platforms. http://crbug.com/849576
bool disableWorkerContexts = false;
}; };
inline WorkaroundsGL::WorkaroundsGL() = default; inline WorkaroundsGL::WorkaroundsGL() = default;
......
...@@ -1444,6 +1444,8 @@ void GenerateWorkarounds(const FunctionsGL *functions, WorkaroundsGL *workaround ...@@ -1444,6 +1444,8 @@ void GenerateWorkarounds(const FunctionsGL *functions, WorkaroundsGL *workaround
workarounds->queryCounterBitsGeneratesErrors = IsNexus5X(vendor, device); workarounds->queryCounterBitsGeneratesErrors = IsNexus5X(vendor, device);
workarounds->dontRelinkProgramsInParallel = IsAndroid() || (IsWindows() && IsIntel(vendor)); workarounds->dontRelinkProgramsInParallel = IsAndroid() || (IsWindows() && IsIntel(vendor));
workarounds->disableWorkerContexts = true;
} }
void ApplyWorkarounds(const FunctionsGL *functions, gl::Workarounds *workarounds) void ApplyWorkarounds(const FunctionsGL *functions, gl::Workarounds *workarounds)
......
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