Reland "call skcms_OptimizeForSpeed()"
This is a reland of 3b8feb331a
Original change's description:
> call skcms_OptimizeForSpeed()
>
> I've guarded src and dst separately, so that we can land,
> rebaseline just the src change, and then later (when it
> does something), rebaseline optimizing dst separately.
>
> Small threshold tweak to keep a unit test passing.
>
> Change-Id: I57cc43c54b6065f58fa8f9448ea1d73fc42505f0
> Reviewed-on: https://skia-review.googlesource.com/123181
> Commit-Queue: Mike Klein <mtklein@chromium.org>
> Reviewed-by: Brian Osman <brianosman@google.com>
Change-Id: Ia29b4c941e121486a627ac7221947f4a452211ad
Reviewed-on: https://skia-review.googlesource.com/123480
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
This commit is contained in:
parent
b14e7b4785
commit
55d330c32d
@ -19,6 +19,14 @@ public:
|
|||||||
, fDstProfile(dstProfile)
|
, fDstProfile(dstProfile)
|
||||||
, fPremulFormat(premulFormat) {
|
, fPremulFormat(premulFormat) {
|
||||||
skcms_EnsureUsableAsDestination(&fDstProfile, &skcms_sRGB_profile);
|
skcms_EnsureUsableAsDestination(&fDstProfile, &skcms_sRGB_profile);
|
||||||
|
|
||||||
|
#ifndef SK_DONT_OPTIMIZE_SRC_PROFILES_FOR_SPEED
|
||||||
|
skcms_OptimizeForSpeed(&fSrcProfile);
|
||||||
|
#endif
|
||||||
|
#ifndef SK_DONT_OPTIMIZE_DST_PROFILES_FOR_SPEED
|
||||||
|
// (This doesn't do anything yet, but we'd sure like it to.)
|
||||||
|
skcms_OptimizeForSpeed(&fDstProfile);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
bool apply(ColorFormat, void*, ColorFormat, const void*, int, SkAlphaType) const override;
|
bool apply(ColorFormat, void*, ColorFormat, const void*, int, SkAlphaType) const override;
|
||||||
|
@ -1126,10 +1126,6 @@ static sk_sp<SkImage> create_picture_image(sk_sp<SkColorSpace> space) {
|
|||||||
nullptr, nullptr, SkImage::BitDepth::kU8, std::move(space));
|
nullptr, nullptr, SkImage::BitDepth::kU8, std::move(space));
|
||||||
};
|
};
|
||||||
|
|
||||||
static inline bool almost_equal(int a, int b) {
|
|
||||||
return SkTAbs(a - b) <= 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
DEF_TEST(Image_ColorSpace, r) {
|
DEF_TEST(Image_ColorSpace, r) {
|
||||||
sk_sp<SkColorSpace> srgb = SkColorSpace::MakeSRGB();
|
sk_sp<SkColorSpace> srgb = SkColorSpace::MakeSRGB();
|
||||||
sk_sp<SkImage> image = GetResourceAsImage("images/mandrill_512_q075.jpg");
|
sk_sp<SkImage> image = GetResourceAsImage("images/mandrill_512_q075.jpg");
|
||||||
@ -1177,6 +1173,9 @@ DEF_TEST(Image_makeColorSpace, r) {
|
|||||||
sk_sp<SkImage> p3Image = srgbImage->makeColorSpace(p3, SkTransferFunctionBehavior::kIgnore);
|
sk_sp<SkImage> p3Image = srgbImage->makeColorSpace(p3, SkTransferFunctionBehavior::kIgnore);
|
||||||
SkBitmap p3Bitmap;
|
SkBitmap p3Bitmap;
|
||||||
bool success = p3Image->asLegacyBitmap(&p3Bitmap);
|
bool success = p3Image->asLegacyBitmap(&p3Bitmap);
|
||||||
|
|
||||||
|
auto almost_equal = [](int a, int b) { return SkTAbs(a - b) <= 2; };
|
||||||
|
|
||||||
REPORTER_ASSERT(r, success);
|
REPORTER_ASSERT(r, success);
|
||||||
REPORTER_ASSERT(r, almost_equal(0x28, SkGetPackedR32(*p3Bitmap.getAddr32(0, 0))));
|
REPORTER_ASSERT(r, almost_equal(0x28, SkGetPackedR32(*p3Bitmap.getAddr32(0, 0))));
|
||||||
REPORTER_ASSERT(r, almost_equal(0x40, SkGetPackedG32(*p3Bitmap.getAddr32(0, 0))));
|
REPORTER_ASSERT(r, almost_equal(0x40, SkGetPackedG32(*p3Bitmap.getAddr32(0, 0))));
|
||||||
|
Loading…
Reference in New Issue
Block a user