Commit 7ec6cdc4 authored by abarth@chromium.org's avatar abarth@chromium.org

Add GPURasterizationTrigger

Instead of reading from the settings object repeatedly when finding direct
compositing reasons, most settings are cached in the compositing triggers bit
vector. This CL moves the GPU rasterization trigger to the same model.

Review URL: https://codereview.chromium.org/206543005

git-svn-id: svn://svn.chromium.org/blink/trunk@169705 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 82c96b29
......@@ -160,10 +160,8 @@ bool CompositingReasonFinder::requiresCompositingForWillChange(const RenderObjec
if (renderer->style()->hasWillChangeCompositingHint())
return true;
if (Settings* settings = m_renderView.document().settings()) {
if (!settings->acceleratedCompositingForGpuRasterizationHintEnabled())
return false;
}
if (!(m_compositingTriggers & GPURasterizationTrigger))
return false;
return renderer->style()->hasWillChangeGpuRasterizationHint();
}
......
......@@ -32,7 +32,8 @@ enum CompositingTrigger {
AnimationTrigger = 1 << 4,
FilterTrigger = 1 << 5,
ScrollableInnerFrameTrigger = 1 << 6,
AllCompositingTriggers = 0xFFFFFFFF
GPURasterizationTrigger = 1 << 7,
AllCompositingTriggers = 0xFFFFFFFF,
};
typedef unsigned CompositingTriggerFlags;
......
......@@ -732,6 +732,8 @@ WebCore::CompositingTriggerFlags ChromeClientImpl::allowedCompositingTriggers()
flags |= WebCore::ScrollableInnerFrameTrigger;
if (settings.acceleratedCompositingForFiltersEnabled())
flags |= WebCore::FilterTrigger;
if (settings.acceleratedCompositingForGpuRasterizationHintEnabled())
flags |= WebCore::GPURasterizationTrigger;
return flags;
}
......
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