[SkiaGL]Implement SkThreadCanvas to have a separate thread handle flush task

NEW
Unassigned

Status

()

Core
Canvas: 2D
5 years ago
5 years ago

People

(Reporter: pchang, Unassigned)

Tracking

26 Branch
ARM
Gonk (Firefox OS)
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

(Reporter)

Description

5 years ago
Right now the bottleneck of some Canvas benchmarks, like fishIE, are flush draw calls when skiaGl enabled.
Investigate using another thread to handle flush task and doesn't block main thread.
(Reporter)

Comment 1

5 years ago
Running FishIE on Leo with skiaGL, the following are the measurement result.

FishIE/SkiaGL                            
  - base case                            20-22 fps
FishIE/SkiaGL
  - Disable DrawTargetSkia flush         28-29 fps
Therefore, we could get (28-22)/20= 30% improvement if we use another thread to handle flush task.

Till now I will check
a. Checking the flush behavior inside SkDeferredCanvas
b. the right place to call flush by using another thread to wait or leverage the triple buffer of glstream

Comment 2

5 years ago
Please describe your proposal first. Move only glFlush to another thread does not make sense to me, you might need to move whole context into another thread.
You need to log in before you can comment on or make changes to this bug.