SVG graphs broken with Webrender enabled
Categories
(Core :: Graphics: WebRender, defect, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox-esr60 | --- | unaffected |
firefox67 | --- | unaffected |
firefox68 | --- | unaffected |
firefox69 | --- | verified |
People
(Reporter: alberts, Assigned: gw)
References
(Regression, )
Details
(Keywords: nightly-community, regression)
Attachments
(2 files)
Firefox Nightly 69.0a1 (2019-06-13); Webrender enabled; macOS latest
Page: https://www.shodan.io/report/89bnfUyJ
Many of the SVG elements are only partly rendered while scrolling up and down. Resizing the window fixes the graphs in the viewport.
Comment 1•5 years ago
•
|
||
Confirmed on
- Debian Testing, KDE, X11, Macbook Pro
- Win10, GTX1060
Not fixed by bug 1559284 comment 11.
Reporter | ||
Comment 3•5 years ago
|
||
found another one (just in case you can't reproduce on the first link): https://2019.stateofcss.com/demographics/
Comment 4•5 years ago
|
||
I can't reproduce so far, keeping the needinfo to check again later.
Comment 5•5 years ago
|
||
Win10, GTX1060
mozregression --launch 2019-06-14 --pref gfx.webrender.all:true -a https://www.shodan.io/report/89bnfUyJ
Assignee | ||
Comment 6•5 years ago
|
||
I can reproduce this on the https://www.shodan.io/report/89bnfUyJ link above, doing some investigation now. I don't know the blob code very well, but I'm wondering if I need to adjust the way SetBlobImageVisibleArea is used, in order to handle picture caching now rasterizing tiles that are (partially) outside the screen viewport? I'll start looking there and see what I find.
Assignee | ||
Comment 7•5 years ago
|
||
It doesn't appear related to SetBlobImageVisibleArea - there are calls to that, but in this test case it never seems to remove tiles.
Visually, it looks like the blobs are being clipped to a viewport that will need adjustment, but I'm not sure how / where yet.
Assignee | ||
Comment 8•5 years ago
|
||
Current theory: resource_cache.is_image_dirty() fails in some cases with blob images, which results in picture caching not knowing that an image dependency has changed and needs to be redrawn.
Assignee | ||
Comment 9•5 years ago
|
||
It does seem like resource_cache.is_image_dirty() is incorrect. I think there are cases where there are texture cache updates for blobs, which are not detected as dirty images and invalidating tiles.
This is somewhat tricky due to ordering - we need to know this before the resource block / texture cache update occurs. I think all the information is available, but I don't know the blob code very well.
Assignee | ||
Comment 10•5 years ago
|
||
This patch fixes two issues with blob images + new picture caching.
-
The logic that determines a conservative set of visible tiles
for tiled / blob images was no longer correct. It was relying
on the bounds of a single tile to build the conservative rect.
Instead, take the overall primitive world bounds and derive a
conservative set of visible tiles from this. -
The logic to detect if an image was dirty was incorrect, and
somewhat error prone. It now maintains a set of dirty images
that have been requested. The image key dependencies are then
checked during the tile cache post_update step.
Assignee | ||
Comment 11•5 years ago
|
||
I was able to reproduce the bug report on both pages listed above. However, with the attached patch applied, I can no longer reproduce the issue on either page.
Assignee | ||
Updated•5 years ago
|
Comment 12•5 years ago
|
||
Pushed by gwatson@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/c79599cda731 SVG graphs broken with Webrender enabled. r=nical
Comment 13•5 years ago
|
||
bugherder |
Reporter | ||
Comment 14•5 years ago
|
||
Thank you! 👌
Updated•5 years ago
|
Updated•5 years ago
|
Comment 15•5 years ago
|
||
Hello,
I can confirm this issue is fixed on Win 10 x64 I used an Nvidia GeForce 1050 GTX.
Description
•