Closed Bug 1607777 Opened 3 months ago Closed 2 months ago

Incorrect CARenderer rendering

Categories

(Core :: Graphics: WebRender, task)

All
macOS
task
Not set

Tracking

()

RESOLVED FIXED
mozilla74
Tracking Status
firefox74 --- fixed

People

(Reporter: mstange, Assigned: mstange)

Details

Attachments

(3 files)

There are three small problems in the implementation of NativeLayerRootSnapshotterCA::ReadbackPixels from bug 1592026. This can result in wrong reftest snapshots, and after bug 1592031 in incorrect profiler screenshots.

The CARenderer documentation does not provide any guidance on how to use CARenderer with different resolutions.
In the initial implementation I simply tried the following: Make a device-pixel sized framebuffer, call glViewport with the device pixel size, and then call glOrtho with the "point" size. And this seemed to work.
However, it doesn't always work. When hooking up profiler screenshots, I noticed that in some cases, some layers would just not be rendered. Sometimes I even saw layers show up in wrong places.
After this patch, these problems no longer appear.

Depends on D58518

addUpdateRect needs to be called after beginFrame, otherwise it doesn't do anything.

Depends on D59154

Pushed by mstange@themasta.com:
https://hg.mozilla.org/integration/autoland/rev/6f0faedf53bd
When using CARenderer on HiDPI, pass device pixels to the glOrtho call and use a sublayerTransform on the root CALayer. r=jrmuizel
https://hg.mozilla.org/integration/autoland/rev/53c427440d0e
Fix CARenderer invalidation when the buffer size changes. r=jrmuizel
https://hg.mozilla.org/integration/autoland/rev/bcb85259be95
Clear areas that CARenderer repaints, so that old content doesn't accomulate in transparent areas such as the tab bar. r=jrmuizel
Status: ASSIGNED → RESOLVED
Closed: 2 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla74
You need to log in before you can comment on or make changes to this bug.