Closed Bug 1480616 Opened 7 years ago Closed 11 months ago

[blob-img] Avoid redrawing entire source for filter inputs for each tile.

Categories

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

63 Branch
enhancement

Tracking

()

RESOLVED FIXED
132 Branch
Tracking Status
firefox-esr115 --- wontfix
firefox-esr128 --- wontfix
firefox63 --- wontfix
firefox130 --- wontfix
firefox131 --- wontfix
firefox132 --- fixed

People

(Reporter: jrmuizel, Assigned: ahale)

References

Details

Currently we redraw the entire source for filter inputs for each tile. We can avoid this with the following scheme: - Add BeginShared(), EndSharedSource(SourceSurface *) functions to DrawTarget - In DrawTargetRecording each BeginShared stores an incrementing id to the command stream - When we encounter a BeginShared during replay we take a lock on a shared array. If the shared surface is stored in the slot for that id than we take it out, otherwise we replay the commands between BeginShared and EndSharedSource(). We store the resulting SourceSurface in the slot and release the lock.
Blocks: 1455427
Priority: -- → P3
Severity: normal → S3

With gfx.webrender.svg-filter-effects enabled, the source picture rendering is aggressively clipped according to the visible rect (which is itself limited by tile bounds), so this shouldn't be very costly in most cases; we're not re-rendering the entire thing, just the portion relevant to this tile.

Assignee: nobody → ahale
Status: NEW → RESOLVED
Closed: 11 months ago
Depends on: 1906212
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.