commit bb13e903d533c70ff7a4dd58328e614ed950503d
parent dc41e70d999404af7dd06be9aef9633d54ee7109
Author: Cristina Horotan <chorotan@mozilla.com>
Date: Thu, 18 Dec 2025 01:38:44 +0200
Revert "Bug 2005820 - Don't start warming up shaders until the first NewRenderer task is done (i.e. until EnsureConnected in the parent has completed). r=jnicol" for causing bc failures on /browser_preferences.js
This reverts commit 264f0516e0e9d73b98079e2b1bf3cd803c65914d.
Diffstat:
3 files changed, 6 insertions(+), 12 deletions(-)
diff --git a/gfx/webrender_bindings/RenderThread.cpp b/gfx/webrender_bindings/RenderThread.cpp
@@ -1279,6 +1279,12 @@ void RenderThread::InitDeviceTask() {
// lazy initialization to happen now.
SingletonGL();
+ if (mShaders) {
+ // Kick off shader warmup, outside the InitDeviceTask so that this thread
+ // becomes available to handle other messages from the Compositor.
+ PostResumeShaderWarmupRunnable();
+ }
+
const auto maxDurationMs = 3 * 1000;
const auto end = TimeStamp::Now();
const auto durationMs = static_cast<uint32_t>((end - start).ToMilliseconds());
@@ -1288,12 +1294,6 @@ void RenderThread::InitDeviceTask() {
}
}
-void RenderThread::BeginShaderWarmupIfNeeded() {
- if (mShaders) {
- PostResumeShaderWarmupRunnable();
- }
-}
-
void RenderThread::PostResumeShaderWarmupRunnable() {
RefPtr<Runnable> runnable =
NewRunnableMethod("RenderThread::ResumeShaderWarmup", this,
diff --git a/gfx/webrender_bindings/RenderThread.h b/gfx/webrender_bindings/RenderThread.h
@@ -360,8 +360,6 @@ class RenderThread final {
void SetBatteryInfo(const hal::BatteryInformation& aBatteryInfo);
bool GetPowerIsCharging();
- void BeginShaderWarmupIfNeeded();
-
private:
static size_t sRendererCount;
static size_t sActiveRendererCount;
diff --git a/gfx/webrender_bindings/WebRenderAPI.cpp b/gfx/webrender_bindings/WebRenderAPI.cpp
@@ -191,10 +191,6 @@ class NewRenderer : public RendererEvent {
}
aRenderThread.AddRenderer(aWindowId, std::move(renderer));
-
- // Kick off shader warmup, outside this NewRenderer task so that any
- // threads which block on the NewRenderer work can proceed immediately.
- aRenderThread.BeginShaderWarmupIfNeeded();
}
const char* Name() override { return "NewRenderer"; }