Revert of Fix UB in SkDivBits (patchset #4 id:50001 of https://codereview.chromium.org/1455163004/ )
Reason for revert: This likely causes unit tests to break in depsroll. See error: http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_ng/builds/137723/steps/cc_unittests%20%28with%20patch%29/logs/stdio RUN ] ImageScaledRenderSurface.ImageRenderSurfaceScaled_Software [4616:3480:1119/165044:41067403:ERROR:pixel_comparator.cc(175)] Percentage of pixels with an error: 11.3967 [4616:3480:1119/165044:41067403:ERROR:pixel_comparator.cc(177)] Percentage of pixels with errors not greater than 0: 0 [4616:3480:1119/165044:41067403:ERROR:pixel_comparator.cc(180)] Average absolute error (excluding identical pixels): R=0.0600565 G=238.962 B=238.934 A=0 [4616:3480:1119/165044:41067403:ERROR:pixel_comparator.cc(185)] Largest absolute error: R=1 G=255 B=255 A=0 [4616:3480:1119/165044:41067403:ERROR:pixel_comparator.cc(203)] Error Bounding Box : 47,47 206x206 [4616:3480:1119/165044:41067419:ERROR:pixel_test_utils.cc(79)] Pixels do not match! [4616:3480:1119/165044:41067419:ERROR:pixel_test_utils.cc(80)] Actual: data:image/png;base64,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 [4616:3480:1119/165044:41067419:ERROR:pixel_test_utils.cc(81)] Expected: data:image/png;base64,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 e:\b\build\slave\win\build\src\cc\test\layer_tree_pixel_test.cc(116): error: Value of: MatchesPNGFile(*result_bitmap_, ref_file_path, *pixel_comparator_) Actual: false Expected: true [ FAILED ] ImageScaledRenderSurface.ImageRenderSurfaceScaled_Software (57 ms) Original issue's description: > Fix UB in SkDivBits > > DIVBITS_ITER was shifting bits up into the sign bit, which is a no-no. > This turns numer into a uint32_t to make those defined, and adds a few notes. > > x >= 0 is always true for unsigned x, so we needed a few small logic refactors. > > BUG=skia:3562 > > Committed: https://skia.googlesource.com/skia/+/988adddd48322bfa3e3cb0c017cfce71fbbf1123 > > Committed: https://skia.googlesource.com/skia/+/6c7b104b4c08ae2332a6ce3c8c906da4e8c51e5f TBR=caryclark@google.com,mtklein@google.com,mtklein@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia:3562 Review URL: https://codereview.chromium.org/1467513002
This commit is contained in:
parent
72261c0afd
commit
211df38065
@ -439,7 +439,7 @@ cc_test(
|
|||||||
"--nogpu",
|
"--nogpu",
|
||||||
"--verbose",
|
"--verbose",
|
||||||
# TODO(mtklein): maybe investigate why these fail?
|
# TODO(mtklein): maybe investigate why these fail?
|
||||||
"--match ~FontMgr ~Scalar ~Canvas ~Codec_stripes ~Codec_Dimensions ~Codec ~Stream ~skps ~RecordDraw_TextBounds",
|
"--match ~FontMgr ~Scalar ~Canvas ~Codec_stripes ~Codec_Dimensions ~Codec ~Stream ~skps ~Math ~RecordDraw_TextBounds",
|
||||||
"--resourcePath %s/resources" % BASE_DIR,
|
"--resourcePath %s/resources" % BASE_DIR,
|
||||||
"--images %s/resources" % BASE_DIR,
|
"--images %s/resources" % BASE_DIR,
|
||||||
],
|
],
|
||||||
|
@ -45,38 +45,21 @@ int SkCLZ_portable(uint32_t x) {
|
|||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#define DIVBITS_ITER(n) \
|
||||||
|
case n: \
|
||||||
|
if ((numer = (numer << 1) - denom) >= 0) \
|
||||||
|
result |= 1 << (n - 1); else numer += denom
|
||||||
|
|
||||||
#define DIVBITS_ITER(k) \
|
int32_t SkDivBits(int32_t numer, int32_t denom, int shift_bias) {
|
||||||
case k: \
|
SkASSERT(denom != 0);
|
||||||
if (numer*2 >= denom) { \
|
if (numer == 0) {
|
||||||
numer = numer*2 - denom; \
|
|
||||||
result |= 1 << (k-1); \
|
|
||||||
} else { \
|
|
||||||
numer *= 2; \
|
|
||||||
}
|
|
||||||
|
|
||||||
// NOTE: if you're thinking of editing this method, consider replacing it with
|
|
||||||
// a simple shift and divide. This legacy method predated reliable hardware division.
|
|
||||||
int32_t SkDivBits(int32_t n, int32_t d, int shift_bias) {
|
|
||||||
SkASSERT(d != 0);
|
|
||||||
if (n == 0) {
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make numer and denom positive, and sign hold the resulting sign
|
// make numer and denom positive, and sign hold the resulting sign
|
||||||
// We'll be left-shifting numer, so it's important it's a uint32_t.
|
int32_t sign = SkExtractSign(numer ^ denom);
|
||||||
// We put denom in a uint32_t just to keep things simple.
|
numer = SkAbs32(numer);
|
||||||
int32_t sign = SkExtractSign(n ^ d);
|
denom = SkAbs32(denom);
|
||||||
#if defined(SK_SUPPORT_LEGACY_DIVBITS_UB)
|
|
||||||
// Blink layout tests are baselined to Clang optimizing through the UB.
|
|
||||||
int32_t numer = SkAbs32(n);
|
|
||||||
int32_t denom = SkAbs32(d);
|
|
||||||
#else
|
|
||||||
uint32_t numer = SkAbs32(n);
|
|
||||||
uint32_t denom = SkAbs32(d);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// It's probably a bug to use n or d below here.
|
|
||||||
|
|
||||||
int nbits = SkCLZ(numer) - 1;
|
int nbits = SkCLZ(numer) - 1;
|
||||||
int dbits = SkCLZ(denom) - 1;
|
int dbits = SkCLZ(denom) - 1;
|
||||||
@ -95,9 +78,10 @@ int32_t SkDivBits(int32_t n, int32_t d, int shift_bias) {
|
|||||||
SkFixed result = 0;
|
SkFixed result = 0;
|
||||||
|
|
||||||
// do the first one
|
// do the first one
|
||||||
if (numer >= denom) {
|
if ((numer -= denom) >= 0) {
|
||||||
numer -= denom;
|
|
||||||
result = 1;
|
result = 1;
|
||||||
|
} else {
|
||||||
|
numer += denom;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Now fall into our switch statement if there are more bits to compute
|
// Now fall into our switch statement if there are more bits to compute
|
||||||
|
@ -1221,7 +1221,9 @@
|
|||||||
"_",
|
"_",
|
||||||
"image",
|
"image",
|
||||||
"_",
|
"_",
|
||||||
"interlaced3.png"
|
"interlaced3.png",
|
||||||
|
"--match",
|
||||||
|
"~Math"
|
||||||
],
|
],
|
||||||
"Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-Valgrind": [
|
"Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-Valgrind": [
|
||||||
"--matrix",
|
"--matrix",
|
||||||
|
@ -169,6 +169,11 @@ def get_args(bot):
|
|||||||
if 'Valgrind' in bot: # skia:3021
|
if 'Valgrind' in bot: # skia:3021
|
||||||
match.append('~Threaded')
|
match.append('~Threaded')
|
||||||
|
|
||||||
|
# skia:3562
|
||||||
|
if ('TSAN' in bot or
|
||||||
|
'Test-Mac10.8-Clang-MacMini4.1-CPU-SSE4-x86_64-Release' in bot):
|
||||||
|
match.append('~Math')
|
||||||
|
|
||||||
if 'GalaxyS3' in bot: # skia:1699
|
if 'GalaxyS3' in bot: # skia:1699
|
||||||
match.append('~WritePixels')
|
match.append('~WritePixels')
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user