Bug 1924152 - Support rendering without presenting. r=gw

The goal for this initial implementation is to be able to render picture snapshots without presenting the frame, but it could be extended to supporting some picture cache slices without presenting (for example if we know that the picture is not affected by scrolling or animated properties and want to start rendering it early).

Differential Revision: https://phabricator.services.mozilla.com/D234162
This commit is contained in:
Nicolas Silva
2025-01-15 15:24:03 +00:00
parent 864b4b7480
commit a4d2fb6536
17 changed files with 97 additions and 51 deletions

View File

@@ -287,9 +287,9 @@ void TransactionBuilder::ClearDisplayList(Epoch aEpoch,
wr_transaction_clear_display_list(mTxn, aEpoch, aPipelineId);
}
void TransactionBuilder::GenerateFrame(const VsyncId& aVsyncId,
void TransactionBuilder::GenerateFrame(const VsyncId& aVsyncId, bool aPresent,
wr::RenderReasons aReasons) {
wr_transaction_generate_frame(mTxn, aVsyncId.mId, aReasons);
wr_transaction_generate_frame(mTxn, aVsyncId.mId, aPresent, aReasons);
}
void TransactionBuilder::InvalidateRenderedFrame(wr::RenderReasons aReasons) {