Open Bug 1657134 Opened 5 years ago Updated 1 year ago

Don't set scissor rect when clearing entire picture cache tile texture

Categories

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

defect

Tracking

()

People

(Reporter: jnicol, Assigned: jnicol)

References

(Blocks 1 open bug)

Details

While investigating bug 1558374 I noticed that when clearing an entire picture cache tile texture we enable the scissor test and set the scissor rect to the full size of the invalid region. I think we should be using an unscissored clear instead.

In Renderer::draw_picture_cache_target() and Device::clear_target() we have the code to handle a None scissor rect correctly, but the value comes from here where we appear to set it to Some() unconditionally.

A corner case is what to do when the area that we wish to clear is not the entire texture, but the entire visible portion of the tile. For example on my 1080px wide phone, the second column of tiles only have a 64x512 visible area out of the 1024x512 texture. Dzmitry says in this case we should use a scissor if gpu_supports_fast_clears is false.

The severity field is not set for this bug.
:ktaeleman, could you have a look please?

For more information, please visit auto_nag documentation.

Flags: needinfo?(ktaeleman)
Severity: -- → S3
Flags: needinfo?(ktaeleman)
Priority: -- → P3
You need to log in before you can comment on or make changes to this bug.