Commit Graph

17069 Commits

Author SHA1 Message Date
fmalita
632e92fc3f [SkPDFDevice] Enable pathops-based inverse fills
Keeping the old compile guard for clipping only.

BUG=skia:3749
R=halcanary@google.com,caryclark@google.com,reed@google.com

Review URL: https://codereview.chromium.org/1099953002
2015-04-22 15:02:04 -07:00
senorblanco
31d36b0871 Remove MSAA check from Ganesh veto (dashed paths are no longer slow).
R=egdaniel@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1098753004
2015-04-22 14:33:35 -07:00
egdaniel
cf614fd48e Move function to be static instead of anonymous namespace
TBR=bsalomon@google.com, jvanverth@google.com

BUG=skia:

Review URL: https://codereview.chromium.org/1057363004
2015-04-22 13:58:58 -07:00
joshualitt
97202d2821 Fix for segfault on destruction of BitmapTextBlob
BUG=skia:

Review URL: https://codereview.chromium.org/1065773005
2015-04-22 13:47:02 -07:00
senorblanco
2b4bb07492 Improve the curve tessellation subdivision of the path renderers.
The stencil-and-cover and tessellating path renderers currently
tessellate curves to linear segments to within one screen space pixel.
This is fairly poor accuracy, as can be seen from the strokecircle GM:
there are noticeable rotating bumps on the circles.

Improving the tolerance to 0.25 pixel eliminates the bumps, and
approximates the 16x supersampling of the raster path.
This does have a performance hit: 3-6% on desktop on
the IE chalkboard demo, ~1% on Nexus 7 2013.

Note: this will require rebaselining a number of GPU and  MSAA images
in Skia, but nothing in Chrome (yet).

BUG=skia:3731

Review URL: https://codereview.chromium.org/1072273007
2015-04-22 13:45:18 -07:00
egdaniel
b0e1be207f Refactor createTexture and onCreateTexture
BUG=skia:

Review URL: https://codereview.chromium.org/1102663002
2015-04-22 13:27:40 -07:00
joshualitt
b30938ba7f Revert of enable TextBlob / Batch (patchset #1 id:1 of https://codereview.chromium.org/1077813004/)
Reason for revert:
seg fault

Original issue's description:
> enable TextBlob / Batch
>
> TBR=bsalomon@google.com
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/b75f8100ace48e74319ccf43d82deaac446784b2

TBR=bsalomon@google.com,joshualitt@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1096433007
2015-04-22 11:38:58 -07:00
bsalomon
c6534a28a6 Make pixel_snap GMs incur less platform-specific variation
Review URL: https://codereview.chromium.org/1080393009
2015-04-22 11:34:46 -07:00
joshualitt
12c20e40a4 Fix for GrAtlasTextContext memory leak
BUG=skia:

Review URL: https://codereview.chromium.org/1072193009
2015-04-22 11:24:20 -07:00
rmistry
8892277d0b Rewrite and move Cluster Telemetry documentation to skia.org
BUG=skia:3754
NOTRY=true
DOCS_PREVIEW= https://skia.org/?cl=1074943003

Review URL: https://codereview.chromium.org/1074943003
2015-04-22 11:03:12 -07:00
cdalton
bae6f6c3ec Add tokens and entry points for KHR_blend_equation_advanced
Also adds glBlendEquation, which the extension interacts with, to the
core of GrGLInterface. Validation of this function is temporarily
disabled until Chrome hooks it up.

BUG=skia:

Review URL: https://codereview.chromium.org/1039693004
2015-04-22 10:39:03 -07:00
bsalomon
87cbcf3f86 Add GM to test non-AA pixel snapping for points, lines, rects.
Review URL: https://codereview.chromium.org/1070213003
2015-04-22 08:51:38 -07:00
joshualitt
b75f8100ac enable TextBlob / Batch
TBR=bsalomon@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1077813004
2015-04-22 05:19:54 -07:00
mtklein
98b8485a4c O(1) SkPictureUtils::ApproxBytesUsed()
Chrome wants to call this more often, and it's quite slow today.

Seems like this could be clearer if SkPictureUtils::ApproxBytesUsed() were SkPicture::approxBytesUsed().

BUG=chromium:471873

Review URL: https://codereview.chromium.org/1090943004
2015-04-21 15:24:00 -07:00
mtklein
5ae0e2b563 Default to arm_v7_neon.
This aliases all devices we know have NEON over to that too.

BUG=skia:

Review URL: https://codereview.chromium.org/1095953007
2015-04-21 14:25:34 -07:00
tomhudson
2575f317d3 Revert of Add tokens and entry points for KHR_blend_equation_advanced (patchset #3 id:40001 of https://codereview.chromium.org/1039693004/)
Reason for revert:
We're getting repeated crashes since this CL landed when we try to evaluate a roll into Chrome on our bots. (https://uberchromegw.corp.google.com/i/client.skia/builders/Linux%20Tests/builds/1902)

Our initial reflex is to put a #if 0 around this code (just like the immediately following lines 334-338 in GrGLInterface.cpp), but the error isn't what the GPU team expected to see if that was all we needed, so we're reverting now and asking you to resubmit tomorrow after running more thorough tests.

Original issue's description:
> Add tokens and entry points for KHR_blend_equation_advanced
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/8e578859f80b46a63144add215955221017d3609

TBR=markkilgard@gmail.com,bsalomon@google.com,cdalton@nvidia.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1101593002
2015-04-21 14:16:53 -07:00
joshualitt
a7c6389ebf fix some small bugs with GrAtlasTextContext
BUG=skia:

Review URL: https://codereview.chromium.org/1098093003
2015-04-21 13:24:37 -07:00
cdalton
8e578859f8 Add tokens and entry points for KHR_blend_equation_advanced
BUG=skia:

Review URL: https://codereview.chromium.org/1039693004
2015-04-21 12:34:09 -07:00
mtklein
d8afd50b5a Android's Clang toolchain can't assemble the JPEG's .S files.
Only affecting Build-Mac10.8-Clang-Arm7-Debug-Android.

BUG=skia:

Review URL: https://codereview.chromium.org/1093423003
2015-04-21 12:07:38 -07:00
cdalton
fd4167ddf1 Import glTextureBarrier
BUG=skia:

Review URL: https://codereview.chromium.org/1090163002
2015-04-21 11:45:56 -07:00
mtklein
d557462f1f Skip msaa4 on Tegra 2 and 3.
This will fix the N7 and Xoom bots.

TBR=borenet@google.com

BUG=skia:

Review URL: https://codereview.chromium.org/1099943002
2015-04-21 11:25:47 -07:00
senorblanco
42a2c1d231 Revert "One more ASAN fix."
This reverts commit 409fd66a5a.

We don't expect to pass this test until the ASAN bots are
correctly configured, and can run GPU tests.

BUG=skia:
TBR=robertphillips@google.com

Review URL: https://codereview.chromium.org/1080393003
2015-04-21 11:13:17 -07:00
mtklein
05641a5582 DM: failure to canary a sink is now fatal.
This requires we remove NVPR from the default set of configs, as we only find
out at runtime that it's not available.  All the other defaults will either be
compiled in and supported, or not compiled in and non-fatally skipped as
unknown configs.

BUG=skia:

Review URL: https://codereview.chromium.org/1100773003
2015-04-21 10:49:14 -07:00
mtklein
fca5c88873 Ask for NVPR only when we expect it to be available.
BUG=skia:

Review URL: https://codereview.chromium.org/1099023003
2015-04-21 10:34:47 -07:00
Greg Humphreys
1bdc9351ec typo in sherrifing docs
BUG=skia:
NOTRY=true
DOCS_PREVIEW= https://skia.org/?cl=1097353002

Review URL: https://codereview.chromium.org/1097353002
2015-04-21 10:28:44 -07:00
tomhudson
d7c677104a Support HWUI rename of DisplayListRenderer
R=djsollen@google.com,ccraik@google.com

Review URL: https://codereview.chromium.org/1086083004
2015-04-21 10:09:07 -07:00
joshualitt
010db5346e Some simple optimizations for improving GrAtlasTextContext perf
BUG=skia:

Review URL: https://codereview.chromium.org/1093083003
2015-04-21 10:07:26 -07:00
senorblanco
409fd66a5a One more ASAN fix.
Don't fail the GL validation check if the GL context fails to create.

TBR=robertphillips@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1096113003
2015-04-21 09:43:08 -07:00
joshualitt
64c99cc90e Add support for rotating / scaling / translating gpu cached distance field textblobs
BUG=skia:

Review URL: https://codereview.chromium.org/1092283002
2015-04-21 09:43:03 -07:00
mtklein
59bcfaed66 Split default and user-supplied event tracers.
Chrome's got a test scenario where setting the user-supplied tracer is racing with a concurrent use of the default tracer.

BUG=chromium:437044

No public API changes.
TBR=reed@google.com

Review URL: https://codereview.chromium.org/1099123002
2015-04-21 09:38:03 -07:00
joshualitt
ae32c102e7 Store pointers to GrGlyph directly in BitmapTextBlob. This patch improves performance by avoiding hashmap lookups under normal use
BUG=skia:

Review URL: https://codereview.chromium.org/1087203004
2015-04-21 09:37:57 -07:00
stephana
cdec56e72b Landing directly for testing the ios buildbot code.
BUG=skia:
TBR=borenet

Review URL: https://codereview.chromium.org/1087653005
2015-04-21 08:31:59 -07:00
mtklein
a4a0aeb748 Revert of Convert Color32 code to perfect blend. (patchset #6 id:100001 of https://codereview.chromium.org/1098913002/)
Reason for revert:
Xfermode_SrcOver not looking encouraging.  Up to 50% regressions.

https://perf.skia.org/#3242

Original issue's description:
> Convert Color32 code to perfect blend.
>
> Before we commit to blend_256_round_alt, let's make sure blend_perfect is
> really slower in practice (i.e. regresses on perf.skia.org).
>
> blend_perfect is really the most desirable algorithm if we can afford it.  Not
> only is it correct, but it's easy to think about and break into correct pieces:
> for instance, its div255() doesn't require any coordination with the multiply.
>
> This looks like a 30% hit according to microbenches.  That said, microbenches
> said my previous change would be a 20-25% perf improvement, but it didn't end
> up showing a significant effect at a high level.
>
> As for correctness, I see a bunch of off-by-1 compared to blend_256_round_alt
> (exactly what we'd expect), and one off-by-3 in a GM that looks like it has a
> bunch of overdraw.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/61221e7f87a99765b0e034020e06bb018e2a08c2

TBR=reed@google.com,fmalita@chromium.org,mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1083923006
2015-04-21 08:09:30 -07:00
joshualitt
8672f4dffa Pack BitmapTextBlob a bit tighter
BUG=skia:

Review URL: https://codereview.chromium.org/1092973004
2015-04-21 08:03:04 -07:00
joshualitt
25ba7ea2ed reuse scaler across consecutive textbatch flushes
BUG=skia:

Review URL: https://codereview.chromium.org/1091313002
2015-04-21 07:49:49 -07:00
joshualitt
fcfb9fc4bd A small patch to enable distance field text in textblobs
BUG=skia:

Review URL: https://codereview.chromium.org/1098653005
2015-04-21 07:35:10 -07:00
senorblanco
c8e934007a Yet more ASAN fixes.
More nullptr checks for factories I have added.
Other checks more Yoda-like I have made. (Skia style this is.)

BUG=skia:

Review URL: https://codereview.chromium.org/1086393004
2015-04-21 07:20:36 -07:00
senorblanco
84bfd3958f Another speculative ASAN fix.
Add a GrContext nullptr check in SurfaceTest.

TBR=robertphillips@google.com

Review URL: https://codereview.chromium.org/1098993004
2015-04-21 06:59:17 -07:00
mtklein
33d73c39dd SkTHash: remove()
BUG=skia:

Review URL: https://codereview.chromium.org/1057043003
2015-04-21 06:53:56 -07:00
egdaniel
bc227140ff Undo the bounds mapping of bounds for GrOvalRenderer for certain draws
BUG=skia:

Review URL: https://codereview.chromium.org/1099873002
2015-04-21 06:28:08 -07:00
caryclark
df386c54bd fix valgrind uninitialized var error
R=mtklein@google.com

Review URL: https://codereview.chromium.org/1097293002
2015-04-21 05:27:02 -07:00
senorblanco
0e95b116fc Speculative fix for ASAN build.
Check for NULL GrContext in TessellatingPathRendererTests.
Also fix an upload nag (no #includes before GPU #ifdef).

TBR=bsalomon@google.com

Review URL: https://codereview.chromium.org/1097943004
2015-04-20 15:00:06 -07:00
senorblanco
f3c2c46cf8 Make the GPU dashing effect MSAA-friendly.
Review URL: https://codereview.chromium.org/1092793006
2015-04-20 14:44:26 -07:00
bungeman
e1ddb3b190 Regularize lmp::XXX_element_handler.
This makes all non-XMLCALL element_handler functions uniform by making
their signature

void XXX_element_handler(FamilyData* self, const char** attributes)

This makes the code somewhat easier to follow, as it makes explicit
which functions are actually logically methods of FamilyData (start
with 'FamilyData* self') and which are called directly by expat
(start with 'void* data').

Review URL: https://codereview.chromium.org/1086943007
2015-04-20 13:31:46 -07:00
jvanverth
d1e72875d1 Minor modifications to GrProgramDesc.h.
BUG=skia:

Review URL: https://codereview.chromium.org/1100483003
2015-04-20 12:29:37 -07:00
egdaniel
9ef1bb1375 Return correctly mapped bounds from GrOvalRenderer.
Before we were returning non transformed bounds for the ovals instead of
device bounds from the various draw calls. This was causing us to do dst
copies from the wrong portion of the screen when there was some transform
on the matrix.

This fixes the gpu issues from the new imagefilters-xfermodes gm as well an
old bug from the srcmode GM.

BUG=skia:

Review URL: https://codereview.chromium.org/1090453003
2015-04-20 12:28:57 -07:00
bungeman
f61475e95d Regularize informative messages in Android font parser.
The Android font parser prints a number of helpful messages when
something seems amiss in the configuration file. Give all of these
messages a common and more informative format.

Review URL: https://codereview.chromium.org/1096063003
2015-04-20 11:16:48 -07:00
mtklein
61221e7f87 Convert Color32 code to perfect blend.
Before we commit to blend_256_round_alt, let's make sure blend_perfect is
really slower in practice (i.e. regresses on perf.skia.org).

blend_perfect is really the most desirable algorithm if we can afford it.  Not
only is it correct, but it's easy to think about and break into correct pieces:
for instance, its div255() doesn't require any coordination with the multiply.

This looks like a 30% hit according to microbenches.  That said, microbenches
said my previous change would be a 20-25% perf improvement, but it didn't end
up showing a significant effect at a high level.

As for correctness, I see a bunch of off-by-1 compared to blend_256_round_alt
(exactly what we'd expect), and one off-by-3 in a GM that looks like it has a
bunch of overdraw.

BUG=skia:

Review URL: https://codereview.chromium.org/1098913002
2015-04-20 10:52:26 -07:00
reed
4912437891 adjust GM to have a final opaque bg, to make it easier to triage
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1085333003
2015-04-20 09:10:31 -07:00
caryclark
1049f1246e Now, path ops natively intersect conics, quads, and cubics in any combination. There are still a class of cubic tests that fail and a handful of undiagnosed failures from skps and fuzz tests, but things are much better overall.
Extended tests (150M+) run to completion in release in about 6 minutes; the standard test suite exceeds 100K and finishes in a few seconds on desktops.

TBR=reed
BUG=skia:3588

Review URL: https://codereview.chromium.org/1037953004
2015-04-20 08:31:59 -07:00