Open Bug 909625 Opened 11 years ago Updated 2 years ago

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

Categories

(Core :: Graphics: Canvas2D, defect)

26 Branch
ARM
Gonk (Firefox OS)
defect

Tracking

()

People

(Reporter: pchang, Unassigned)

Details

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.
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
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.
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.