mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-03-01 05:48:26 +00:00
Bug 1537967 - Skipping running refresh driver and compositing in VR mode. r=mstange,kip
MozReview-Commit-ID: 4L3PygFSFCB Differential Revision: https://phabricator.services.mozilla.com/D26834 --HG-- extra : moz-landing-system : lando
This commit is contained in:
parent
3e6ef756b6
commit
0e6aee236e
@ -176,7 +176,16 @@ bool CompositorVsyncScheduler::NotifyVsync(const VsyncEvent& aVsync) {
|
||||
MOZ_ASSERT_IF(XRE_GetProcessType() == GeckoProcessType_GPU,
|
||||
CompositorThreadHolder::IsInCompositorThread());
|
||||
MOZ_ASSERT(!NS_IsMainThread());
|
||||
|
||||
#if defined(MOZ_WIDGET_ANDROID)
|
||||
gfx::VRManager* vm = gfx::VRManager::Get();
|
||||
if (!vm->IsPresenting()) {
|
||||
PostCompositeTask(aVsync.mId, aVsync.mTime);
|
||||
}
|
||||
#else
|
||||
PostCompositeTask(aVsync.mId, aVsync.mTime);
|
||||
#endif // defined(MOZ_WIDGET_ANDROID)
|
||||
|
||||
PostVRTask(aVsync.mTime);
|
||||
return true;
|
||||
}
|
||||
|
@ -795,5 +795,15 @@ void VRManager::StopVRNavigation(const uint32_t& aDisplayID,
|
||||
}
|
||||
}
|
||||
|
||||
bool VRManager::IsPresenting() {
|
||||
for (const auto& manager : mManagers) {
|
||||
if (manager->GetIsPresenting()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
} // namespace gfx
|
||||
} // namespace mozilla
|
||||
|
@ -68,6 +68,7 @@ class VRManager {
|
||||
const TimeDuration& aTimeout);
|
||||
|
||||
void Shutdown();
|
||||
bool IsPresenting();
|
||||
|
||||
protected:
|
||||
VRManager();
|
||||
|
@ -76,6 +76,10 @@
|
||||
#include "nsDisplayList.h"
|
||||
#include "nsTransitionManager.h"
|
||||
|
||||
#if defined(MOZ_WIDGET_ANDROID)
|
||||
# include "VRManager.h"
|
||||
#endif // defined(MOZ_WIDGET_ANDROID)
|
||||
|
||||
#ifdef MOZ_XUL
|
||||
# include "nsXULPopupManager.h"
|
||||
#endif
|
||||
@ -1747,6 +1751,14 @@ void nsRefreshDriver::Tick(VsyncId aId, TimeStamp aNowTime) {
|
||||
return;
|
||||
}
|
||||
|
||||
#if defined(MOZ_WIDGET_ANDROID)
|
||||
gfx::VRManager* vm = gfx::VRManager::Get();
|
||||
if (vm->IsPresenting()) {
|
||||
RunFrameRequestCallbacks(aNowTime);
|
||||
return;
|
||||
}
|
||||
#endif // defined(MOZ_WIDGET_ANDROID)
|
||||
|
||||
AUTO_PROFILER_LABEL("nsRefreshDriver::Tick", LAYOUT);
|
||||
|
||||
// We're either frozen or we were disconnected (likely in the middle
|
||||
|
Loading…
x
Reference in New Issue
Block a user