Closed Bug 1598725 Opened 2 years ago Closed 2 years ago

WebRender + OS compositor: Fixed backgrounds are painting into irregularly-sized OS surfaces

Categories

(Core :: Graphics: WebRender, defect)

defect
Not set
normal

Tracking

()

RESOLVED INVALID

People

(Reporter: mstange, Unassigned)

Details

Attachments

(1 file)

The attached testcase paints the gradient into an OS surface with the size 3360x1916 in my current Firefox window. I thought we only ever created OS surfaces with fixed tile sizes. Do we have dynamically-sized OS surfaces as well?

Flags: needinfo?(gwatson)

There's also 2x OS surface overdraw in that testcase. I'm not sure if there's a transparent slice in front of the gradient, or whether the gradient is the transparent slice.

I filed bug 1598728 on the general painting slowness in this testcase. So we can keep this bug about the OS compositor aspects.

For content rendering, OS surfaces should only ever be created with fixed tile sizes.

The only time we should ever create a full screen size OS surface is if the debug overlay is enabled. Is it possible that's what you're seeing in this case? (which would also explain the 2x surface overdraw if you're including the debug overlay).

Any debug markers (even just the new-scene indicator) will trigger the allocation of a framebuffer sized debug overlay surface, right now.

That seems the most likely explanation, although I can try to repro locally if you are seeing this without any debug overlays enabled? It's also possible there is a bug with how WR handles creation / destruction of the debug overlay surface.

Flags: needinfo?(gwatson) → needinfo?(mstange)

You're right, I was misinterpreting what I was seeing. The layer of that size must have been the profiler overlay.

No longer blocks: 1536360
Status: NEW → RESOLVED
Closed: 2 years ago
Flags: needinfo?(mstange)
Resolution: --- → INVALID

However, I think the overdraw is because the gradient is considered transparent. I'll file a new bug about that. If I remove background-attachment:fixed, then I see both Solid and Gradient drawing in the profiler GPU frames overlay, interleaved for the tiles.

I filed bug 1598972 about it.

You need to log in before you can comment on or make changes to this bug.