Skip to content

Commit

Permalink
Backed out changeset 235b472013d2 (bug 1940924) for causing build bus…
Browse files Browse the repository at this point in the history
…tages @ WaylandSurface.cpp a=backout CLOSED TREE
  • Loading branch information
Sandor Molnar committed Jan 30, 2025
1 parent fc3718c commit 323674c
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 51 deletions.
31 changes: 2 additions & 29 deletions widget/gtk/WaylandSurface.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -311,10 +311,9 @@ static const struct wl_callback_listener sWaylandSurfaceFrameListener = {
void WaylandSurface::RequestFrameCallbackLocked(
const WaylandSurfaceLock& aProofOfLock, bool aRequestEmulated) {
LOGVERBOSE(
"WaylandSurface::RequestFrameCallbackLocked(), enabled %d mapped %d "
"emulate "
"WaylandSurface::RequestFrameCallbackLocked(), mapped %d emulate "
"%d mFrameCallback %d",
mFrameCallbackEnabled, !!mIsMapped, aRequestEmulated, !!mFrameCallback);
!!mIsMapped, aRequestEmulated, !!mFrameCallback);

MOZ_DIAGNOSTIC_ASSERT(&aProofOfLock == mSurfaceLock);

Expand All @@ -323,11 +322,6 @@ void WaylandSurface::RequestFrameCallbackLocked(
if (!mIsReadyToDraw) {
return;
}

if (!mFrameCallbackEnabled) {
return;
}

MOZ_DIAGNOSTIC_ASSERT(mSurface, "Missing mapped surface!");

if (!mFrameCallback) {
Expand Down Expand Up @@ -396,27 +390,6 @@ void WaylandSurface::AddPersistentFrameCallbackLocked(
RequestFrameCallbackLocked(aProofOfLock, aEmulateFrameCallback);
}

void WaylandSurface::SetFrameCallbackState(bool aEnabled) {
LOGWAYLAND("WaylandSurface::SetFrameCallbackState() state %d", aEnabled);

WaylandSurfaceLock lock(this);
if (mFrameCallbackEnabled == aEnabled) {
return;
}
mFrameCallbackEnabled = aEnabled;

// If there's any frame callback waiting, register the handler.
if (mFrameCallbackEnabled) {
if (!mPersistentFrameCallbackHandlers.empty() ||
!mOneTimeFrameCallbackHandlers.empty()) {
RequestFrameCallbackLocked(lock,
IsEmulatedFrameCallbackPendingLocked(lock));
}
} else {
ClearFrameCallbackLocked(lock);
}
}

bool WaylandSurface::CreateViewportLocked(
const WaylandSurfaceLock& aProofOfLock, bool aFollowsSizeChanges) {
LOGWAYLAND("WaylandSurface::CreateViewportLocked() follow size %d",
Expand Down
4 changes: 0 additions & 4 deletions widget/gtk/WaylandSurface.h
Original file line number Diff line number Diff line change
Expand Up @@ -64,9 +64,6 @@ class WaylandSurface final {
const std::function<void(wl_callback*, uint32_t)>& aFrameCallbackHandler,
bool aEmulateFrameCallback = false);

// Enable/Disable any frame callback emission (includes emulated ones).
void SetFrameCallbackState(bool aEnabled);

// Create and resize EGL window.
// GetEGLWindow() takes unscaled window size as we derive size from GdkWindow.
// It's scaled internally by WaylandSurface fractional scale.
Expand Down Expand Up @@ -318,7 +315,6 @@ class WaylandSurface final {
bool mEmulated = false;
};

bool mFrameCallbackEnabled = true;
// Frame callback handlers called every frame
std::vector<FrameCallback> mPersistentFrameCallbackHandlers;
// Frame callback handlers called only once
Expand Down
24 changes: 6 additions & 18 deletions widget/gtk/WaylandVsyncSource.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -147,19 +147,13 @@ void WaylandVsyncSource::EnableVSyncSource() {
LOG("WaylandVsyncSource::EnableVSyncSource() WaylandSurface [%p] fps %f",
mWaylandSurface.get(), GetFPS(mVsyncRate));
mVsyncSourceEnabled = true;

MOZ_DIAGNOSTIC_ASSERT(mWaylandSurface);
mWaylandSurface->SetFrameCallbackState(mVsyncEnabled && mVsyncSourceEnabled);
}

void WaylandVsyncSource::DisableVSyncSource() {
MutexAutoLock lock(mMutex);
LOG("WaylandVsyncSource::DisableVSyncSource() WaylandSurface [%p]",
mWaylandSurface.get());
mVsyncSourceEnabled = false;

MOZ_DIAGNOSTIC_ASSERT(mWaylandSurface);
mWaylandSurface->SetFrameCallbackState(mVsyncEnabled && mVsyncSourceEnabled);
}

bool WaylandVsyncSource::HiddenWindowCallback() {
Expand All @@ -171,12 +165,12 @@ bool WaylandVsyncSource::HiddenWindowCallback() {
{
MutexAutoLock lock(mMutex);

if (!mVsyncSourceEnabled || !mVsyncEnabled) {
if (!mVsyncEnabled) {
// We are unwanted by either our creator or our consumer, so we just stop
// here without setting up a new frame callback.
LOG("WaylandVsyncSource::HiddenWindowCallback(): quit, mVsyncEnabled %d "
"mWaylandSurface %p",
mVsyncEnabled && mVsyncSourceEnabled, mWaylandSurface.get());
mVsyncEnabled, mWaylandSurface.get());
return false;
}

Expand Down Expand Up @@ -235,11 +229,11 @@ void WaylandVsyncSource::VisibleWindowCallback(uint32_t aTime) {
}

MutexAutoLock lock(mMutex);
if (!mVsyncEnabled || !mVsyncSourceEnabled) {
if (!mVsyncEnabled) {
// We are unwanted by either our creator or our consumer, so we just stop
// here without setting up a new frame callback.
LOG(" quit, mVsyncEnabled %d mWaylandSurface %p",
mVsyncEnabled && mVsyncSourceEnabled, mWaylandSurface.get());
LOG(" quit, mVsyncEnabled %d mWaylandSurface %p", mVsyncEnabled,
mWaylandSurface.get());
return;
}

Expand Down Expand Up @@ -311,23 +305,17 @@ void WaylandVsyncSource::EnableVsync() {
return;
}
mVsyncEnabled = true;
mWaylandSurface->SetFrameCallbackState(mVsyncEnabled && mVsyncSourceEnabled);
}

void WaylandVsyncSource::DisableVsync() {
MutexAutoLock lock(mMutex);
LOG("WaylandVsyncSource::DisableVsync fps %f\n", GetFPS(mVsyncRate));
if (!mVsyncEnabled || mIsShutdown) {
LOG(" early quit");
return;
}
mVsyncEnabled = false;
mWaylandSurface->SetFrameCallbackState(mVsyncEnabled && mVsyncSourceEnabled);
}

bool WaylandVsyncSource::IsVsyncEnabled() {
MutexAutoLock lock(mMutex);
return mVsyncEnabled && mWaylandSurface;
return mVsyncEnabled;
}

void WaylandVsyncSource::Shutdown() {
Expand Down

0 comments on commit 323674c

Please sign in to comment.