Open Bug 1528376 Opened 6 years ago Updated 2 years ago

Categories

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

defect

Tracking

()

People

(Reporter: jrmuizel, Unassigned)

References

(Blocks 2 open bugs)

Details

I see ~13ms GPU time
Most of the time is in B_Image

Picture caching doesn't help

Summary: High GPU usage on https://pressprogress.ca/jason-kenneys-labour-reforms-are-arbitrary-and-ridiculous-workers-rights-advocates-say/ with picture caching disabled → High GPU usage on https://pressprogress.ca/jason-kenneys-labour-reforms-are-arbitrary-and-ridiculous-workers-rights-advocates-say/
Priority: -- → P4

Looking at this page in renderdoc, we first generate a blurred version of the portrait at the top, then render it to the windows using the blend brush just before covering it entirely with a very large linear gradient (which I thought was a solid color until I wondered why it didn't get batched with other solid rectangles) and proceeding with the visible elements of the page. The blur and blend aren't cached.

There is indeed a DOM node with an image and the following css properties:

width: 100%;
height: 85%;
-webkit-filter: blur(60px);
filter: blur(60px) saturate(1.2);
opacity: 0.3;
-webkit-transform: translate3d(0,0,0);

Which id contained into a div:

height: 900px;
width: 120%;
position: fixed;
overflow: hidden;
top: -10%;
left: -100px;
opacity: 1;
transition: all 0.5s ease-in 5s;
-webkit-transition: all 0.5s ease-in 5s;
display: block;

The css for the big gradient is:

position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
background: linear-gradient(to bottom, rgba(255,255,255,0) ,rgba(255,255,255,1) 750px);
background: -webkit-linear-gradient(to bottom, rgba(255,255,255,0) ,rgba(255,255,255,1) 750px);

The hidden blurred thing being position:fixed, it always stays in the display port and trashes cached picture tiles.

Not sure whether it's worth optimizing for something like this. Since The "gradient" is not fully opaque we can't do any occlusion culling here. We could figure out why the filters aren't cached or do some optimization on the filters (why not apply color transformations like saturate on the down-scaled versions if we are blurring for instance).

Blocks: wr-67
No longer blocks: stage-wr-trains
Priority: P4 → P3
Blocks: wr-68
No longer blocks: wr-67
Blocks: wr-intel-mvp
No longer blocks: wr-intel
Blocks: wr-70
No longer blocks: wr-68
No longer blocks: wr-intel-mvp
Blocks: wr-intel
No longer blocks: wr-70
No longer blocks: wr-intel
Blocks: wr-gpu-time
No longer blocks: wr-perf
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.