Closed Bug 1747520 Opened 4 years ago Closed 4 years ago

Ensure OffscreenCanvas invalidation is consistent

Categories

(Core :: Graphics: Canvas2D, defect, P3)

defect

Tracking

()

RESOLVED FIXED
97 Branch
Tracking Status
firefox97 --- fixed

People

(Reporter: aosmond, Assigned: aosmond)

References

Details

Attachments

(1 file)

There are some invalidation concerns I have with the current implementation of OffscreenCanvas.

  • We actually invalidate more than we need to, by queuing a commit to compositor for every draw call. This should rate limit itself.
  • We should cancel any pending commits if an explicit commit call is made (e.g. for OffscreenCanvasRenderingContext2D.commit)
  • We should ensure a commit and updating parameters is atomic. Since the parameter update can impact the surface properties, such as alpha, we need to make sure that triggers a commit.

This patch ensures that our invalidation is more consistent and less
frequent. It no longer queues an invalidation for each draw call. It now
combines the parameter update (e.g. width, height, opacity) with an
invalidation to ensure the contents of the canvas are consistent with
the advertised properties. It also ensures that if an explicit commit
occurs, any pending commits are cancelled.

Pushed by aosmond@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/9bfdd68d590d Ensure that OffscreenCanvas invalidation is in a consistent state. r=gfx-reviewers,kvark
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → 97 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: