diff --git a/src/core/compositor/compositor_resource_tracker.cpp b/src/core/compositor/compositor_resource_tracker.cpp index ba874053ece104c52b262db15ed7d15f319c7b50..73242c6931ed45ac1ed8ff0630f55cf40ae0db11 100644 --- a/src/core/compositor/compositor_resource_tracker.cpp +++ b/src/core/compositor/compositor_resource_tracker.cpp @@ -213,6 +213,9 @@ void CompositorResourceTracker::scheduleUpdateMailboxes(std::vector<CompositorRe #if QT_CONFIG(opengl) scoped_refptr<base::SingleThreadTaskRunner> gpuTaskRunner = gpu_task_runner(); DCHECK(gpuTaskRunner); + thread_local bool currentThreadIsGpu = gpuTaskRunner->BelongsToCurrentThread(); + if (currentThreadIsGpu) + return updateMailboxes(std::move(resources)); gpuTaskRunner->PostTask( FROM_HERE, base::BindOnce(&CompositorResourceTracker::updateMailboxes, @@ -243,6 +246,9 @@ void CompositorResourceTracker::updateMailboxes(std::vector<CompositorResource * void CompositorResourceTracker::scheduleRunSubmitCallback() { + thread_local bool currentThreadIsUi = content::BrowserThread::CurrentlyOn(content::BrowserThread::UI); + if (currentThreadIsUi) + return runSubmitCallback(); base::PostTaskWithTraits( FROM_HERE, { content::BrowserThread::UI, base::TaskPriority::USER_VISIBLE }, base::BindOnce(&CompositorResourceTracker::runSubmitCallback,