return nullptr;
}
- sk_sp<SkData> encoded(this->readByteArrayAsData());
- if (encoded->size() == 0) {
- // The image could not be encoded at serialization time - return an empty placeholder.
+ auto placeholder = [=] {
return SkImage::MakeFromGenerator(
new EmptyImageGenerator(SkImageInfo::MakeN32Premul(width, height))).release();
+ };
+
+ uint32_t encoded_size = this->getArrayCount();
+ if (encoded_size == 0) {
+ // The image could not be encoded at serialization time - return an empty placeholder.
+ (void)this->readUInt(); // Swallow that encoded_size == 0 sentinel.
+ return placeholder();
}
+ if (encoded_size == 1) {
+ // We had to encode the image as raw pixels via SkBitmap.
+ (void)this->readUInt(); // Swallow that encoded_size == 1 sentinel.
+ SkBitmap bm;
+ if (SkBitmap::ReadRawPixels(this, &bm)) {
+ return SkImage::MakeFromBitmap(bm).release();
+ }
+ return placeholder();
+ }
+
+ // The SkImage encoded itself.
+ sk_sp<SkData> encoded(this->readByteArrayAsData());
int originX = this->read32();
int originY = this->read32();
"serialize-8888",
"gm",
"_",
- "not_native32_bitmap_config",
- "serialize-8888",
- "gm",
- "_",
"bleed_image",
"serialize-8888",
"gm",
"_",
- "bleed_alpha_image",
- "serialize-8888",
- "gm",
- "_",
- "bleed_alpha_image_shader",
- "serialize-8888",
- "gm",
- "_",
"c_gms",
"serialize-8888",
"gm",
"serialize-8888",
"gm",
"_",
- "verylargebitmap",
+ "bleed_alpha_image",
"serialize-8888",
"gm",
"_",
- "verylarge_picture_image",
+ "bleed_alpha_image_shader",
"sp-8888",
"gm",
"_",
"serialize-8888",
"gm",
"_",
- "not_native32_bitmap_config",
- "serialize-8888",
- "gm",
- "_",
"bleed_image",
"serialize-8888",
"gm",
"_",
- "bleed_alpha_image",
- "serialize-8888",
- "gm",
- "_",
- "bleed_alpha_image_shader",
- "serialize-8888",
- "gm",
- "_",
"c_gms",
"serialize-8888",
"gm",
"serialize-8888",
"gm",
"_",
- "verylargebitmap",
+ "bleed_alpha_image",
"serialize-8888",
"gm",
"_",
- "verylarge_picture_image",
+ "bleed_alpha_image_shader",
"sp-8888",
"gm",
"_",
"serialize-8888",
"gm",
"_",
- "not_native32_bitmap_config",
- "serialize-8888",
- "gm",
- "_",
"bleed_image",
"serialize-8888",
"gm",
"_",
- "bleed_alpha_image",
- "serialize-8888",
- "gm",
- "_",
- "bleed_alpha_image_shader",
- "serialize-8888",
- "gm",
- "_",
"c_gms",
"serialize-8888",
"gm",
"serialize-8888",
"gm",
"_",
- "verylargebitmap",
+ "bleed_alpha_image",
"serialize-8888",
"gm",
"_",
- "verylarge_picture_image",
+ "bleed_alpha_image_shader",
"sp-8888",
"gm",
"_",
"serialize-8888",
"gm",
"_",
- "not_native32_bitmap_config",
- "serialize-8888",
- "gm",
- "_",
"bleed_image",
"serialize-8888",
"gm",
"_",
- "bleed_alpha_image",
- "serialize-8888",
- "gm",
- "_",
- "bleed_alpha_image_shader",
- "serialize-8888",
- "gm",
- "_",
"c_gms",
"serialize-8888",
"gm",
"serialize-8888",
"gm",
"_",
- "verylargebitmap",
+ "bleed_alpha_image",
"serialize-8888",
"gm",
"_",
- "verylarge_picture_image",
+ "bleed_alpha_image_shader",
"sp-8888",
"gm",
"_",
"serialize-8888",
"gm",
"_",
- "not_native32_bitmap_config",
- "serialize-8888",
- "gm",
- "_",
"bleed_image",
"serialize-8888",
"gm",
"_",
- "bleed_alpha_image",
- "serialize-8888",
- "gm",
- "_",
- "bleed_alpha_image_shader",
- "serialize-8888",
- "gm",
- "_",
"c_gms",
"serialize-8888",
"gm",
"serialize-8888",
"gm",
"_",
- "verylargebitmap",
+ "bleed_alpha_image",
"serialize-8888",
"gm",
"_",
- "verylarge_picture_image",
+ "bleed_alpha_image_shader",
"sp-8888",
"gm",
"_",
"serialize-8888",
"gm",
"_",
- "not_native32_bitmap_config",
- "serialize-8888",
- "gm",
- "_",
"bleed_image",
"serialize-8888",
"gm",
"_",
- "bleed_alpha_image",
- "serialize-8888",
- "gm",
- "_",
- "bleed_alpha_image_shader",
- "serialize-8888",
- "gm",
- "_",
"c_gms",
"serialize-8888",
"gm",
"serialize-8888",
"gm",
"_",
- "verylargebitmap",
+ "bleed_alpha_image",
"serialize-8888",
"gm",
"_",
- "verylarge_picture_image",
+ "bleed_alpha_image_shader",
"sp-8888",
"gm",
"_",
"serialize-8888",
"gm",
"_",
- "not_native32_bitmap_config",
- "serialize-8888",
- "gm",
- "_",
"bleed_image",
"serialize-8888",
"gm",
"_",
- "bleed_alpha_image",
- "serialize-8888",
- "gm",
- "_",
- "bleed_alpha_image_shader",
- "serialize-8888",
- "gm",
- "_",
"c_gms",
"serialize-8888",
"gm",
"serialize-8888",
"gm",
"_",
- "verylargebitmap",
+ "bleed_alpha_image",
"serialize-8888",
"gm",
"_",
- "verylarge_picture_image",
+ "bleed_alpha_image_shader",
"sp-8888",
"gm",
"_",
"serialize-8888",
"gm",
"_",
- "not_native32_bitmap_config",
- "serialize-8888",
- "gm",
- "_",
"bleed_image",
"serialize-8888",
"gm",
"_",
- "bleed_alpha_image",
- "serialize-8888",
- "gm",
- "_",
- "bleed_alpha_image_shader",
- "serialize-8888",
- "gm",
- "_",
"c_gms",
"serialize-8888",
"gm",
"serialize-8888",
"gm",
"_",
- "verylargebitmap",
+ "bleed_alpha_image",
"serialize-8888",
"gm",
"_",
- "verylarge_picture_image",
+ "bleed_alpha_image_shader",
"sp-8888",
"gm",
"_",
"serialize-8888",
"gm",
"_",
- "not_native32_bitmap_config",
- "serialize-8888",
- "gm",
- "_",
"bleed_image",
"serialize-8888",
"gm",
"_",
- "bleed_alpha_image",
- "serialize-8888",
- "gm",
- "_",
- "bleed_alpha_image_shader",
- "serialize-8888",
- "gm",
- "_",
"c_gms",
"serialize-8888",
"gm",
"gm",
"_",
"fontmgr_iter",
- "serialize-8888",
- "gm",
- "_",
- "verylargebitmap",
- "serialize-8888",
- "gm",
- "_",
- "verylarge_picture_image",
"sp-8888",
"gm",
"_",
"serialize-8888",
"gm",
"_",
- "not_native32_bitmap_config",
- "serialize-8888",
- "gm",
- "_",
"bleed_image",
"serialize-8888",
"gm",
"_",
- "bleed_alpha_image",
- "serialize-8888",
- "gm",
- "_",
- "bleed_alpha_image_shader",
- "serialize-8888",
- "gm",
- "_",
"c_gms",
"serialize-8888",
"gm",
"gm",
"_",
"fontmgr_iter",
- "serialize-8888",
- "gm",
- "_",
- "verylargebitmap",
- "serialize-8888",
- "gm",
- "_",
- "verylarge_picture_image",
"sp-8888",
"gm",
"_",
"serialize-8888",
"gm",
"_",
- "not_native32_bitmap_config",
- "serialize-8888",
- "gm",
- "_",
"bleed_image",
"serialize-8888",
"gm",
"_",
- "bleed_alpha_image",
- "serialize-8888",
- "gm",
- "_",
- "bleed_alpha_image_shader",
- "serialize-8888",
- "gm",
- "_",
"c_gms",
"serialize-8888",
"gm",
"gm",
"_",
"fontmgr_iter",
- "serialize-8888",
- "gm",
- "_",
- "verylargebitmap",
- "serialize-8888",
- "gm",
- "_",
- "verylarge_picture_image",
"sp-8888",
"gm",
"_",
"serialize-8888",
"gm",
"_",
- "not_native32_bitmap_config",
- "serialize-8888",
- "gm",
- "_",
"bleed_image",
"serialize-8888",
"gm",
"_",
- "bleed_alpha_image",
- "serialize-8888",
- "gm",
- "_",
- "bleed_alpha_image_shader",
- "serialize-8888",
- "gm",
- "_",
"c_gms",
"serialize-8888",
"gm",
"serialize-8888",
"gm",
"_",
- "verylargebitmap",
+ "bleed_alpha_image",
"serialize-8888",
"gm",
"_",
- "verylarge_picture_image",
+ "bleed_alpha_image_shader",
"sp-8888",
"gm",
"_",
"serialize-8888",
"gm",
"_",
- "not_native32_bitmap_config",
- "serialize-8888",
- "gm",
- "_",
"bleed_image",
"serialize-8888",
"gm",
"_",
- "bleed_alpha_image",
- "serialize-8888",
- "gm",
- "_",
- "bleed_alpha_image_shader",
- "serialize-8888",
- "gm",
- "_",
"c_gms",
"serialize-8888",
"gm",
"serialize-8888",
"gm",
"_",
- "verylargebitmap",
+ "bleed_alpha_image",
"serialize-8888",
"gm",
"_",
- "verylarge_picture_image",
+ "bleed_alpha_image_shader",
"sp-8888",
"gm",
"_",
"serialize-8888",
"gm",
"_",
- "not_native32_bitmap_config",
- "serialize-8888",
- "gm",
- "_",
"bleed_image",
"serialize-8888",
"gm",
"_",
- "bleed_alpha_image",
- "serialize-8888",
- "gm",
- "_",
- "bleed_alpha_image_shader",
- "serialize-8888",
- "gm",
- "_",
"c_gms",
"serialize-8888",
"gm",
"serialize-8888",
"gm",
"_",
- "verylargebitmap",
+ "bleed_alpha_image",
"serialize-8888",
"gm",
"_",
- "verylarge_picture_image",
+ "bleed_alpha_image_shader",
"sp-8888",
"gm",
"_",
"serialize-8888",
"gm",
"_",
- "not_native32_bitmap_config",
- "serialize-8888",
- "gm",
- "_",
"bleed_image",
"serialize-8888",
"gm",
"_",
- "bleed_alpha_image",
- "serialize-8888",
- "gm",
- "_",
- "bleed_alpha_image_shader",
- "serialize-8888",
- "gm",
- "_",
"c_gms",
"serialize-8888",
"gm",
"serialize-8888",
"gm",
"_",
- "verylargebitmap",
+ "bleed_alpha_image",
"serialize-8888",
"gm",
"_",
- "verylarge_picture_image",
+ "bleed_alpha_image_shader",
"sp-8888",
"gm",
"_",
"serialize-8888",
"gm",
"_",
- "not_native32_bitmap_config",
- "serialize-8888",
- "gm",
- "_",
"bleed_image",
"serialize-8888",
"gm",
"_",
- "bleed_alpha_image",
- "serialize-8888",
- "gm",
- "_",
- "bleed_alpha_image_shader",
- "serialize-8888",
- "gm",
- "_",
"c_gms",
"serialize-8888",
"gm",
"serialize-8888",
"gm",
"_",
+ "bleed_alpha_image",
+ "serialize-8888",
+ "gm",
+ "_",
+ "bleed_alpha_image_shader",
+ "serialize-8888",
+ "gm",
+ "_",
"verylargebitmap",
"serialize-8888",
"gm",
"serialize-8888",
"gm",
"_",
- "not_native32_bitmap_config",
- "serialize-8888",
- "gm",
- "_",
"bleed_image",
"serialize-8888",
"gm",
"_",
- "bleed_alpha_image",
- "serialize-8888",
- "gm",
- "_",
- "bleed_alpha_image_shader",
- "serialize-8888",
- "gm",
- "_",
"c_gms",
"serialize-8888",
"gm",
"serialize-8888",
"gm",
"_",
+ "bleed_alpha_image",
+ "serialize-8888",
+ "gm",
+ "_",
+ "bleed_alpha_image_shader",
+ "serialize-8888",
+ "gm",
+ "_",
"verylargebitmap",
"serialize-8888",
"gm",
"serialize-8888",
"gm",
"_",
- "not_native32_bitmap_config",
- "serialize-8888",
- "gm",
- "_",
"bleed_image",
"serialize-8888",
"gm",
"_",
- "bleed_alpha_image",
- "serialize-8888",
- "gm",
- "_",
- "bleed_alpha_image_shader",
- "serialize-8888",
- "gm",
- "_",
"c_gms",
"serialize-8888",
"gm",
"serialize-8888",
"gm",
"_",
+ "bleed_alpha_image",
+ "serialize-8888",
+ "gm",
+ "_",
+ "bleed_alpha_image_shader",
+ "serialize-8888",
+ "gm",
+ "_",
"verylargebitmap",
"serialize-8888",
"gm",
blacklist.extend('_ gm _ composeshader_bitmap'.split(' '))
# skia:4095
- for test in ['not_native32_bitmap_config',
- 'bleed_image',
- 'bleed_alpha_image',
- 'bleed_alpha_image_shader',
+ for test in ['bleed_image',
'c_gms',
'colortype',
'colortype_xfermodes',
'fontmgr_bounds_1_-0.25',
'fontmgr_bounds',
'fontmgr_match',
- 'fontmgr_iter',
- 'verylargebitmap', # Windows only.
- 'verylarge_picture_image']: # Windows only.
+ 'fontmgr_iter']:
blacklist.extend(['serialize-8888', 'gm', '_', test])
+ if 'Mac' not in bot:
+ for test in ['bleed_alpha_image', 'bleed_alpha_image_shader']:
+ blacklist.extend(['serialize-8888', 'gm', '_', test])
+ if 'Win' in bot:
+ for test in ['verylargebitmap', 'verylarge_picture_image']:
+ blacklist.extend(['serialize-8888', 'gm', '_', test])
+
# skia:4769
for test in ['drawfilter']:
blacklist.extend([ 'sp-8888', 'gm', '_', test])
match.extend(['~Once', '~Shared']) # Not sure what's up with these tests.
if 'TSAN' in bot:
- match.extend(['~ReadWriteAlpha']) # Flaky on TSAN-covered on nvidia bots.
+ match.extend(['~ReadWriteAlpha']) # Flaky on TSAN-covered on nvidia bots.
if blacklist:
args.append('--blacklist')