From e9f74b89c09772dd5abae1c0709c711d7cdb6535 Mon Sep 17 00:00:00 2001 From: Mike Klein Date: Tue, 25 Oct 2016 13:31:21 -0400 Subject: SkRasterPipeline::compile(). I'm not yet caching these in the blitter, and speed is essentially unchanged in the bench where I am now building and compiling the pipeline only once. This may not be able to stay a simple std::function after I figure out caching, but for now it's a nice fit. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3911 Change-Id: I9545af589f73baf9f17cb4e6ace9a814c2478fe9 Reviewed-on: https://skia-review.googlesource.com/3911 Reviewed-by: Herb Derby Commit-Queue: Mike Klein --- bench/SkRasterPipelineBench.cpp | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'bench/SkRasterPipelineBench.cpp') diff --git a/bench/SkRasterPipelineBench.cpp b/bench/SkRasterPipelineBench.cpp index bf71d9a8d9..bfe2110362 100644 --- a/bench/SkRasterPipelineBench.cpp +++ b/bench/SkRasterPipelineBench.cpp @@ -32,16 +32,18 @@ public: } void onDraw(int loops, SkCanvas*) override { + SkRasterPipeline p; + p.append(SkRasterPipeline::load_s_srgb, src); + p.append(SkRasterPipeline:: scale_u8, mask); + p.append(kF16 ? SkRasterPipeline::load_d_f16 + : SkRasterPipeline::load_d_srgb, dst); + p.append(SkRasterPipeline:: srcover); + p.append(kF16 ? SkRasterPipeline::store_f16 + : SkRasterPipeline::store_srgb, dst); + auto compiled = p.compile(); + while (loops --> 0) { - SkRasterPipeline p; - p.append(SkRasterPipeline::load_s_srgb, src); - p.append(SkRasterPipeline:: scale_u8, mask); - p.append(kF16 ? SkRasterPipeline::load_d_f16 - : SkRasterPipeline::load_d_srgb, dst); - p.append(SkRasterPipeline:: srcover); - p.append(kF16 ? SkRasterPipeline::store_f16 - : SkRasterPipeline::store_srgb, dst); - p.run(N); + compiled(0, N); } } }; -- cgit v1.2.3