Bug 1128691. Part 1: Consolidate vsync compositor pref checks. r=benwa

This commit is contained in:
Mason Chang 2015-02-04 13:08:31 -08:00
Родитель fdee1bb880
Коммит 6225c3b5b8
1 изменённых файлов: 8 добавлений и 7 удалений

Просмотреть файл

@ -416,6 +416,7 @@ CompositorParent::CompositorParent(nsIWidget* aWidget,
, mOverrideComposeReadiness(false) , mOverrideComposeReadiness(false)
, mForceCompositionTask(nullptr) , mForceCompositionTask(nullptr)
, mCompositorThreadHolder(sCompositorThreadHolder) , mCompositorThreadHolder(sCompositorThreadHolder)
, mCompositorVsyncObserver(nullptr)
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
MOZ_ASSERT(CompositorThread(), MOZ_ASSERT(CompositorThread(),
@ -577,7 +578,7 @@ CompositorParent::RecvMakeSnapshot(const SurfaceDescriptor& aInSnapshot,
bool bool
CompositorParent::RecvFlushRendering() CompositorParent::RecvFlushRendering()
{ {
if (gfxPrefs::VsyncAlignedCompositor() && mCompositorVsyncObserver->NeedsComposite()) { if (mCompositorVsyncObserver && mCompositorVsyncObserver->NeedsComposite()) {
mCompositorVsyncObserver->SetNeedsComposite(false); mCompositorVsyncObserver->SetNeedsComposite(false);
CancelCurrentCompositeTask(); CancelCurrentCompositeTask();
ForceComposeToTarget(nullptr); ForceComposeToTarget(nullptr);
@ -718,7 +719,7 @@ CompositorParent::ForceComposition()
void void
CompositorParent::CancelCurrentCompositeTask() CompositorParent::CancelCurrentCompositeTask()
{ {
if (gfxPrefs::VsyncAlignedCompositor()) { if (mCompositorVsyncObserver) {
mCompositorVsyncObserver->CancelCurrentCompositeTask(); mCompositorVsyncObserver->CancelCurrentCompositeTask();
} else if (mCurrentCompositeTask) { } else if (mCurrentCompositeTask) {
mCurrentCompositeTask->Cancel(); mCurrentCompositeTask->Cancel();
@ -831,7 +832,7 @@ CalculateCompositionFrameRate()
void void
CompositorParent::ScheduleSoftwareTimerComposition() CompositorParent::ScheduleSoftwareTimerComposition()
{ {
MOZ_ASSERT(!gfxPrefs::VsyncAlignedCompositor()); MOZ_ASSERT(!mCompositorVsyncObserver);
if (mCurrentCompositeTask) { if (mCurrentCompositeTask) {
return; return;
@ -874,7 +875,7 @@ CompositorParent::ScheduleComposition()
return; return;
} }
if (gfxPrefs::VsyncAlignedCompositor()) { if (mCompositorVsyncObserver) {
mCompositorVsyncObserver->SetNeedsComposite(true); mCompositorVsyncObserver->SetNeedsComposite(true);
} else { } else {
ScheduleSoftwareTimerComposition(); ScheduleSoftwareTimerComposition();
@ -884,7 +885,7 @@ CompositorParent::ScheduleComposition()
void void
CompositorParent::CompositeCallback(TimeStamp aScheduleTime) CompositorParent::CompositeCallback(TimeStamp aScheduleTime)
{ {
if (gfxPrefs::VsyncAlignedCompositor()) { if (mCompositorVsyncObserver) {
// Align OMTA to vsync time. // Align OMTA to vsync time.
// TODO: ensure it aligns with the refresh / start time of // TODO: ensure it aligns with the refresh / start time of
// animations // animations
@ -1097,7 +1098,7 @@ CompositorParent::ShadowLayersUpdated(LayerTransactionParent* aLayerTree,
// conditions. // conditions.
bool needTestComposite = mIsTesting && root && bool needTestComposite = mIsTesting && root &&
(mCurrentCompositeTask || (mCurrentCompositeTask ||
(gfxPrefs::VsyncAlignedCompositor() && (mCompositorVsyncObserver &&
mCompositorVsyncObserver->NeedsComposite())); mCompositorVsyncObserver->NeedsComposite()));
if (needTestComposite) { if (needTestComposite) {
AutoResolveRefLayers resolve(mCompositionManager); AutoResolveRefLayers resolve(mCompositionManager);
@ -1131,7 +1132,7 @@ CompositorParent::SetTestSampleTime(LayerTransactionParent* aLayerTree,
mTestTime = aTime; mTestTime = aTime;
bool testComposite = mCompositionManager && (mCurrentCompositeTask || bool testComposite = mCompositionManager && (mCurrentCompositeTask ||
(gfxPrefs::VsyncAlignedCompositor() (mCompositorVsyncObserver
&& mCompositorVsyncObserver->NeedsComposite())); && mCompositorVsyncObserver->NeedsComposite()));
// Update but only if we were already scheduled to animate // Update but only if we were already scheduled to animate