|
|
DescriptionSimplified linear pipeline.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1704583003
Committed: https://skia.googlesource.com/skia/+/feec878e850850cb0a092a765e3af0f5a3fa2a42
Patch Set 1 #
Total comments: 28
Patch Set 2 : Address comments, and change to const ref for args. #Patch Set 3 : Use union for space. #Patch Set 4 : Remove alignment check. #Patch Set 5 : Fix test compiler errors. #Patch Set 6 : Fix union problems. #Patch Set 7 : Fix alignment in a different way. #Patch Set 8 : Fix unused result. #Patch Set 9 : More ignore results. #Patch Set 10 : Handle native rgb properly. #Patch Set 11 : An additional stack allocation. #Patch Set 12 : Fix more errors. #Patch Set 13 : Fix lose of precision. #Patch Set 14 : More 0 len array. #Patch Set 15 : Fix unaligned size problem. #
Total comments: 3
Messages
Total messages: 83 (33 generated)
Description was changed from ========== Simplified linear pipeline. BUG=skia: ========== to ========== Simplified linear pipeline. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&is... ==========
Description was changed from ========== Simplified linear pipeline. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&is... ========== to ========== Simplified linear pipeline. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&is... ==========
herb@google.com changed reviewers: + mtklein@google.com, reed@google.com
At Mike's request, I have produced a CL that has the basic point pipeline. It's simple, but does not handle bilerp or have good performance. These features will be added in subsequent CLs.
lgtm https://codereview.chromium.org/1704583003/diff/1/src/core/SkLinearBitmapPipe... File src/core/SkLinearBitmapPipeline.cpp (right): https://codereview.chromium.org/1704583003/diff/1/src/core/SkLinearBitmapPipe... src/core/SkLinearBitmapPipeline.cpp:32: void SpanFallback(SkPoint start, SkScalar length, int count, Next* next) { suspiciously similar to shadeSpan https://codereview.chromium.org/1704583003/diff/1/src/core/SkLinearBitmapPipe... src/core/SkLinearBitmapPipeline.cpp:58: fStrategy.processPoints(n, &xs, &ys); it looks like no strategy needs n https://codereview.chromium.org/1704583003/diff/1/src/core/SkLinearBitmapPipe... src/core/SkLinearBitmapPipeline.cpp:63: fStrategy.processPoints(4, &xs, &ys); ditto https://codereview.chromium.org/1704583003/diff/1/src/core/SkLinearBitmapPipe... src/core/SkLinearBitmapPipeline.cpp:72: class AbortPointProcessor final : public PointProcessorInterface { SkippedStage? https://codereview.chromium.org/1704583003/diff/1/src/core/SkLinearBitmapPipe... src/core/SkLinearBitmapPipeline.cpp:81: class IdentityMatrixStrategy { dead code? https://codereview.chromium.org/1704583003/diff/1/src/core/SkLinearBitmapPipe... src/core/SkLinearBitmapPipeline.cpp:275: inline Sk4f bilerp4(SkPoint pt, Sk4f pixel00, Sk4f pixel01, die https://codereview.chromium.org/1704583003/diff/1/src/core/SkLinearBitmapPipe... src/core/SkLinearBitmapPipeline.cpp:301: Sk4f getPixel(const uint32_t* src, int index) { private? https://codereview.chromium.org/1704583003/diff/1/src/core/SkLinearBitmapPipe... src/core/SkLinearBitmapPipeline.cpp:356: fStrategy.getFewPixels(n, xs, ys, &px0, &px1, &px2, &px3); should not need px3? https://codereview.chromium.org/1704583003/diff/1/src/core/SkLinearBitmapPipe... src/core/SkLinearBitmapPipeline.cpp:357: if (0 == n) return; assert n < 4 && n > 0? https://codereview.chromium.org/1704583003/diff/1/src/core/SkLinearBitmapPipe... src/core/SkLinearBitmapPipeline.cpp:358: fNext->placePixel(px0); if (n > 0) { fNext->placePixel(px0); } if (n > 1) { fNext->placePixel(px1); } if (n > 2) { fNext->placePixel(px2); } https://codereview.chromium.org/1704583003/diff/1/src/core/SkLinearBitmapPipe... src/core/SkLinearBitmapPipeline.cpp:456: auto placementStage = choose_pixel_placer(srcImageInfo.alphaType(), &fPixelStage); Let's explain how the stages may be missing, etc. https://codereview.chromium.org/1704583003/diff/1/src/core/SkLinearBitmapPipe... src/core/SkLinearBitmapPipeline.cpp:467: Sk4f Xs = Sk4f(x) + Sk4f{0.0f, 1.0f, 2.0f, 3.0f}; + 0.5? https://codereview.chromium.org/1704583003/diff/1/src/core/SkLinearBitmapPipe... File src/core/SkLinearBitmapPipeline.h (right): https://codereview.chromium.org/1704583003/diff/1/src/core/SkLinearBitmapPipe... src/core/SkLinearBitmapPipeline.h:37: template<typename Base, size_t kSize = 80> Seems clearer without a default. https://codereview.chromium.org/1704583003/diff/1/src/core/SkLinearBitmapPipe... src/core/SkLinearBitmapPipeline.h:64: using MatrixStage = PolymorphicUnion<PointProcessorInterface, 112>; Move inside SKLinearBitmapPipeline?
The CQ bit was checked by herb@google.com to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1704583003/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1704583003/1
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: Build-Ubuntu-GCC-x86_64-Release-Trybot on client.skia.compile (JOB_FAILED, http://build.chromium.org/p/client.skia.compile/builders/Build-Ubuntu-GCC-x86...)
https://codereview.chromium.org/1704583003/diff/1/src/core/SkLinearBitmapPipe... File src/core/SkLinearBitmapPipeline.cpp (right): https://codereview.chromium.org/1704583003/diff/1/src/core/SkLinearBitmapPipe... src/core/SkLinearBitmapPipeline.cpp:32: void SpanFallback(SkPoint start, SkScalar length, int count, Next* next) { On 2016/02/16 21:13:10, mtklein wrote: > suspiciously similar to shadeSpan removed https://codereview.chromium.org/1704583003/diff/1/src/core/SkLinearBitmapPipe... src/core/SkLinearBitmapPipeline.cpp:58: fStrategy.processPoints(n, &xs, &ys); On 2016/02/16 21:13:10, mtklein wrote: > it looks like no strategy needs n Done. https://codereview.chromium.org/1704583003/diff/1/src/core/SkLinearBitmapPipe... src/core/SkLinearBitmapPipeline.cpp:63: fStrategy.processPoints(4, &xs, &ys); On 2016/02/16 21:13:10, mtklein wrote: > ditto Done. https://codereview.chromium.org/1704583003/diff/1/src/core/SkLinearBitmapPipe... src/core/SkLinearBitmapPipeline.cpp:72: class AbortPointProcessor final : public PointProcessorInterface { On 2016/02/16 21:13:10, mtklein wrote: > SkippedStage? Done. https://codereview.chromium.org/1704583003/diff/1/src/core/SkLinearBitmapPipe... src/core/SkLinearBitmapPipeline.cpp:81: class IdentityMatrixStrategy { On 2016/02/16 21:13:10, mtklein wrote: > dead code? Done. https://codereview.chromium.org/1704583003/diff/1/src/core/SkLinearBitmapPipe... src/core/SkLinearBitmapPipeline.cpp:275: inline Sk4f bilerp4(SkPoint pt, Sk4f pixel00, Sk4f pixel01, On 2016/02/16 21:13:10, mtklein wrote: > die Done. https://codereview.chromium.org/1704583003/diff/1/src/core/SkLinearBitmapPipe... src/core/SkLinearBitmapPipeline.cpp:301: Sk4f getPixel(const uint32_t* src, int index) { On 2016/02/16 21:13:10, mtklein wrote: > private? Done. https://codereview.chromium.org/1704583003/diff/1/src/core/SkLinearBitmapPipe... src/core/SkLinearBitmapPipeline.cpp:356: fStrategy.getFewPixels(n, xs, ys, &px0, &px1, &px2, &px3); On 2016/02/16 21:13:10, mtklein wrote: > should not need px3? Done. https://codereview.chromium.org/1704583003/diff/1/src/core/SkLinearBitmapPipe... src/core/SkLinearBitmapPipeline.cpp:357: if (0 == n) return; On 2016/02/16 21:13:10, mtklein wrote: > assert n < 4 && n > 0? Done. https://codereview.chromium.org/1704583003/diff/1/src/core/SkLinearBitmapPipe... src/core/SkLinearBitmapPipeline.cpp:358: fNext->placePixel(px0); On 2016/02/16 21:13:10, mtklein wrote: > if (n > 0) { fNext->placePixel(px0); } > if (n > 1) { fNext->placePixel(px1); } > if (n > 2) { fNext->placePixel(px2); } Done. https://codereview.chromium.org/1704583003/diff/1/src/core/SkLinearBitmapPipe... src/core/SkLinearBitmapPipeline.cpp:456: auto placementStage = choose_pixel_placer(srcImageInfo.alphaType(), &fPixelStage); On 2016/02/16 21:13:10, mtklein wrote: > Let's explain how the stages may be missing, etc. Done. https://codereview.chromium.org/1704583003/diff/1/src/core/SkLinearBitmapPipe... src/core/SkLinearBitmapPipeline.cpp:467: Sk4f Xs = Sk4f(x) + Sk4f{0.0f, 1.0f, 2.0f, 3.0f}; On 2016/02/16 21:13:10, mtklein wrote: > + 0.5? Done. https://codereview.chromium.org/1704583003/diff/1/src/core/SkLinearBitmapPipe... File src/core/SkLinearBitmapPipeline.h (right): https://codereview.chromium.org/1704583003/diff/1/src/core/SkLinearBitmapPipe... src/core/SkLinearBitmapPipeline.h:37: template<typename Base, size_t kSize = 80> On 2016/02/16 21:13:10, mtklein wrote: > Seems clearer without a default. Done. https://codereview.chromium.org/1704583003/diff/1/src/core/SkLinearBitmapPipe... src/core/SkLinearBitmapPipeline.h:64: using MatrixStage = PolymorphicUnion<PointProcessorInterface, 112>; On 2016/02/16 21:13:10, mtklein wrote: > Move inside SKLinearBitmapPipeline? Done.
Address comments, and change to const ref for args.
The CQ bit was checked by herb@google.com to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1704583003/20001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1704583003/20001
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-Trybot on client.skia (JOB_FAILED, http://build.chromium.org/p/client.skia/builders/Test-Ubuntu-GCC-GCE-CPU-AVX2...) Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-Shared-Trybot on client.skia (JOB_FAILED, http://build.chromium.org/p/client.skia/builders/Test-Ubuntu-GCC-GCE-CPU-AVX2...) Test-Ubuntu-GCC-ShuttleA-GPU-GTX660-x86_64-Release-Trybot on client.skia (JOB_FAILED, http://build.chromium.org/p/client.skia/builders/Test-Ubuntu-GCC-ShuttleA-GPU...) Build-Ubuntu-Clang-x86_64-Debug-Trybot on client.skia.compile (JOB_FAILED, http://build.chromium.org/p/client.skia.compile/builders/Build-Ubuntu-Clang-x...) Build-Ubuntu-GCC-Arm64-Debug-Android-Trybot on client.skia.compile (JOB_FAILED, http://build.chromium.org/p/client.skia.compile/builders/Build-Ubuntu-GCC-Arm...) Build-Ubuntu-GCC-Arm7-Debug-Android-Trybot on client.skia.compile (JOB_FAILED, http://build.chromium.org/p/client.skia.compile/builders/Build-Ubuntu-GCC-Arm...) Build-Ubuntu-GCC-Mips-Debug-Android-Trybot on client.skia.compile (JOB_FAILED, http://build.chromium.org/p/client.skia.compile/builders/Build-Ubuntu-GCC-Mip...) Build-Ubuntu-GCC-x86_64-Release-Trybot on client.skia.compile (JOB_FAILED, http://build.chromium.org/p/client.skia.compile/builders/Build-Ubuntu-GCC-x86...) Build-Win-MSVC-x86-Debug-Trybot on client.skia.compile (JOB_FAILED, http://build.chromium.org/p/client.skia.compile/builders/Build-Win-MSVC-x86-D...) Build-Win-MSVC-x86_64-Debug-Trybot on client.skia.compile (JOB_FAILED, http://build.chromium.org/p/client.skia.compile/builders/Build-Win-MSVC-x86_6...)
Use union for space.
Remove alignment check.
The CQ bit was checked by herb@google.com to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1704583003/60001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1704583003/60001
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-Trybot on client.skia (JOB_FAILED, http://build.chromium.org/p/client.skia/builders/Test-Ubuntu-GCC-GCE-CPU-AVX2...) Build-Ubuntu-GCC-x86_64-Release-Trybot on client.skia.compile (JOB_FAILED, http://build.chromium.org/p/client.skia.compile/builders/Build-Ubuntu-GCC-x86...)
Fix test compiler errors.
Fix union problems.
The CQ bit was checked by herb@google.com to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1704583003/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1704583003/100001
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: Build-Ubuntu-GCC-Arm7-Debug-Android-Trybot on client.skia.compile (JOB_FAILED, http://build.chromium.org/p/client.skia.compile/builders/Build-Ubuntu-GCC-Arm...)
Fix alignment in a different way.
The CQ bit was checked by herb@google.com to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1704583003/120001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1704583003/120001
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: Build-Ubuntu-GCC-Arm64-Debug-Android-Trybot on client.skia.compile (JOB_FAILED, http://build.chromium.org/p/client.skia.compile/builders/Build-Ubuntu-GCC-Arm...)
Fix unused result.
The CQ bit was checked by herb@google.com to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1704583003/140001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1704583003/140001
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: Build-Ubuntu-GCC-Arm7-Debug-Android-Trybot on client.skia.compile (JOB_FAILED, http://build.chromium.org/p/client.skia.compile/builders/Build-Ubuntu-GCC-Arm...)
More ignore results.
The CQ bit was checked by herb@google.com to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1704583003/160001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1704583003/160001
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-Shared-Trybot on client.skia (JOB_FAILED, http://build.chromium.org/p/client.skia/builders/Test-Ubuntu-GCC-GCE-CPU-AVX2...) Build-Win-MSVC-x86-Debug-Trybot on client.skia.compile (JOB_FAILED, http://build.chromium.org/p/client.skia.compile/builders/Build-Win-MSVC-x86-D...) Build-Win-MSVC-x86_64-Debug-Trybot on client.skia.compile (JOB_FAILED, http://build.chromium.org/p/client.skia.compile/builders/Build-Win-MSVC-x86_6...)
Handle native rgb properly.
The CQ bit was checked by herb@google.com to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1704583003/180001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1704583003/180001
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: Build-Win-MSVC-x86_64-Debug-Trybot on client.skia.compile (JOB_FAILED, http://build.chromium.org/p/client.skia.compile/builders/Build-Win-MSVC-x86_6...)
An additional stack allocation.
The CQ bit was checked by herb@google.com to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1704583003/200001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1704583003/200001
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: Build-Win-MSVC-x86-Debug-Trybot on client.skia.compile (JOB_FAILED, http://build.chromium.org/p/client.skia.compile/builders/Build-Win-MSVC-x86-D...) Build-Win-MSVC-x86_64-Debug-Trybot on client.skia.compile (JOB_FAILED, http://build.chromium.org/p/client.skia.compile/builders/Build-Win-MSVC-x86_6...)
Fix more errors.
The CQ bit was checked by herb@google.com to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1704583003/220001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1704583003/220001
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: Build-Win-MSVC-x86-Debug-Trybot on client.skia.compile (JOB_FAILED, http://build.chromium.org/p/client.skia.compile/builders/Build-Win-MSVC-x86-D...)
Fix lose of precision.
The CQ bit was checked by herb@google.com to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1704583003/240001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1704583003/240001
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: Build-Win-MSVC-x86-Debug-Trybot on client.skia.compile (JOB_FAILED, http://build.chromium.org/p/client.skia.compile/builders/Build-Win-MSVC-x86-D...)
More 0 len array.
The CQ bit was checked by herb@google.com to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1704583003/260001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1704583003/260001
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: Build-Win-MSVC-x86-Debug-Trybot on client.skia.compile (JOB_FAILED, http://build.chromium.org/p/client.skia.compile/builders/Build-Win-MSVC-x86-D...)
Fix unaligned size problem.
The CQ bit was checked by herb@google.com to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1704583003/280001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1704583003/280001
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
The CQ bit was checked by herb@google.com
The patchset sent to the CQ was uploaded after l-g-t-m from mtklein@google.com Link to the patchset: https://codereview.chromium.org/1704583003/#ps280001 (title: "Fix unaligned size problem.")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1704583003/280001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1704583003/280001
Message was sent while issue was closed.
Description was changed from ========== Simplified linear pipeline. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&is... ========== to ========== Simplified linear pipeline. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&is... Committed: https://skia.googlesource.com/skia/+/feec878e850850cb0a092a765e3af0f5a3fa2a42 ==========
Message was sent while issue was closed.
Committed patchset #15 (id:280001) as https://skia.googlesource.com/skia/+/feec878e850850cb0a092a765e3af0f5a3fa2a42
Message was sent while issue was closed.
Appears to be breaking ASAN with use-after-free: https://uberchromegw.corp.google.com/i/client.skia/builders/Test-Ubuntu-GCC-G...
Message was sent while issue was closed.
bungeman@google.com changed reviewers: + bungeman@google.com
Message was sent while issue was closed.
https://codereview.chromium.org/1704583003/diff/280001/bench/SkLinearBitmapPi... File bench/SkLinearBitmapPipelineBench.cpp (right): https://codereview.chromium.org/1704583003/diff/280001/bench/SkLinearBitmapPi... bench/SkLinearBitmapPipelineBench.cpp:74: return name.c_str(); Gone! This is being reported by asan, because the local SkString is being destroyed and freeing the data.
Message was sent while issue was closed.
https://codereview.chromium.org/1704583003/diff/280001/bench/SkLinearBitmapPi... File bench/SkLinearBitmapPipelineBench.cpp (right): https://codereview.chromium.org/1704583003/diff/280001/bench/SkLinearBitmapPi... bench/SkLinearBitmapPipelineBench.cpp:74: return name.c_str(); On 2016/02/17 19:36:34, bungeman1 wrote: > Gone! This is being reported by asan, because the local SkString is being > destroyed and freeing the data. This is now fixed with https://codereview.chromium.org/1701413003/ .
Message was sent while issue was closed.
https://codereview.chromium.org/1704583003/diff/280001/bench/SkLinearBitmapPi... File bench/SkLinearBitmapPipelineBench.cpp (right): https://codereview.chromium.org/1704583003/diff/280001/bench/SkLinearBitmapPi... bench/SkLinearBitmapPipelineBench.cpp:201: delete buffer4b; This is also causing asan issues... delete [] buffer4b;
Message was sent while issue was closed.
On 2016/02/17 21:38:41, bungeman1 wrote: > https://codereview.chromium.org/1704583003/diff/280001/bench/SkLinearBitmapPi... > File bench/SkLinearBitmapPipelineBench.cpp (right): > > https://codereview.chromium.org/1704583003/diff/280001/bench/SkLinearBitmapPi... > bench/SkLinearBitmapPipelineBench.cpp:201: delete buffer4b; > This is also causing asan issues... > > delete [] buffer4b; This issue fixed with https://codereview.chromium.org/1703203003/ . |