5c612ade3b
This sample attempts to re-create an image's alpha channel by drawing it one pixel at a time and timing how long each pixel takes to draw. The "abc" text should appear twice normally, and the third and fourth versions are reconstructed from timing, one by timing 1:1 pixel draws, the other by timing 1x1:1024x1024 upscale into an offscreen. It's not meant to be an exact reconstruction, but you can easily see the shapes, particularly at -O0, -O1, and -Os. Auto-vectorization from -O2/-O3 do a good amount to cover up the problem. The legacy CPU backend is the main place to look. I haven't been able to reconstruct any images using SkRasterPipelineBlitter or SkVMBlitter, and while on the GPU I do see non-random patterns in the timing, it appears to be the same single pattern across devices, OSes, GPUs, GPU APIs and content... I assume it's something like our resource caching policy. This can't really be a GM, given how it draws non-deterministically. Bug: chromium:1088224 Change-Id: I2ec79c8dd407ecb104fd9bf0c8039cb6dd1fe436 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/313466 Commit-Queue: Mike Klein <mtklein@google.com> Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Mike Reed <reed@google.com>
102 lines
3.6 KiB
Plaintext
102 lines
3.6 KiB
Plaintext
# Copyright 2016 Google Inc.
|
|
#
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
# Things are easiest for everyone if these source paths are absolute.
|
|
_samplecode = get_path_info("../samplecode", "abspath")
|
|
|
|
samples_sources = [
|
|
"$_samplecode/PerlinPatch.cpp",
|
|
"$_samplecode/Sample.cpp",
|
|
"$_samplecode/Sample.h",
|
|
"$_samplecode/Sample2PtRadial.cpp",
|
|
"$_samplecode/Sample3D.cpp",
|
|
"$_samplecode/SampleAAClip.cpp",
|
|
"$_samplecode/SampleAAGeometry.cpp",
|
|
"$_samplecode/SampleAARectModes.cpp",
|
|
"$_samplecode/SampleAARects.cpp",
|
|
"$_samplecode/SampleAndroidShadows.cpp",
|
|
"$_samplecode/SampleAnimBlur.cpp",
|
|
"$_samplecode/SampleAnimatedImage.cpp",
|
|
"$_samplecode/SampleAnimatedText.cpp",
|
|
"$_samplecode/SampleArc.cpp",
|
|
"$_samplecode/SampleAtlas.cpp",
|
|
"$_samplecode/SampleAudio.cpp",
|
|
"$_samplecode/SampleBackdropBounds.cpp",
|
|
"$_samplecode/SampleBitmapRect.cpp",
|
|
"$_samplecode/SampleCamera.cpp",
|
|
"$_samplecode/SampleChart.cpp",
|
|
"$_samplecode/SampleChineseFling.cpp",
|
|
"$_samplecode/SampleCircle.cpp",
|
|
"$_samplecode/SampleClip.cpp",
|
|
"$_samplecode/SampleClipDrawMatch.cpp",
|
|
"$_samplecode/SampleClock.cpp",
|
|
"$_samplecode/SampleColorFilter.cpp",
|
|
"$_samplecode/SampleComplexClip.cpp",
|
|
"$_samplecode/SampleCowboy.cpp",
|
|
"$_samplecode/SampleCusp.cpp",
|
|
"$_samplecode/SampleDegenerateQuads.cpp",
|
|
"$_samplecode/SampleDegenerateTwoPtRadials.cpp",
|
|
"$_samplecode/SampleEffects.cpp",
|
|
"$_samplecode/SampleEmboss.cpp",
|
|
"$_samplecode/SampleFatBits.cpp",
|
|
"$_samplecode/SampleFillType.cpp",
|
|
"$_samplecode/SampleFilter2.cpp",
|
|
"$_samplecode/SampleFilterQuality.cpp",
|
|
"$_samplecode/SampleFitCubicToCircle.cpp",
|
|
"$_samplecode/SampleFlutterAnimate.cpp",
|
|
"$_samplecode/SampleGlyphTransform.cpp",
|
|
"$_samplecode/SampleGradients.cpp",
|
|
"$_samplecode/SampleHT.cpp",
|
|
"$_samplecode/SampleHairCurves.cpp",
|
|
"$_samplecode/SampleHairModes.cpp",
|
|
"$_samplecode/SampleHairline.cpp",
|
|
"$_samplecode/SampleIdentityScale.cpp",
|
|
"$_samplecode/SampleImageFilterDAG.cpp",
|
|
"$_samplecode/SampleLCD.cpp",
|
|
"$_samplecode/SampleLayerMask.cpp",
|
|
"$_samplecode/SampleLayers.cpp",
|
|
"$_samplecode/SampleManyRects.cpp",
|
|
"$_samplecode/SampleMegaStroke.cpp",
|
|
"$_samplecode/SampleMixer.cpp",
|
|
"$_samplecode/SamplePatch.cpp",
|
|
"$_samplecode/SamplePath.cpp",
|
|
"$_samplecode/SamplePathClip.cpp",
|
|
"$_samplecode/SamplePathEffects.cpp",
|
|
"$_samplecode/SamplePathOverstroke.cpp",
|
|
"$_samplecode/SamplePathText.cpp",
|
|
"$_samplecode/SamplePolyToPoly.cpp",
|
|
"$_samplecode/SampleQuadStroker.cpp",
|
|
"$_samplecode/SampleRectanizer.cpp",
|
|
"$_samplecode/SampleRegion.cpp",
|
|
"$_samplecode/SampleRepeatTile.cpp",
|
|
"$_samplecode/SampleSG.cpp",
|
|
"$_samplecode/SampleSVGFile.cpp",
|
|
"$_samplecode/SampleShaders.cpp",
|
|
"$_samplecode/SampleShadowColor.cpp",
|
|
"$_samplecode/SampleShadowReference.cpp",
|
|
"$_samplecode/SampleShadowUtils.cpp",
|
|
"$_samplecode/SampleShip.cpp",
|
|
"$_samplecode/SampleSimpleStroker.cpp",
|
|
"$_samplecode/SampleSlides.cpp",
|
|
"$_samplecode/SampleStringArt.cpp",
|
|
"$_samplecode/SampleStrokePath.cpp",
|
|
"$_samplecode/SampleStrokeRect.cpp",
|
|
"$_samplecode/SampleSubpixelTranslate.cpp",
|
|
"$_samplecode/SampleTessellatedWedge.cpp",
|
|
"$_samplecode/SampleTextBox.cpp",
|
|
"$_samplecode/SampleTextEffects.cpp",
|
|
"$_samplecode/SampleTextureUpload.cpp",
|
|
"$_samplecode/SampleThinAA.cpp",
|
|
"$_samplecode/SampleTiming.cpp",
|
|
"$_samplecode/SampleUnpremul.cpp",
|
|
"$_samplecode/SampleVertices.cpp",
|
|
"$_samplecode/SampleWritePixels.cpp",
|
|
"$_samplecode/SampleXfer.cpp",
|
|
"$_samplecode/SampleXfermodesBlur.cpp",
|
|
"$_samplecode/vertexdump.cpp",
|
|
]
|
|
|
|
samples_sources_ccpr = [ "$_samplecode/SampleCCPRGeometry.cpp" ]
|