Skip to content

Commit

Permalink
test
Browse files Browse the repository at this point in the history
  • Loading branch information
vaxerski committed Aug 18, 2024
1 parent 9a573ab commit 0839f67
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 2 deletions.
2 changes: 2 additions & 0 deletions include/aquamarine/backend/DRM.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -209,6 +209,8 @@ namespace Aquamarine {
Hyprutils::Math::Vector2D cursorPos; // without hotspot
Hyprutils::Math::Vector2D cursorHotspot;

bool enabledState = true; // actual enabled state. Should be synced with state->state().enabled after a new frame

private:
CDRMOutput(const std::string& name_, Hyprutils::Memory::CWeakPointer<CDRMBackend> backend_, Hyprutils::Memory::CSharedPointer<SDRMConnector> connector_);

Expand Down
6 changes: 4 additions & 2 deletions src/backend/drm/DRM.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -818,7 +818,7 @@ static void handlePF(int fd, unsigned seq, unsigned tv_sec, unsigned tv_usec, un
.flags = flags,
});

if (BACKEND->sessionActive() && !pageFlip->connector->frameEventScheduled && pageFlip->connector->output->state->state().enabled)
if (BACKEND->sessionActive() && !pageFlip->connector->frameEventScheduled && pageFlip->connector->output->enabledState)
pageFlip->connector->output->events.frame.emit();
}

Expand Down Expand Up @@ -1318,6 +1318,8 @@ void Aquamarine::SDRMConnector::applyCommit(const SDRMConnectorCommitData& data)

if (output->state->state().committed & COutputState::AQ_OUTPUT_STATE_MODE)
refresh = calculateRefresh(data.modeInfo);

output->enabledState = output->state->state().enabled;
}

void Aquamarine::SDRMConnector::rollbackCommit(const SDRMConnectorCommitData& data) {
Expand Down Expand Up @@ -1679,7 +1681,7 @@ void Aquamarine::CDRMOutput::scheduleFrame(const scheduleFrameReason reason) {
connector->isPageFlipPending, connector->frameEventScheduled)));
needsFrame = true;

if (connector->isPageFlipPending || connector->frameEventScheduled || !state->state().enabled)
if (connector->isPageFlipPending || connector->frameEventScheduled || !enabledState)
return;

connector->frameEventScheduled = true;
Expand Down

0 comments on commit 0839f67

Please sign in to comment.