mtklein [Thu, 2 Apr 2015 17:47:57 +0000 (10:47 -0700)]
Streamline Thumb config.
Enable Thumb2 iff ARM v7. (We don't turn it on today for ARM <v7, and ARM v8 doesn't support it.)
BUG=skia:
Review URL: https://codereview.chromium.org/
1054993002
mtklein [Thu, 2 Apr 2015 17:24:23 +0000 (10:24 -0700)]
Make Daisy ARMv7.
This should be a ~noop as far as gold.skia.org goes.
After this, I'll try out NEON.
BUG=skia:1843
Review URL: https://codereview.chromium.org/
1056793004
mtklein [Thu, 2 Apr 2015 16:27:57 +0000 (09:27 -0700)]
tidy up chromeos_setup.sh
- remove unused alex
- streamline Link's config
- remove misleading Daisy config:
1) armv7=1 does nothing. We meant to type arm_version=7 here.
2) arm_neon=1 does nothing unless arm_version == 7.
3) arm_thumb=0 is the default when arm_version <= 7.
4) skia_arch_width=32 is the default when skia_arch_type=arm.
I'd just fix this to make Daisy arm_version=7 and arm_neon=1 (and
arm_thumb=1, which I'm going to separately make the default for
arm_version=7), but there are known color-order bugs with our
NEON procs that would make Daisy start pushing bad images to
Gold. Going to take baby steps here...
BUG=skia:1843
Committed: https://skia.googlesource.com/skia/+/
3c2809bc612f4a265770914f860d214c9665dc4a
CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu-GCC-Arm7-Debug-CrOS_Daisy-Trybot
Review URL: https://codereview.chromium.org/
1051253002
joshualitt [Thu, 2 Apr 2015 16:19:04 +0000 (09:19 -0700)]
Rename GrBitmapTextContextB to GrAtlasTextContext
BUG=skia:
Review URL: https://codereview.chromium.org/
1050173002
mtklein [Thu, 2 Apr 2015 16:02:12 +0000 (09:02 -0700)]
Revert of tidy up chromeos_setup.sh (patchset #1 id:1 of https://codereview.chromium.org/
1051253002/)
Reason for revert:
arm_thumb not defined
Original issue's description:
> tidy up chromeos_setup.sh
>
> - remove unused alex
> - streamline Link's config
> - remove misleading Daisy config:
> 1) armv7=1 does nothing. We meant to type arm_version=7 here.
> 2) arm_neon=1 does nothing unless arm_version == 7.
> 3) arm_thumb=0 is the default when arm_version <= 7.
> 4) skia_arch_width=32 is the default when skia_arch_type=arm.
>
> I'd just fix this to make Daisy arm_version=7 and arm_neon=1 (and
> arm_thumb=1, which I'm going to separately make the default for
> arm_version=7), but there are known color-order bugs with our
> NEON procs that would make Daisy start pushing bad images to
> Gold. Going to take baby steps here...
>
> BUG=skia:1843
>
> Committed: https://skia.googlesource.com/skia/+/
3c2809bc612f4a265770914f860d214c9665dc4a
TBR=borenet@google.com,mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:1843
Review URL: https://codereview.chromium.org/
1059443002
mtklein [Thu, 2 Apr 2015 15:52:36 +0000 (08:52 -0700)]
tidy up chromeos_setup.sh
- remove unused alex
- streamline Link's config
- remove misleading Daisy config:
1) armv7=1 does nothing. We meant to type arm_version=7 here.
2) arm_neon=1 does nothing unless arm_version == 7.
3) arm_thumb=0 is the default when arm_version <= 7.
4) skia_arch_width=32 is the default when skia_arch_type=arm.
I'd just fix this to make Daisy arm_version=7 and arm_neon=1 (and
arm_thumb=1, which I'm going to separately make the default for
arm_version=7), but there are known color-order bugs with our
NEON procs that would make Daisy start pushing bad images to
Gold. Going to take baby steps here...
BUG=skia:1843
Review URL: https://codereview.chromium.org/
1051253002
bsalomon [Thu, 2 Apr 2015 15:33:54 +0000 (08:33 -0700)]
Revert of Add constant color GrFP. (patchset #10 id:180001 of https://codereview.chromium.org/
978713002/)
Reason for revert:
Revert while investigating assertions.
Original issue's description:
> Add constant color GrFP.
>
> Committed: https://skia.googlesource.com/skia/+/
dfbbec436cbcacc3270d4b28357c8393e67d6494
TBR=egdaniel@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/
1055023002
borenet [Thu, 2 Apr 2015 14:24:03 +0000 (07:24 -0700)]
Skip desk_baidu skp on Valgrind bot
This has been running for 16 hours:
https://uberchromegw.corp.google.com/i/client.skia/builders/Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-Valgrind/builds/12/
BUG=skia:3506
Review URL: https://codereview.chromium.org/
1056883002
reed [Thu, 2 Apr 2015 12:43:09 +0000 (05:43 -0700)]
pass legal premul values to bitmap -- do we still need this GM?
BUG=skia:
Review URL: https://codereview.chromium.org/
1052083004
senorblanco [Thu, 2 Apr 2015 11:54:56 +0000 (04:54 -0700)]
Implement approx-match support in image filter saveLayer() offscreen.
Currently, the GPU-side image filter implementation creates
exact-match textures for the offscreen backing stores for
saveLayer(). This is because several filters have GPU
implementations which depend on the texture coordinates
being 0..1.
The fix is three-fold:
1) Store the actual requested size in the SkGpuDevice, so
that when wrapping it in an SkBitmap for passing to
filterImage(), we can give it the original size.
2) Fix the filters (SkMagnifierImageFilter,
SkLightingImageFilter, SkMatrixConvolutionImageFilter,
SkMatrixImageFilter) whose GPU implementation depends on
0..1 texture coordinates.
3) Remove the exception for GPU-side image filters in
SkCanvas::internalSaveLayer().
For the lighting filters, there were two bugs which were
cancelling each other out: the sobel filter matrix was
being computed upside down, but then we'd negate the
resulting normal. This worked fine in the exact-match case,
but in the approx-match case we'd sample garbage along
the edge pixels. Also, we never implemented the edge pixels
according to spec in the GPU case. It requires a
different fragment shader for each edge of the nine-patch,
which meant we couldn't use asFragmentProcessor(), and had
to implement the drawing via a filterImageGPU() override.
In order to avoid polluting the public API, I inserted a
new base class, SkLightingImageFilterInternal above
Sk[Diffuse|Specular]LightingImageFilter to handle the
implementation.
For the SkMatrixConvolutionImageFilter, it seems the
GLSL clamp() function occasionally returns values outside
the clamped range, resulting in access of garbage
texels even in GL_NEAREST. The fix here is to clamp to a
rect inset by half a texel. There was also a bug in
the unpremultiply step when fConvolveAlpha is false.
For SkMatrixImageFilter, the fix was to make the generic
draw path be more careful about when to use texture domain.
If the bitmap already has a texture, use texture domain
if the srcRect is smaller than the entire texture (not
the entire bitmap).
N.B.: this change will cause some minor pixel diffs in the
GPU results of the following GMs (and possibly more):
matriximagefilter, matrixconvolution, imagefiltersscaled,
lighting, imagemagnifier, filterfastbounds,
complexclip_aa_Layer_invert, complexclip_aa_layer,
complexclip_bw_layer_invert, complexclip_bw_layer.
BUG=skia:3532
Committed: https://skia.googlesource.com/skia/+/
b97dafefe63ea0a1bbce8e8b209f4920983fb8b9
Committed: https://skia.googlesource.com/skia/+/
f5f8518fe0bbd2703e4ffc1b11ad7b4312ff7641
Committed: https://skia.googlesource.com/skia/+/
46112cf2a7c7307f1c9eebb5f881cbda15aa460c
Review URL: https://codereview.chromium.org/
1034733002
fmalita [Thu, 2 Apr 2015 03:58:37 +0000 (20:58 -0700)]
[SkDebugger] Flatten drawPicture ops
Add two drawPicture bracketing ops (BeginDrawPicture, EndDrawPicture) to
replace the current DrawPicture op, and flatten picture contents.
Review URL: https://codereview.chromium.org/
1048383002
rmistry [Wed, 1 Apr 2015 22:53:13 +0000 (15:53 -0700)]
Revert of Implement approx-match support in image filter saveLayer() offscreen. (patchset #31 id:590001 of https://codereview.chromium.org/
1034733002/)
Reason for revert:
Spoke to Stephen about this. Reverting because failing debug builds:
https://uberchromegw.corp.google.com/i/client.skia/builders/Test-Mac10.9-Clang-MacMini6.2-GPU-HD4000-x86_64-Debug/builds/51
https://uberchromegw.corp.google.com/i/client.skia/builders/Test-Ubuntu-GCC-ShuttleA-GPU-GTX660-x86_64-Debug/builds/54
Original issue's description:
> Implement approx-match support in image filter saveLayer() offscreen.
>
> Currently, the GPU-side image filter implementation creates
> exact-match textures for the offscreen backing stores for
> saveLayer(). This is because several filters have GPU
> implementations which depend on the texture coordinates
> being 0..1.
>
> The fix is three-fold:
>
> 1) Store the actual requested size in the SkGpuDevice, so
> that when wrapping it in an SkBitmap for passing to
> filterImage(), we can give it the original size.
> 2) Fix the filters (SkMagnifierImageFilter,
> SkLightingImageFilter, SkMatrixConvolutionImageFilter,
> SkMatrixImageFilter) whose GPU implementation depends on
> 0..1 texture coordinates.
> 3) Remove the exception for GPU-side image filters in
> SkCanvas::internalSaveLayer().
>
> For the lighting filters, there were two bugs which were
> cancelling each other out: the sobel filter matrix was
> being computed upside down, but then we'd negate the
> resulting normal. This worked fine in the exact-match case,
> but in the approx-match case we'd sample garbage along
> the edge pixels. Also, we never implemented the edge pixels
> according to spec in the GPU case. It requires a
> different fragment shader for each edge of the nine-patch,
> which meant we couldn't use asFragmentProcessor(), and had
> to implement the drawing via a filterImageGPU() override.
> In order to avoid polluting the public API, I inserted a
> new base class, SkLightingImageFilterInternal above
> Sk[Diffuse|Specular]LightingImageFilter to handle the
> implementation.
>
> For the SkMatrixConvolutionImageFilter, it seems the
> GLSL clamp() function occasionally returns values outside
> the clamped range, resulting in access of garbage
> texels even in GL_NEAREST. The fix here is to clamp to a
> rect inset by half a texel. There was also a bug in
> the unpremultiply step when fConvolveAlpha is false.
>
> For SkMatrixImageFilter, the fix was to make the generic
> draw path be more careful about when to use texture domain.
> If the bitmap already has a texture, use texture domain
> if the srcRect is smaller than the entire texture (not
> the entire bitmap).
>
> N.B.: this change will cause some minor pixel diffs in the
> GPU results of the following GMs (and possibly more):
> matriximagefilter, matrixconvolution, imagefiltersscaled,
> lighting, imagemagnifier, filterfastbounds,
> complexclip_aa_Layer_invert, complexclip_aa_layer,
> complexclip_bw_layer_invert, complexclip_bw_layer.
>
> BUG=skia:3532
>
> Committed: https://skia.googlesource.com/skia/+/
b97dafefe63ea0a1bbce8e8b209f4920983fb8b9
>
> Committed: https://skia.googlesource.com/skia/+/
f5f8518fe0bbd2703e4ffc1b11ad7b4312ff7641
>
> Committed: https://skia.googlesource.com/skia/+/
46112cf2a7c7307f1c9eebb5f881cbda15aa460c
TBR=bsalomon@google.com,reed@chromium.org,senorblanco@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:3532
Review URL: https://codereview.chromium.org/
1057693002
rmistry [Wed, 1 Apr 2015 22:51:33 +0000 (15:51 -0700)]
Revert of Fix GLSL error on Android. (patchset #2 id:20001 of https://codereview.chromium.org/
1053873002/)
Reason for revert:
Spoke to Stephan about this. Reverting because failing debug builds:
https://uberchromegw.corp.google.com/i/client.skia/builders/Test-Mac10.9-Clang-MacMini6.2-GPU-HD4000-x86_64-Debug/builds/51
https://uberchromegw.corp.google.com/i/client.skia/builders/Test-Ubuntu-GCC-ShuttleA-GPU-GTX660-x86_64-Debug/builds/54
Original issue's description:
> Fix GLSL error on Android.
>
> BUG=skia:
> TBR=bsalomon
> NOTREECHECKS=true
> NOTRY=true
>
> Committed: https://skia.googlesource.com/skia/+/
f90cd8e0e39af02c3826c80366efa3c06e88f642
TBR=bsalomon@google.com,senorblanco@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/
1056713002
senorblanco [Wed, 1 Apr 2015 22:13:29 +0000 (15:13 -0700)]
Fix GLSL error on Android.
BUG=skia:
TBR=bsalomon
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/
1053873002
bsalomon [Wed, 1 Apr 2015 21:54:57 +0000 (14:54 -0700)]
Add constant color GrFP.
Review URL: https://codereview.chromium.org/
978713002
scroggo [Wed, 1 Apr 2015 21:34:40 +0000 (14:34 -0700)]
nanobench does not need to handle failed rewind.
Now that all SkCodecs can rewind (assuming the stream is rewindable),
we do not need to special case it.
Pointed out by Derek in the code review that added this.
TBR=djsollen
Review URL: https://codereview.chromium.org/
1058633002
senorblanco [Wed, 1 Apr 2015 21:17:14 +0000 (14:17 -0700)]
Implement approx-match support in image filter saveLayer() offscreen.
Currently, the GPU-side image filter implementation creates
exact-match textures for the offscreen backing stores for
saveLayer(). This is because several filters have GPU
implementations which depend on the texture coordinates
being 0..1.
The fix is three-fold:
1) Store the actual requested size in the SkGpuDevice, so
that when wrapping it in an SkBitmap for passing to
filterImage(), we can give it the original size.
2) Fix the filters (SkMagnifierImageFilter,
SkLightingImageFilter, SkMatrixConvolutionImageFilter,
SkMatrixImageFilter) whose GPU implementation depends on
0..1 texture coordinates.
3) Remove the exception for GPU-side image filters in
SkCanvas::internalSaveLayer().
For the lighting filters, there were two bugs which were
cancelling each other out: the sobel filter matrix was
being computed upside down, but then we'd negate the
resulting normal. This worked fine in the exact-match case,
but in the approx-match case we'd sample garbage along
the edge pixels. Also, we never implemented the edge pixels
according to spec in the GPU case. It requires a
different fragment shader for each edge of the nine-patch,
which meant we couldn't use asFragmentProcessor(), and had
to implement the drawing via a filterImageGPU() override.
In order to avoid polluting the public API, I inserted a
new base class, SkLightingImageFilterInternal above
Sk[Diffuse|Specular]LightingImageFilter to handle the
implementation.
For the SkMatrixConvolutionImageFilter, it seems the
GLSL clamp() function occasionally returns values outside
the clamped range, resulting in access of garbage
texels even in GL_NEAREST. The fix here is to clamp to a
rect inset by half a texel. There was also a bug in
the unpremultiply step when fConvolveAlpha is false.
For SkMatrixImageFilter, the fix was to make the generic
draw path be more careful about when to use texture domain.
If the bitmap already has a texture, use texture domain
if the srcRect is smaller than the entire texture (not
the entire bitmap).
N.B.: this change will cause some minor pixel diffs in the
GPU results of the following GMs (and possibly more):
matriximagefilter, matrixconvolution, imagefiltersscaled,
lighting, imagemagnifier, filterfastbounds,
complexclip_aa_Layer_invert, complexclip_aa_layer,
complexclip_bw_layer_invert, complexclip_bw_layer.
BUG=skia:3532
Committed: https://skia.googlesource.com/skia/+/
b97dafefe63ea0a1bbce8e8b209f4920983fb8b9
Committed: https://skia.googlesource.com/skia/+/
f5f8518fe0bbd2703e4ffc1b11ad7b4312ff7641
Review URL: https://codereview.chromium.org/
1034733002
mtklein [Wed, 1 Apr 2015 20:36:23 +0000 (13:36 -0700)]
That last CL subverted the purpose of the test. Put it back how it was.
BUG=skia:
Review URL: https://codereview.chromium.org/
1055633003
halcanary [Wed, 1 Apr 2015 20:31:34 +0000 (13:31 -0700)]
DM: JSON output adds process_max_resident_set_size_MB
Review URL: https://codereview.chromium.org/
917943002
halcanary [Wed, 1 Apr 2015 20:31:19 +0000 (13:31 -0700)]
SkPDF: SkPDFGraphicState Lookup hashtabled
In Release, running `dm --src skp --config pdf`, I get a
speedup of about 1.2%.
SkPDFGraphicState class:
- Holds the subset of SkPaint that maps to a PDF Graphics
State
- These fields are easily comparable, making hashtable
comparisons easy.
SkPDFCanon:
- findGraphicState() takes a SkPDFGraphicState, not a SkPaint
- fGraphicStateRecords is a SkHashSet, not a SkTDArray
SkPDFGraphicState:
- mode_for_pdf() replaces logic inside equivalent(), but is
only called once per lookup.
- emitObject() no longer modifies the SkPDFGraphicState to
cache the SkPDFDict stucture. (Since it is de-duped,
this get no speedup).
- Static Functions that don't use the canon return a plain
SkPDFDict now. No need for fPopulated.
SkTHash.h
- SkHashSet::forall added
SkPDFDevice; SkPDFShader
- Updated for new SkPDFGraphicState interface.
BUG=skia:3585
Review URL: https://codereview.chromium.org/
1046293002
mtklein [Wed, 1 Apr 2015 20:08:50 +0000 (13:08 -0700)]
Implicit constructors for SkFunction are much more readable.
BUG=skia:
Review URL: https://codereview.chromium.org/
1052663004
jvanverth [Wed, 1 Apr 2015 19:43:48 +0000 (12:43 -0700)]
Emulate distance field gamma fix by making glyphs thicker or thinner
The idea here is that we determine the 0.5 crossover for each
row in the gamma table, then invert the mapping to determine
which point that maps to in the original range [-.65,
.65]. That gives us a change in the apparent width of the
glyph that closely corresponds to the change produced by the gamma fix.
BUG=skia:2933
Review URL: https://codereview.chromium.org/
1042373002
joshualitt [Wed, 1 Apr 2015 19:40:54 +0000 (12:40 -0700)]
move Atlas Text Context to its own file
BUG=skia:
Review URL: https://codereview.chromium.org/
1045723010
djsollen [Wed, 1 Apr 2015 19:15:39 +0000 (12:15 -0700)]
Update the Android scripts to refresh device names and capabilities.
Review URL: https://codereview.chromium.org/
1054633002
msarett [Wed, 1 Apr 2015 19:09:21 +0000 (12:09 -0700)]
Ico test with embedded png
BUG=skia:3257
Review URL: https://codereview.chromium.org/
1054673002
scroggo [Wed, 1 Apr 2015 19:09:17 +0000 (12:09 -0700)]
Add timing SkCodec to nanobench.
CodecBench:
Add new class for timing using SkCodec.
DecodingBench:
Include creating a decoder inside the loop. This is to have a better
comparison against SkCodec. SkCodec's factory function does not
necessarily read the same amount as SkImageDecoder's, so in order to
have a meaningful comparison, read the entire stream from the
beginning. Also for comparison, create a new SkStream from the
SkData each time.
Add a debugging check to make sure we have an SkImageDecoder.
Add include guards.
nanobench.cpp:
Decode using SkCodec.
When decoding using SkImageDecoder, exclude benches where we decoded
to a different color type than requested. SkImageDecoder may decide to
decode to a different type, in which case the name is misleading.
TODOs:
Now that we ignore color types that do not match the desired
color type, we should add Index8. This also means calling the more
complex version of getPixels so CodecBench can support kIndex8.
BUG=skia:3257
Review URL: https://codereview.chromium.org/
1044363002
joshualitt [Wed, 1 Apr 2015 18:30:27 +0000 (11:30 -0700)]
Switch to one single bitmap text blob cache allocation
BUG=skia:
Review URL: https://codereview.chromium.org/
1041953002
mtklein [Wed, 1 Apr 2015 18:26:31 +0000 (11:26 -0700)]
Constructor and call argument forwarding for SkFunction.
BUG=skia:
Review URL: https://codereview.chromium.org/
1050113003
scroggo [Wed, 1 Apr 2015 18:25:20 +0000 (11:25 -0700)]
SkCodec::onGetScanlineDecoder must call rewind.
This mirrors the behavior in onGetPixels, and allows the implementation
to share code for handling calls to rewindIfNeeded.
This also fixes a bug where getScanlineDecoder was calling
rewindIfNeeded and treating the result as a bool.
In SkPngCodec, factor out the code to call rewindIfNeeded, and call it
in both onGetPixels and onGetScanlineDecoder.
Update the test to include testing the scanline decoder. Rename "gen"
to "codec" now that it must be an SkCodec.
BUG=skia:3257
Depends on https://codereview.chromium.org/
1048423003/ (DIFFERENT ISSUE).
Review URL: https://codereview.chromium.org/
1050893002
mtklein [Wed, 1 Apr 2015 18:21:27 +0000 (11:21 -0700)]
Add SkTHashSet::find()
BUG=skia:
Review URL: https://codereview.chromium.org/
1058553002
djsollen [Wed, 1 Apr 2015 18:20:12 +0000 (11:20 -0700)]
Revert of Enable both static and dynamically linked libpng (patchset #4 id:60001 of https://codereview.chromium.org/
1032253003/)
Reason for revert:
breaking the nexus_9 and ios builds.
Original issue's description:
> Enable both static and dynamically linked libpng
>
> All platforms except android are configured to use the statically linked copy of libpng. Android uses the system provided dynamic copy for SkImageDecoder and the static copy for SkCodec. The exception being android framework builds that currently use the dynamic copy everywhere.
>
> This CL also enables NEON optimizations for libpng.
>
> Committed: https://skia.googlesource.com/skia/+/
2469c999518e7b0063d35e9e2eb074a0477c21ac
TBR=scroggo@google.com,msarett@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/
1050183002
djsollen [Wed, 1 Apr 2015 17:33:55 +0000 (10:33 -0700)]
Enable both static and dynamically linked libpng
All platforms except android are configured to use the statically linked copy of libpng. Android uses the system provided dynamic copy for SkImageDecoder and the static copy for SkCodec. The exception being android framework builds that currently use the dynamic copy everywhere.
This CL also enables NEON optimizations for libpng.
Review URL: https://codereview.chromium.org/
1032253003
scroggo [Wed, 1 Apr 2015 17:24:37 +0000 (10:24 -0700)]
Acknowledge that SkIcoCodec can rewind and test it.
Since SkIcoCodec has an SkCodec for its encoded images, backed by
SkMemoryStreams, the SkMemoryStream can always rewind, and will be
rewound by the sub-codec if necessary (now that SkBmpCodec and
SkPngCodec support rewinding).
Depends on https://codereview.chromium.org/
1057483003/ and
https://codereview.chromium.org/
1048423003/ (DIFFERENT ISSUES).
BUG=skia:3257
Review URL: https://codereview.chromium.org/
1054603002
scroggo [Wed, 1 Apr 2015 16:33:23 +0000 (09:33 -0700)]
Make SkPngCodec support rewinding properly.
Separate out the code for reading the header, and use it to reinitialize
fPng_ptr and fInfo_ptr after a rewind.
Use common code to clean up fPng_ptr and fInfo_ptr, and set them to
NULL and treat them as NULL as appropriate.
Update the test to expect SkPngCodec to succeed.
BUG=skia:3257
Review URL: https://codereview.chromium.org/
1048423003
rmistry [Wed, 1 Apr 2015 16:12:51 +0000 (09:12 -0700)]
Find the HASHTAGS file even if you are not at the checkout root.
The post upload hook was failing if you were not at the root, this fixes it.
NOTRY=true
Review URL: https://codereview.chromium.org/
1058483002
mtklein [Wed, 1 Apr 2015 15:11:16 +0000 (08:11 -0700)]
small-object optimization for SkFunction
Anything <= sizeof(void*) will be inlined, avoiding heap allocation.
BUG=skia:
Review URL: https://codereview.chromium.org/
1048243002
scroggo [Wed, 1 Apr 2015 14:39:40 +0000 (07:39 -0700)]
Handle rewinds in SkBmpCodec.
Factor our BMP code for reading the header, and call it after a rewind.
BUG=skia:3257
Review URL: https://codereview.chromium.org/
1057483003
msarett [Wed, 1 Apr 2015 13:58:48 +0000 (06:58 -0700)]
Creating a new wrapper for gif decoder
BUG=skia:3257
BUG=skia:3534
Review URL: https://codereview.chromium.org/
1022673011
vbuzinov [Wed, 1 Apr 2015 13:29:49 +0000 (06:29 -0700)]
GrGLInterface: Add support for NV_framebuffer_mixed_samples
Import glCoverageModulation if NV_framebuffer_mixed samples
is available
BUG=skia:3177
Review URL: https://codereview.chromium.org/
993363002
rmistry [Wed, 1 Apr 2015 11:19:44 +0000 (04:19 -0700)]
Revert of Implement approx-match support in image filter saveLayer() offscreen. (patchset #27 id:510001 of https://codereview.chromium.org/
1034733002/)
Reason for revert:
Looks like this change is causing layout test failures which is blocking Skia's DEPS roll into Chromium:
https://codereview.chromium.org/
1050563002/
https://codereview.chromium.org/
1043133005/
https://codereview.chromium.org/
1048273002/
Reverting to see if this fixes the DEPS roll.
Original issue's description:
> Implement approx-match support in image filter saveLayer() offscreen.
>
> Currently, the GPU-side image filter implementation creates
> exact-match textures for the offscreen backing stores for
> saveLayer(). This is because several filters have GPU
> implementations which depend on the texture coordinates
> being 0..1.
>
> The fix is three-fold:
>
> 1) Store the actual requested size in the SkGpuDevice, so
> that when wrapping it in an SkBitmap for passing to
> filterImage(), we can give it the original size.
> 2) Fix the filters (SkMagnifierImageFilter,
> SkLightingImageFilter) whose GPU implementation depends on
> 0..1 texture coordinates.
> 3) Remove the exception for GPU-side image filters in
> SkCanvas::internalSaveLayer().
>
> For the lighting filters, there were two bugs which were
> cancelling each other out: the sobel filter matrix was
> being computed upside down, but then we'd negate the
> resulting normal. This worked fine in the exact-match case,
> but in the approx-match case we'd sample garbage along
> the edge pixels. Also, we never implemented the edge pixels
> according to spec in the GPU case. It requires a
> different fragment shader for each edge of the nine-patch,
> which meant we couldn't use asFragmentProcessor(), and had
> to implement the drawing via a filterImageGPU() override.
> In order to avoid polluting the public API, I inserted a
> new base class, SkLightingImageFilterInternal above
> Sk[Diffuse|Specular]LightingImageFilter to handle the
> implementation.
>
> N.B.: this change will cause some minor pixel diffs in the
> GPU results of the following GMs (and possibly more):
> matriximagefilter, matrixconvolution, imagefiltersscaled,
> lighting, imagemagnifier, filterfastbounds,
> complexclip_aa_Layer_invert, complexclip_aa_layer,
> complexclip_bw_layer_invert, complexclip_bw_layer.
>
> BUG=skia:3532
>
> Committed: https://skia.googlesource.com/skia/+/
b97dafefe63ea0a1bbce8e8b209f4920983fb8b9
>
> Committed: https://skia.googlesource.com/skia/+/
f5f8518fe0bbd2703e4ffc1b11ad7b4312ff7641
TBR=bsalomon@google.com,reed@chromium.org,senorblanco@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:3532
Review URL: https://codereview.chromium.org/
1057443003
mtklein [Tue, 31 Mar 2015 21:24:27 +0000 (14:24 -0700)]
Sketch SkFunction
Let's start with baby steps in case some bot can't handle this.
I have left many TODOs, most of which I know how to do if this
looks feasible and useful.
BUG=skia:
Review URL: https://codereview.chromium.org/
1049223003
joshualitt [Tue, 31 Mar 2015 20:32:05 +0000 (13:32 -0700)]
BitmapTextBatch and BitmapTextBlob
BUG=skia:
Committed: https://skia.googlesource.com/skia/+/
eed1dae04932483579b02c10f0706127d3f5d984
Review URL: https://codereview.chromium.org/
1011403004
halcanary [Tue, 31 Mar 2015 19:44:47 +0000 (12:44 -0700)]
SkPDF: style nit
TBR=mtklein@google.com
Review URL: https://codereview.chromium.org/
1039313004
halcanary [Tue, 31 Mar 2015 19:30:20 +0000 (12:30 -0700)]
SkPDF: Factor SkPDFCatalog into SkPDFObjNumMap and SkPDFSubstituteMap
Motivation: Keep separate features separate. Also, future
linearization work will need to have several objNumMap
objects share a substituteMap. Also "catalog" has a
specific meaning in PDF. This catalog did not map to that
catalog.
- Modify SkPDFObject::emitObject and SkPDFObject::addResources
interface to requiore SkPDFObjNumMap and SkPDFSubstituteMap.
- SkPDFObjNumMap const in SkPDFObject::emitObject.
- Remove SkPDFCatalog.cpp/.h
- Modify SkDocument_PDF.cpp to use new functions
- Fold in SkPDFStream::populate
- Fold in SkPDFBitmap::emitDict
- Move SkPDFObjNumMap and SkPDFSubstituteMap to SkPDFTypes.h
- Note (via assert) that SkPDFArray & SkPDFDict don't need to
check substitutes.
- Remove extra space from SkPDFDict serialization.
- SkPDFBitmap SkPDFType0Font SkPDFGraphicState SkPDFStream
updated to new interface.
- PDFPrimitivesTest updated for new interface.
BUG=skia:3585
Review URL: https://codereview.chromium.org/
1049753002
hendrikw [Tue, 31 Mar 2015 19:02:48 +0000 (12:02 -0700)]
skia: Fix text subpixel half sample default for GPU rasterization
In software, SkDraw1Glyph::Proc SkDraw1Glyph::init initializes
fHalfSampleX, fHalfSampleY to SkGlyph::kSubpixelRound. In hardware,
however, these values were initialized to zero.
Fix, match software's implementation
BUG=471919
Review URL: https://codereview.chromium.org/
1047803004
joshualitt [Tue, 31 Mar 2015 18:33:08 +0000 (11:33 -0700)]
Revert of BitmapTextBatch and BitmapTextBlob (patchset #18 id:360001 of https://codereview.chromium.org/
1011403004/)
Reason for revert:
Breaks a unit test on mac
Original issue's description:
> BitmapTextBatch and BitmapTextBlob
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/
eed1dae04932483579b02c10f0706127d3f5d984
TBR=fmalita@chromium.org,reed@google.com,jvanverth@google.com,robertphillips@google.com,bsalomon@google.com,jvanverth@chromium.org,joshualitt@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/
1050633002
joshualitt [Tue, 31 Mar 2015 18:04:53 +0000 (11:04 -0700)]
BitmapTextBatch and BitmapTextBlob
BUG=skia:
Review URL: https://codereview.chromium.org/
1011403004
rmistry [Tue, 31 Mar 2015 17:59:15 +0000 (10:59 -0700)]
Turn on Chromium's top 25 page set
#crskps
BUG=skia:
BUG=skia:3574
NOTRY=true
TBR=borenet
Review URL: https://codereview.chromium.org/
1045153004
senorblanco [Tue, 31 Mar 2015 15:35:15 +0000 (08:35 -0700)]
Implement approx-match support in image filter saveLayer() offscreen.
Currently, the GPU-side image filter implementation creates
exact-match textures for the offscreen backing stores for
saveLayer(). This is because several filters have GPU
implementations which depend on the texture coordinates
being 0..1.
The fix is three-fold:
1) Store the actual requested size in the SkGpuDevice, so
that when wrapping it in an SkBitmap for passing to
filterImage(), we can give it the original size.
2) Fix the filters (SkMagnifierImageFilter,
SkLightingImageFilter) whose GPU implementation depends on
0..1 texture coordinates.
3) Remove the exception for GPU-side image filters in
SkCanvas::internalSaveLayer().
For the lighting filters, there were two bugs which were
cancelling each other out: the sobel filter matrix was
being computed upside down, but then we'd negate the
resulting normal. This worked fine in the exact-match case,
but in the approx-match case we'd sample garbage along
the edge pixels. Also, we never implemented the edge pixels
according to spec in the GPU case. It requires a
different fragment shader for each edge of the nine-patch,
which meant we couldn't use asFragmentProcessor(), and had
to implement the drawing via a filterImageGPU() override.
In order to avoid polluting the public API, I inserted a
new base class, SkLightingImageFilterInternal above
Sk[Diffuse|Specular]LightingImageFilter to handle the
implementation.
N.B.: this change will cause some minor pixel diffs in the
GPU results of the following GMs (and possibly more):
matriximagefilter, matrixconvolution, imagefiltersscaled,
lighting, imagemagnifier, filterfastbounds,
complexclip_aa_Layer_invert, complexclip_aa_layer,
complexclip_bw_layer_invert, complexclip_bw_layer.
BUG=skia:3532
Committed: https://skia.googlesource.com/skia/+/
b97dafefe63ea0a1bbce8e8b209f4920983fb8b9
Review URL: https://codereview.chromium.org/
1034733002
halcanary [Tue, 31 Mar 2015 15:22:01 +0000 (08:22 -0700)]
SkPDF: remove SK_NO_FLATE & dead code in SkPDFStream
SkPDFStream copy constructor
SkPDFStream Substitute mechanism
SkPDFStream::setData(NULL);
SkPDFStream SK_NO_FLATE logic
BUG=skia:3585
TBR=bsalomon@google.com,reed@google.com
Review URL: https://codereview.chromium.org/
1041183002
mtklein [Tue, 31 Mar 2015 15:17:00 +0000 (08:17 -0700)]
back to Sk4f for SkPMColor
#floats
BUG=skia:
BUG=skia:3592
Review URL: https://codereview.chromium.org/
1047823002
rmistry [Tue, 31 Mar 2015 15:03:02 +0000 (08:03 -0700)]
Fix cr SKPs naming
#crskps
BUG=skia:
BUG=skia:3574
NOTRY=true
TBR=borenet
Review URL: https://codereview.chromium.org/
1044193003
rmistry [Tue, 31 Mar 2015 13:22:55 +0000 (06:22 -0700)]
Turn on key mobile sites cr page set and delete dashed desktop
#crskps
BUG=skia:3574
BUG=skia:3605
NOTRY=true
Review URL: https://codereview.chromium.org/
1040233004
rmistry [Tue, 31 Mar 2015 12:20:12 +0000 (05:20 -0700)]
Fix gs.upload_dir_contents arguments mismatch
Fixing bug introduced by https://codereview.chromium.org/
737123005
BUG=skia:
NOTRY=true
TBR=borenet
Review URL: https://codereview.chromium.org/
1041003003
rmistry [Tue, 31 Mar 2015 12:04:29 +0000 (05:04 -0700)]
Add ability to capture SKPs from Chromium's pagesets
Also added support for pagesets with multiple pages in them.
#crskps
BUG=skia:1723
BUG=skia:3574
NOTRY=true
Review URL: https://codereview.chromium.org/
1047703003
kkinnunen [Tue, 31 Mar 2015 07:18:26 +0000 (00:18 -0700)]
webpages_playback.py: Support storing to local directories
Make webpages_playback support storing to local directories as an
alternative to Google Storage.
Rename argument --dest_gsbase to --data_store=<location>. Make this parameter
accept either gs:// url or directory for local file system storage.
Rename argument --upload_to_gs to --upload.
Implement file existence check, download and upload for the file
operation.
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/
737123005
reed [Mon, 30 Mar 2015 20:40:30 +0000 (13:40 -0700)]
clamp matrix-translate before converting to pmcolor
.. thanks to https://codereview.chromium.org/
1032593003/ layout failures
BUG=skia:
Review URL: https://codereview.chromium.org/
1041203004
bungeman [Mon, 30 Mar 2015 19:53:48 +0000 (12:53 -0700)]
Add option to embed font data into executable.
Some tools would like to be built with all resources embedded.
This change makes it possible to build a font manager which
uses font data embedded into the executable.
Review URL: https://codereview.chromium.org/
1015723004
msarett [Mon, 30 Mar 2015 18:59:36 +0000 (11:59 -0700)]
Silence giflib warning on mac
BUG=skia:3601
Review URL: https://codereview.chromium.org/
1046923004
mtklein [Mon, 30 Mar 2015 17:50:27 +0000 (10:50 -0700)]
Refactor Sk2x<T> + Sk4x<T> into SkNf<N,T> and SkNi<N,T>
The primary feature this delivers is SkNf and SkNd for arbitrary power-of-two N. Non-specialized types or types larger than 128 bits should now Just Work (and we can drop in a specialization to make them faster). Sk4s is now just a typedef for SkNf<4, SkScalar>; Sk4d is SkNf<4, double>, Sk2f SkNf<2, float>, etc.
This also makes implementing new specializations easier and more encapsulated. We're now using template specialization, which means the specialized versions don't have to leak out so much from SkNx_sse.h and SkNx_neon.h.
This design leaves us room to grow up, e.g to SkNf<8, SkScalar> == Sk8s, and to grown down too, to things like SkNi<8, uint16_t> == Sk8h.
To simplify things, I've stripped away most APIs (swizzles, casts, reinterpret_casts) that no one's using yet. I will happily add them back if they seem useful.
You shouldn't feel bad about using any of the typedef Sk4s, Sk4f, Sk4d, Sk2s, Sk2f, Sk2d, Sk4i, etc. Here's how you should feel:
- Sk4f, Sk4s, Sk2d: feel awesome
- Sk2f, Sk2s, Sk4d: feel pretty good
No public API changes.
TBR=reed@google.com
BUG=skia:3592
Review URL: https://codereview.chromium.org/
1048593002
joshualitt [Mon, 30 Mar 2015 16:53:47 +0000 (09:53 -0700)]
Small change to move GrProcessor and GrBatch pools over to SkSpinlock
BUG=skia:
Review URL: https://codereview.chromium.org/
1040133002
mtklein [Mon, 30 Mar 2015 15:13:33 +0000 (08:13 -0700)]
Extract the spinlock from SkOnce as SkSpinlock.
This uses slightly newer APIs from SkAtomics.h to make it a bit more efficient.
No public API changes.
TBR=reed@google.com
BUG=skia:
Review URL: https://codereview.chromium.org/
1039323002
robertphillips [Mon, 30 Mar 2015 15:09:58 +0000 (08:09 -0700)]
Revert of Remove SkClipStack's manual rounding of BW clip rects (patchset #3 id:80001 of https://codereview.chromium.org/
1033453003/)
Reason for revert:
Reverting due to performance regression: https://code.google.com/p/skia/issues/detail?id=3597
Original issue's description:
> Remove SkClipStack's manual rounding of BW clip rects
>
> The full fix for this bug is nudging the image in device space. That is going to be a large change. This CL should address the immediate problem.
>
> This CL will alter the following GMs:
> clipdrawdraw
> convex_poly_clip
> complexclip_bw_*
> filltypespersp
> complexclip3_simple
>
>
>
> BUG=423834
>
> Committed: https://skia.googlesource.com/skia/+/
e523d4f90c3368c555282a98b41ca5ee2045103e
TBR=bsalomon@google.com,joshualitt@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=423834
Review URL: https://codereview.chromium.org/
1045853002
cdalton [Mon, 30 Mar 2015 14:52:57 +0000 (07:52 -0700)]
Fix variable names in xfermodes2 gm test
BUG=skia:
Review URL: https://codereview.chromium.org/
1041913002
msarett [Mon, 30 Mar 2015 14:52:52 +0000 (07:52 -0700)]
WIP: Added support for giflib, updated jpeg and png
BUG=skia:3257
Committed: https://skia.googlesource.com/skia/+/
255dcd11992ebe74eb54202c48cf5394d33a8ce6
Review URL: https://codereview.chromium.org/
1038863003
rmistry [Mon, 30 Mar 2015 13:27:21 +0000 (06:27 -0700)]
Add hashtag for the new skps bug
#crskps
BUG=skia:3574
NOTRY=true
NOTREECHECKS=true
TBR=borenet
Review URL: https://codereview.chromium.org/
1042873002
borenet [Mon, 30 Mar 2015 12:51:49 +0000 (05:51 -0700)]
Revert of WIP: Added support for giflib, updated jpeg and png (patchset #8 id:260001 of https://codereview.chromium.org/
1038863003/)
Reason for revert:
Trying out revert to see if it fixes Android bots.
Original issue's description:
> WIP: Added support for giflib, updated jpeg and png
>
> BUG=skia:3257
>
> Committed: https://skia.googlesource.com/skia/+/
255dcd11992ebe74eb54202c48cf5394d33a8ce6
TBR=djsollen@google.com,scroggo@google.com,msarett@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:3257
Review URL: https://codereview.chromium.org/
1048713003
kkinnunen [Mon, 30 Mar 2015 05:33:16 +0000 (22:33 -0700)]
webpages_playback.py: Avoid crash when retrying to capture skp
Move the .wpr files after recording, in the recording retry loop.
Previously they were moved in the skp capture retry loop.
Review URL: https://codereview.chromium.org/
1033223005
reed [Sun, 29 Mar 2015 18:58:48 +0000 (11:58 -0700)]
use Sk4f for matrix math
Need to land SK_SUPPORT_LEGACY_SCALAR_MAPPOINTS in chrome to suppress Affine
version which causes slight differences (which will need to be rebaselined)
BUG=skia:
Review URL: https://codereview.chromium.org/
1045493002
skia.buildbots [Sun, 29 Mar 2015 08:19:04 +0000 (01:19 -0700)]
Update SKP version
Automatic commit by the RecreateSKPs bot.
TBR=
Review URL: https://codereview.chromium.org/
1046623002
senorblanco [Sat, 28 Mar 2015 21:50:05 +0000 (14:50 -0700)]
Revert "Implement approx-match support in image filter saveLayer() offscreen."
This reverts commit
b97dafefe63ea0a1bbce8e8b209f4920983fb8b9.
SkLightingImageFilter boundaries are incorrect (see GM:lighting).
BUG=skia:
TBR=
Review URL: https://codereview.chromium.org/
1048583002
senorblanco [Sat, 28 Mar 2015 20:43:14 +0000 (13:43 -0700)]
Implement approx-match support in image filter saveLayer() offscreen.
Currently, the GPU-side image filter implementation creates exact-match
textures for the offscreen backing stores for saveLayer(). This is
because several filters have GPU implementations which depend on the
texture coordinates being 0..1.
The fix is three-fold:
1) Store the actual requested size in the SkGpuDevice, so that when
wrapping it in an SkBitmap for passing to filterImage(), we can give
it the original size.
2) Fix the filters (SkMagnifierImageFilter, more TBD) whose GPU
implementation depends on 0..1 texture coordinates.
3) Remove the exception for GPU-side image filters in
SkCanvas::internalSaveLayer().
N.B.: this change will cause some minor pixel diffs in the
GPU results of the following GMs (and possibly more):
matriximagefilter, matrixconvolution, imagefiltersscaled,
lighting, imagemagnifier, filterfastbounds,
complexclip_aa_Layer_invert, complexclip_aa_layer,
complexclip_bw_layer_invert, complexclip_bw_layer.
BUG=skia:3532
Review URL: https://codereview.chromium.org/
1034733002
reed [Fri, 27 Mar 2015 21:00:41 +0000 (14:00 -0700)]
use table of procs (and unrolling) to speed up mapPts
BUG=skia:
Review URL: https://codereview.chromium.org/
1040783002
scroggo [Fri, 27 Mar 2015 20:27:51 +0000 (13:27 -0700)]
Remove SkMemoryStream::peek()
I'd like to add a new API to SkStream for peeking - i.e. reading some
bytes without advancing the stream. This will be implemented for the
streams where it makes sense. I think the function should look
something like the following:
size_t peek(void* buffer, size_t bytesToRead) {
return this->onPeek(buffer, bytesToRead);
}
virtual size_t onPeek(void* buffer, size_t bytesToRead) {
return 0; // unimplemented base class.
}
In order to avoid confusion, I'd like to remove SkMemoryStream::peek(),
which is not currently used internally, by Chrome, or by Android as far
as I can tell. There is also another function does the same thing:
getPosition().
BUG=skia:3257
Review URL: https://codereview.chromium.org/
1039373002
mtklein [Fri, 27 Mar 2015 19:33:46 +0000 (12:33 -0700)]
Use a black background in imagefiltersgraph so 8888 and 565 look similar.
BUG=skia:
Review URL: https://codereview.chromium.org/
1041773003
egdaniel [Fri, 27 Mar 2015 19:22:10 +0000 (12:22 -0700)]
Housekeeping to rename GrGL compressed texture formats to match GL specs
BUG=skia:
Review URL: https://codereview.chromium.org/
1035243002
tomhudson [Fri, 27 Mar 2015 19:22:01 +0000 (12:22 -0700)]
Move HWUI boilerplate into utils/android
Duplicate code from the HWUI backends for DM and nanobench
moves into a single place, saving a hundred lines or more of
cut-and-paste.
There's some indication that this increases the incidence of
SkCanvas "Unable to find device for layer." warnings, but no
clear degradation in test results.
R=djsollen@google.com,mtklein@google.com
BUG=skia:3589
Review URL: https://codereview.chromium.org/
1036303002
msarett [Fri, 27 Mar 2015 19:17:00 +0000 (12:17 -0700)]
WIP: Added support for giflib, updated jpeg and png
BUG=skia:3257
Review URL: https://codereview.chromium.org/
1038863003
halcanary [Fri, 27 Mar 2015 19:16:53 +0000 (12:16 -0700)]
SkCodec: add wbmp class
Review URL: https://codereview.chromium.org/
1006583005
halcanary [Fri, 27 Mar 2015 19:11:49 +0000 (12:11 -0700)]
tools: add sync-and-gyp script
NOTRY=true
Review URL: https://codereview.chromium.org/
1035003004
tomhudson [Fri, 27 Mar 2015 19:11:44 +0000 (12:11 -0700)]
Minor cleanup in nanobench
Simplify time() by removing conditionals; reduce the amount of
parameter passing.
Add a convenience function to Target.
R=mtklein@google.com
BUG=skia:3595
Review URL: https://codereview.chromium.org/
1039253002
borenet [Fri, 27 Mar 2015 16:46:25 +0000 (09:46 -0700)]
Whitespace change to see if Android bots are fixed
TBR=rmistry
NOTREECHECKS=true
BUG=skia:2073
Review URL: https://codereview.chromium.org/
1039023003
borenet [Fri, 27 Mar 2015 12:42:18 +0000 (05:42 -0700)]
Update [dm|nanobench]_flags for CPU/GPU split
TBR=mtklein
NOTREECHECKS=true
BUG=skia:2073
Review URL: https://codereview.chromium.org/
1036223002
reed [Fri, 27 Mar 2015 03:22:33 +0000 (20:22 -0700)]
impl SkConvertQuadToCubic w/ Sk2s
BUG=skia:
TBR=
Review URL: https://codereview.chromium.org/
1041573002
robertphillips [Fri, 27 Mar 2015 02:57:08 +0000 (19:57 -0700)]
Add matrix constructing helpers to SkMatrix
Review URL: https://codereview.chromium.org/
1034273002
halcanary [Thu, 26 Mar 2015 22:35:18 +0000 (15:35 -0700)]
SkPDF fix object counting error
Review URL: https://codereview.chromium.org/
1012483003
senorblanco [Thu, 26 Mar 2015 21:52:45 +0000 (14:52 -0700)]
Remove some validation and asserts from tessellating path renderer.
In some cases, resolving an intersection can cause a vertex to go
slightly out-of-order with edges which have already been processed.
This doesn't cause any algorithmic errors, but it's difficult to detect
without impacting performance significantly.
Also, the GPU infrastructure fires asserts when attempting
to allocate 0-length vertex buffers. Early-out instead,
since there's nothing to draw.
Review URL: https://codereview.chromium.org/
1032253005
halcanary [Thu, 26 Mar 2015 21:08:56 +0000 (14:08 -0700)]
Fix DiscardableMemoryPool::free race condition
BUG=skia:3596
Review URL: https://codereview.chromium.org/
1017943003
reed [Thu, 26 Mar 2015 20:40:09 +0000 (13:40 -0700)]
Revert of Make the canvas draw looper setup update the canvas save count (patchset #1 id:1 of https://codereview.chromium.org/
1034033004/)
Reason for revert:
makes internalSave and internalSaveLayer inconsistent. Need to find a different solution.
Original issue's description:
> Make the canvas draw looper setup update the canvas save count
>
> Image filter in a paint would leave save count in wrong state
> for normal draws. This could be observed through the canvas
> references during the draw call. An example of this is
> inspecting the canvas during a draw looper.
>
> patch from issue
993863002 at patchset 20001 (http://crrev.com/
993863002#ps20001)
>
> BUG=skia:
> TBR=kkinnunen@nvidia.com
>
> Committed: https://skia.googlesource.com/skia/+/
fd3a91e1fc4de69611b5297f624a1cd65db4ced1
TBR=kkinnunen@nvidia.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/
1037653004
reed [Thu, 26 Mar 2015 20:29:56 +0000 (13:29 -0700)]
Make the canvas draw looper setup update the canvas save count
Image filter in a paint would leave save count in wrong state
for normal draws. This could be observed through the canvas
references during the draw call. An example of this is
inspecting the canvas during a draw looper.
patch from issue
993863002 at patchset 20001 (http://crrev.com/
993863002#ps20001)
BUG=skia:
TBR=kkinnunen@nvidia.com
Review URL: https://codereview.chromium.org/
1034033004
mtklein [Thu, 26 Mar 2015 19:32:29 +0000 (12:32 -0700)]
SkPMFloat::trunc()
Add and test trunc(), which is what get() used to be before rounding.
Using trunc() is a ~40% speedup on our linear gradient bench.
#neon #floats
BUG=skia:3592
#n5
#n9
CQ_INCLUDE_TRYBOTS=client.skia.android:Test-Android-Nexus5-Adreno330-Arm7-Debug-Trybot;client.skia.android:Test-Android-Nexus9-TegraK1-Arm64-Release-Trybot
Review URL: https://codereview.chromium.org/
1032243002
tomhudson [Thu, 26 Mar 2015 18:28:06 +0000 (11:28 -0700)]
Android HWUI backend Nanobench
Uses filtering canvas from utils/android, shared with DM.
Follow-up plans in https://skbug.com/3589, https://skbug.com/3595
R=djsollen@google.com
Review URL: https://codereview.chromium.org/
1029423010
joshualitt [Thu, 26 Mar 2015 17:41:02 +0000 (10:41 -0700)]
small fix for nanobench segfault when not running any tests
BUG=skia:
Review URL: https://codereview.chromium.org/
1030353004
egdaniel [Thu, 26 Mar 2015 17:13:05 +0000 (10:13 -0700)]
Remove unused HWAA flag and uniqueID field from GrDrawTargetCaps.
BUG=skia:
Review URL: https://codereview.chromium.org/
1019303005
robertphillips [Thu, 26 Mar 2015 17:08:04 +0000 (10:08 -0700)]
Debugger: remove dead feature (SkPicture offset display) & fix bug (unbalanced indents)
Displaying the offset into an SkPicture hasn't worked for a while so this CL deletes the feature.
When "Save Layer" was renamed to "SaveLayer" the code that computes the indent in the list view was broken. This CL patches the problem.
Review URL: https://codereview.chromium.org/
1034733004
scroggo [Thu, 26 Mar 2015 17:07:56 +0000 (10:07 -0700)]
Silence PNG warnings from SkPngCodec.
Review URL: https://codereview.chromium.org/
1009633005
reed [Thu, 26 Mar 2015 16:10:22 +0000 (09:10 -0700)]
use new faster/vector impl for chopping conics
BUG=skia:
Review URL: https://codereview.chromium.org/
1035943002
egdaniel [Thu, 26 Mar 2015 16:09:41 +0000 (09:09 -0700)]
Add support for using alternative backends (like DirectX) when creating a GrGpu.
BUG=skia:
Review URL: https://codereview.chromium.org/
1038643002
caryclark [Thu, 26 Mar 2015 16:05:12 +0000 (09:05 -0700)]
add legacy pathop enums; fix uninitialized warning
R=reed@google.com
BUG=skia:3588
NOTREECHECKS=true
NOTRY=true
NOPRESUBMIT=true
Review URL: https://codereview.chromium.org/
1034073004
caryclark [Thu, 26 Mar 2015 14:52:43 +0000 (07:52 -0700)]
cumulative pathops patch
Replace the implicit curve intersection with a geometric curve intersection. The implicit intersection proved mathematically unstable and took a long time to zero in on an answer.
Use pointers instead of indices to refer to parts of curves. Indices required awkward renumbering.
Unify t and point values so that small intervals can be eliminated in one pass.
Break cubics up front to eliminate loops and cusps.
Make the Simplify and Op code more regular and eliminate arbitrary differences.
Add a builder that takes an array of paths and operators.
Delete unused code.
BUG=skia:3588
R=reed@google.com
Review URL: https://codereview.chromium.org/
1037573004