Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(12)

Side by Side Diff: bench/SkLinearBitmapPipelineBench.cpp

Issue 2086583002: update callers to not use SkColorProfileType (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: rm flag instead of commenting it out Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | include/core/SkColorSpace.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2016 Google Inc. 2 * Copyright 2016 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #include <memory> 8 #include <memory>
9 #include "SkColor.h" 9 #include "SkColor.h"
10 #include "SkLinearBitmapPipeline.h" 10 #include "SkLinearBitmapPipeline.h"
11 #include "SkBitmapProcShader.h" 11 #include "SkBitmapProcShader.h"
12 #include "SkPM4f.h" 12 #include "SkPM4f.h"
13 #include "Benchmark.h" 13 #include "Benchmark.h"
14 #include "SkShader.h" 14 #include "SkShader.h"
15 #include "SkImage.h" 15 #include "SkImage.h"
16 16
17 struct CommonBitmapFPBenchmark : public Benchmark { 17 struct CommonBitmapFPBenchmark : public Benchmark {
18 CommonBitmapFPBenchmark( 18 CommonBitmapFPBenchmark(
19 SkISize srcSize, 19 SkISize srcSize,
20 SkColorProfileType colorProfile, 20 bool isSRGB,
21 SkMatrix m, 21 SkMatrix m,
22 bool useBilerp, 22 bool useBilerp,
23 SkShader::TileMode xTile, 23 SkShader::TileMode xTile,
24 SkShader::TileMode yTile) 24 SkShader::TileMode yTile)
25 : fColorProfile(colorProfile) 25 : fIsSRGB(isSRGB)
26 , fM{m} 26 , fM{m}
27 , fUseBilerp{useBilerp} 27 , fUseBilerp{useBilerp}
28 , fXTile{xTile} 28 , fXTile{xTile}
29 , fYTile{yTile} { 29 , fYTile{yTile} {
30 fSrcSize = srcSize; 30 fSrcSize = srcSize;
31 } 31 }
32 32
33 static SkString tileName(const char* pre, SkShader::TileMode mode) { 33 static SkString tileName(const char* pre, SkShader::TileMode mode) {
34 SkString name{pre}; 34 SkString name{pre};
35 switch (mode) { 35 switch (mode) {
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 fBitmap.reset(new uint32_t[width * height]); 82 fBitmap.reset(new uint32_t[width * height]);
83 for (int y = 0; y < height; y++) { 83 for (int y = 0; y < height; y++) {
84 for (int x = 0; x < width; x++) { 84 for (int x = 0; x < width; x++) {
85 fBitmap[y * width + x] = (y << 8) + x + (128<<24); 85 fBitmap[y * width + x] = (y << 8) + x + (128<<24);
86 } 86 }
87 } 87 }
88 88
89 bool trash = fM.invert(&fInvert); 89 bool trash = fM.invert(&fInvert);
90 sk_ignore_unused_variable(trash); 90 sk_ignore_unused_variable(trash);
91 91
92 fInfo = SkImageInfo::MakeN32Premul(width, height, fColorProfile); 92 fInfo = SkImageInfo::MakeN32Premul(width, height, fIsSRGB ?
93 SkColorSpace::NewNamed(SkColorSpace::kSRG B_Named) : nullptr);
93 } 94 }
94 95
95 bool isSuitableFor(Backend backend) override { 96 bool isSuitableFor(Backend backend) override {
96 return backend == kNonRendering_Backend; 97 return backend == kNonRendering_Backend;
97 } 98 }
98 99
99 virtual SkString BaseName() = 0; 100 virtual SkString BaseName() = 0;
100 101
101 SkString fName; 102 SkString fName;
102 SkISize fSrcSize; 103 SkISize fSrcSize;
103 SkColorProfileType fColorProfile; 104 bool fIsSRGB;
104 SkMatrix fM; 105 SkMatrix fM;
105 SkMatrix fInvert; 106 SkMatrix fInvert;
106 bool fUseBilerp; 107 bool fUseBilerp;
107 SkShader::TileMode fXTile; 108 SkShader::TileMode fXTile;
108 SkShader::TileMode fYTile; 109 SkShader::TileMode fYTile;
109 SkImageInfo fInfo; 110 SkImageInfo fInfo;
110 std::unique_ptr<uint32_t[]> fBitmap; 111 std::unique_ptr<uint32_t[]> fBitmap;
111 }; 112 };
112 113
113 struct SkBitmapFPGeneral final : public CommonBitmapFPBenchmark { 114 struct SkBitmapFPGeneral final : public CommonBitmapFPBenchmark {
114 SkBitmapFPGeneral( 115 SkBitmapFPGeneral(
115 SkISize srcSize, 116 SkISize srcSize,
116 SkColorProfileType colorProfile, 117 bool isSRGB,
117 SkMatrix m, 118 SkMatrix m,
118 bool useBilerp, 119 bool useBilerp,
119 SkShader::TileMode xTile, 120 SkShader::TileMode xTile,
120 SkShader::TileMode yTile) 121 SkShader::TileMode yTile)
121 : CommonBitmapFPBenchmark(srcSize, colorProfile, m, useBilerp, xTile , yTile) { } 122 : CommonBitmapFPBenchmark(srcSize, isSRGB, m, useBilerp, xTile, yTil e) { }
122 123
123 SkString BaseName() override { 124 SkString BaseName() override {
124 SkString name; 125 SkString name;
125 if (fInfo.isSRGB()) { 126 if (fInfo.gammaCloseToSRGB()) {
126 name.set("sRGB"); 127 name.set("sRGB");
127 } else { 128 } else {
128 name.set("Linr"); 129 name.set("Linr");
129 } 130 }
130 return name; 131 return name;
131 } 132 }
132 133
133 void onDraw(int loops, SkCanvas*) override { 134 void onDraw(int loops, SkCanvas*) override {
134 int width = fSrcSize.fWidth; 135 int width = fSrcSize.fWidth;
135 int height = fSrcSize.fHeight; 136 int height = fSrcSize.fHeight;
(...skipping 16 matching lines...) Expand all
152 153
153 for (int n = 0; n < 1000*loops; n++) { 154 for (int n = 0; n < 1000*loops; n++) {
154 pipeline.shadeSpan4f(3, 6, FPbuffer, count); 155 pipeline.shadeSpan4f(3, 6, FPbuffer, count);
155 } 156 }
156 } 157 }
157 }; 158 };
158 159
159 struct SkBitmapFPOrigShader : public CommonBitmapFPBenchmark { 160 struct SkBitmapFPOrigShader : public CommonBitmapFPBenchmark {
160 SkBitmapFPOrigShader( 161 SkBitmapFPOrigShader(
161 SkISize srcSize, 162 SkISize srcSize,
162 SkColorProfileType colorProfile, 163 bool isSRGB,
163 SkMatrix m, 164 SkMatrix m,
164 bool useBilerp, 165 bool useBilerp,
165 SkShader::TileMode xTile, 166 SkShader::TileMode xTile,
166 SkShader::TileMode yTile) 167 SkShader::TileMode yTile)
167 : CommonBitmapFPBenchmark(srcSize, colorProfile, m, useBilerp, xTile , yTile) { } 168 : CommonBitmapFPBenchmark(srcSize, isSRGB, m, useBilerp, xTile, yTil e) { }
168 169
169 SkString BaseName() override { 170 SkString BaseName() override {
170 SkString name{"Orig"}; 171 SkString name{"Orig"};
171 return name; 172 return name;
172 } 173 }
173 174
174 void onPreDraw(SkCanvas* c) override { 175 void onPreDraw(SkCanvas* c) override {
175 CommonBitmapFPBenchmark::onPreDraw(c); 176 CommonBitmapFPBenchmark::onPreDraw(c);
176 177
177 fImage = SkImage::MakeRasterCopy( 178 fImage = SkImage::MakeRasterCopy(
(...skipping 27 matching lines...) Expand all
205 for (int n = 0; n < 1000*loops; n++) { 206 for (int n = 0; n < 1000*loops; n++) {
206 ctx->shadeSpan(3, 6, buffer4b, count); 207 ctx->shadeSpan(3, 6, buffer4b, count);
207 } 208 }
208 209
209 ctx->~Context(); 210 ctx->~Context();
210 } 211 }
211 SkPaint fPaint; 212 SkPaint fPaint;
212 sk_sp<SkImage> fImage; 213 sk_sp<SkImage> fImage;
213 }; 214 };
214 215
216 const bool gSRGB = true;
217 const bool gLinearRGB = false;
215 static SkISize srcSize = SkISize::Make(120, 100); 218 static SkISize srcSize = SkISize::Make(120, 100);
216 static SkMatrix mI = SkMatrix::I(); 219 static SkMatrix mI = SkMatrix::I();
217 DEF_BENCH(return new SkBitmapFPGeneral( 220 DEF_BENCH(return new SkBitmapFPGeneral(
218 srcSize, kSRGB_SkColorProfileType, mI, false, 221 srcSize, gSRGB, mI, false,
219 SkShader::kClamp_TileMode, SkShader::kClamp_TileMode);) 222 SkShader::kClamp_TileMode, SkShader::kClamp_TileMode);)
220 223
221 DEF_BENCH(return new SkBitmapFPGeneral( 224 DEF_BENCH(return new SkBitmapFPGeneral(
222 srcSize, kLinear_SkColorProfileType, mI, false, 225 srcSize, gLinearRGB, mI, false,
223 SkShader::kClamp_TileMode, SkShader::kClamp_TileMode);) 226 SkShader::kClamp_TileMode, SkShader::kClamp_TileMode);)
224 227
225 DEF_BENCH(return new SkBitmapFPOrigShader( 228 DEF_BENCH(return new SkBitmapFPOrigShader(
226 srcSize, kLinear_SkColorProfileType, mI, false, 229 srcSize, gLinearRGB, mI, false,
227 SkShader::kClamp_TileMode, SkShader::kClamp_TileMode);) 230 SkShader::kClamp_TileMode, SkShader::kClamp_TileMode);)
228 231
229 DEF_BENCH(return new SkBitmapFPGeneral( 232 DEF_BENCH(return new SkBitmapFPGeneral(
230 srcSize, kSRGB_SkColorProfileType, mI, true, 233 srcSize, gSRGB, mI, true,
231 SkShader::kClamp_TileMode, SkShader::kClamp_TileMode);) 234 SkShader::kClamp_TileMode, SkShader::kClamp_TileMode);)
232 235
233 DEF_BENCH(return new SkBitmapFPGeneral( 236 DEF_BENCH(return new SkBitmapFPGeneral(
234 srcSize, kLinear_SkColorProfileType, mI, true, 237 srcSize, gLinearRGB, mI, true,
235 SkShader::kClamp_TileMode, SkShader::kClamp_TileMode);) 238 SkShader::kClamp_TileMode, SkShader::kClamp_TileMode);)
236 239
237 DEF_BENCH(return new SkBitmapFPOrigShader( 240 DEF_BENCH(return new SkBitmapFPOrigShader(
238 srcSize, kLinear_SkColorProfileType, mI, true, 241 srcSize, gLinearRGB, mI, true,
239 SkShader::kClamp_TileMode, SkShader::kClamp_TileMode);) 242 SkShader::kClamp_TileMode, SkShader::kClamp_TileMode);)
240 243
241 static SkMatrix mS = SkMatrix::MakeScale(2.7f, 2.7f); 244 static SkMatrix mS = SkMatrix::MakeScale(2.7f, 2.7f);
242 DEF_BENCH(return new SkBitmapFPGeneral( 245 DEF_BENCH(return new SkBitmapFPGeneral(
243 srcSize, kSRGB_SkColorProfileType, mS, false, 246 srcSize, gSRGB, mS, false,
244 SkShader::kClamp_TileMode, SkShader::kClamp_TileMode);) 247 SkShader::kClamp_TileMode, SkShader::kClamp_TileMode);)
245 248
246 DEF_BENCH(return new SkBitmapFPGeneral( 249 DEF_BENCH(return new SkBitmapFPGeneral(
247 srcSize, kLinear_SkColorProfileType, mS, false, 250 srcSize, gLinearRGB, mS, false,
248 SkShader::kClamp_TileMode, SkShader::kClamp_TileMode);) 251 SkShader::kClamp_TileMode, SkShader::kClamp_TileMode);)
249 252
250 DEF_BENCH(return new SkBitmapFPOrigShader( 253 DEF_BENCH(return new SkBitmapFPOrigShader(
251 srcSize, kLinear_SkColorProfileType, mS, false, 254 srcSize, gLinearRGB, mS, false,
252 SkShader::kClamp_TileMode, SkShader::kClamp_TileMode);) 255 SkShader::kClamp_TileMode, SkShader::kClamp_TileMode);)
253 256
254 DEF_BENCH(return new SkBitmapFPGeneral( 257 DEF_BENCH(return new SkBitmapFPGeneral(
255 srcSize, kSRGB_SkColorProfileType, mS, true, 258 srcSize, gSRGB, mS, true,
256 SkShader::kClamp_TileMode, SkShader::kClamp_TileMode);) 259 SkShader::kClamp_TileMode, SkShader::kClamp_TileMode);)
257 260
258 DEF_BENCH(return new SkBitmapFPGeneral( 261 DEF_BENCH(return new SkBitmapFPGeneral(
259 srcSize, kLinear_SkColorProfileType, mS, true, 262 srcSize, gLinearRGB, mS, true,
260 SkShader::kClamp_TileMode, SkShader::kClamp_TileMode);) 263 SkShader::kClamp_TileMode, SkShader::kClamp_TileMode);)
261 264
262 DEF_BENCH(return new SkBitmapFPOrigShader( 265 DEF_BENCH(return new SkBitmapFPOrigShader(
263 srcSize, kLinear_SkColorProfileType, mS, true, 266 srcSize, gLinearRGB, mS, true,
264 SkShader::kClamp_TileMode, SkShader::kClamp_TileMode);) 267 SkShader::kClamp_TileMode, SkShader::kClamp_TileMode);)
265 268
266 // Repeat 269 // Repeat
267 DEF_BENCH(return new SkBitmapFPGeneral( 270 DEF_BENCH(return new SkBitmapFPGeneral(
268 srcSize, kSRGB_SkColorProfileType, mS, false, 271 srcSize, gSRGB, mS, false,
269 SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode);) 272 SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode);)
270 273
271 DEF_BENCH(return new SkBitmapFPGeneral( 274 DEF_BENCH(return new SkBitmapFPGeneral(
272 srcSize, kLinear_SkColorProfileType, mS, false, 275 srcSize, gLinearRGB, mS, false,
273 SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode);) 276 SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode);)
274 277
275 DEF_BENCH(return new SkBitmapFPOrigShader( 278 DEF_BENCH(return new SkBitmapFPOrigShader(
276 srcSize, kLinear_SkColorProfileType, mS, false, 279 srcSize, gLinearRGB, mS, false,
277 SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode);) 280 SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode);)
278 281
279 DEF_BENCH(return new SkBitmapFPGeneral( 282 DEF_BENCH(return new SkBitmapFPGeneral(
280 srcSize, kSRGB_SkColorProfileType, mS, true, 283 srcSize, gSRGB, mS, true,
281 SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode);) 284 SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode);)
282 285
283 DEF_BENCH(return new SkBitmapFPGeneral( 286 DEF_BENCH(return new SkBitmapFPGeneral(
284 srcSize, kLinear_SkColorProfileType, mS, true, 287 srcSize, gLinearRGB, mS, true,
285 SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode);) 288 SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode);)
286 289
287 DEF_BENCH(return new SkBitmapFPOrigShader( 290 DEF_BENCH(return new SkBitmapFPOrigShader(
288 srcSize, kLinear_SkColorProfileType, mS, true, 291 srcSize, gLinearRGB, mS, true,
289 SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode);) 292 SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode);)
290 293
291 static SkMatrix rotate(SkScalar r) { 294 static SkMatrix rotate(SkScalar r) {
292 SkMatrix m; 295 SkMatrix m;
293 m.setRotate(30); 296 m.setRotate(30);
294 return m; 297 return m;
295 } 298 }
296 299
297 static SkMatrix mR = rotate(30); 300 static SkMatrix mR = rotate(30);
298 DEF_BENCH(return new SkBitmapFPGeneral( 301 DEF_BENCH(return new SkBitmapFPGeneral(
299 srcSize, kSRGB_SkColorProfileType, mR, false, 302 srcSize, gSRGB, mR, false,
300 SkShader::kClamp_TileMode, SkShader::kClamp_TileMode);) 303 SkShader::kClamp_TileMode, SkShader::kClamp_TileMode);)
301 304
302 DEF_BENCH(return new SkBitmapFPGeneral( 305 DEF_BENCH(return new SkBitmapFPGeneral(
303 srcSize, kLinear_SkColorProfileType, mR, false, 306 srcSize, gLinearRGB, mR, false,
304 SkShader::kClamp_TileMode, SkShader::kClamp_TileMode);) 307 SkShader::kClamp_TileMode, SkShader::kClamp_TileMode);)
305 308
306 DEF_BENCH(return new SkBitmapFPOrigShader( 309 DEF_BENCH(return new SkBitmapFPOrigShader(
307 srcSize, kLinear_SkColorProfileType, mR, false, 310 srcSize, gLinearRGB, mR, false,
308 SkShader::kClamp_TileMode, SkShader::kClamp_TileMode);) 311 SkShader::kClamp_TileMode, SkShader::kClamp_TileMode);)
309 312
310 DEF_BENCH(return new SkBitmapFPGeneral( 313 DEF_BENCH(return new SkBitmapFPGeneral(
311 srcSize, kSRGB_SkColorProfileType, mR, true, 314 srcSize, gSRGB, mR, true,
312 SkShader::kClamp_TileMode, SkShader::kClamp_TileMode);) 315 SkShader::kClamp_TileMode, SkShader::kClamp_TileMode);)
313 316
314 DEF_BENCH(return new SkBitmapFPGeneral( 317 DEF_BENCH(return new SkBitmapFPGeneral(
315 srcSize, kLinear_SkColorProfileType, mR, true, 318 srcSize, gLinearRGB, mR, true,
316 SkShader::kClamp_TileMode, SkShader::kClamp_TileMode);) 319 SkShader::kClamp_TileMode, SkShader::kClamp_TileMode);)
317 320
318 DEF_BENCH(return new SkBitmapFPOrigShader( 321 DEF_BENCH(return new SkBitmapFPOrigShader(
319 srcSize, kLinear_SkColorProfileType, mR, true, 322 srcSize, gLinearRGB, mR, true,
320 SkShader::kClamp_TileMode, SkShader::kClamp_TileMode);) 323 SkShader::kClamp_TileMode, SkShader::kClamp_TileMode);)
321 324
322 // Repeat 325 // Repeat
323 DEF_BENCH(return new SkBitmapFPGeneral( 326 DEF_BENCH(return new SkBitmapFPGeneral(
324 srcSize, kSRGB_SkColorProfileType, mR, false, 327 srcSize, gSRGB, mR, false,
325 SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode);) 328 SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode);)
326 329
327 DEF_BENCH(return new SkBitmapFPGeneral( 330 DEF_BENCH(return new SkBitmapFPGeneral(
328 srcSize, kLinear_SkColorProfileType, mR, false, 331 srcSize, gLinearRGB, mR, false,
329 SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode);) 332 SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode);)
330 333
331 DEF_BENCH(return new SkBitmapFPOrigShader( 334 DEF_BENCH(return new SkBitmapFPOrigShader(
332 srcSize, kLinear_SkColorProfileType, mR, false, 335 srcSize, gLinearRGB, mR, false,
333 SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode);) 336 SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode);)
334 337
335 DEF_BENCH(return new SkBitmapFPGeneral( 338 DEF_BENCH(return new SkBitmapFPGeneral(
336 srcSize, kSRGB_SkColorProfileType, mR, true, 339 srcSize, gSRGB, mR, true,
337 SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode);) 340 SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode);)
338 341
339 DEF_BENCH(return new SkBitmapFPGeneral( 342 DEF_BENCH(return new SkBitmapFPGeneral(
340 srcSize, kLinear_SkColorProfileType, mR, true, 343 srcSize, gLinearRGB, mR, true,
341 SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode);) 344 SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode);)
342 345
343 DEF_BENCH(return new SkBitmapFPOrigShader( 346 DEF_BENCH(return new SkBitmapFPOrigShader(
344 srcSize, kLinear_SkColorProfileType, mR, true, 347 srcSize, gLinearRGB, mR, true,
345 SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode);) 348 SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode);)
OLDNEW
« no previous file with comments | « no previous file | include/core/SkColorSpace.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698