| Commit message (Collapse) | Author | Age |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adds an onGetBlendInfo method for GrXferProcessor subclasses to
override instead of overriding getBlendInfo directly. This gives the
base class a chance to initialize the struct with default values
before passing it on. As the BlendInfo struct grows, this will keep
things simple and less error prone.
BUG=skia:
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/1049143002
|
|
|
|
|
|
|
|
|
|
|
| |
Path ops works well for all tests except for cubics.
Isolate failures caused by cubics, and do a better job of computing
the initial winding for cubics.
TBR=reed@google.com
BUG=skia:3588
Review URL: https://codereview.chromium.org/1096923003
|
|
|
|
|
|
|
| |
BUG=skia:3534
BUG=skia:3257
Review URL: https://codereview.chromium.org/1091043003
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/1080673005
|
|
|
|
|
|
| |
BUG=chromium:437044
Review URL: https://codereview.chromium.org/1091283006
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/1088903009
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
R=egdaniel@google.com
BUG=skia:
Review URL: https://codereview.chromium.org/1098753004
|
|
|
|
|
|
|
|
| |
TBR=bsalomon@google.com, jvanverth@google.com
BUG=skia:
Review URL: https://codereview.chromium.org/1057363004
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/1065773005
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/1102663002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/1072193009
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
TBR=bsalomon@google.com
BUG=skia:
Review URL: https://codereview.chromium.org/1077813004
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(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
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/1098093003
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/1039693004
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/1090163002
|
|
|
|
|
|
| |
R=djsollen@google.com,ccraik@google.com
Review URL: https://codereview.chromium.org/1086083004
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/1093083003
|
|
|
|
|
|
|
|
| |
textblobs
BUG=skia:
Review URL: https://codereview.chromium.org/1092283002
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
performance by avoiding hashmap lookups under normal use
BUG=skia:
Review URL: https://codereview.chromium.org/1087203004
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/1092973004
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/1091313002
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/1098653005
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/1057043003
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/1099873002
|
|
|
|
|
|
| |
R=mtklein@google.com
Review URL: https://codereview.chromium.org/1097293002
|
|
|
|
| |
Review URL: https://codereview.chromium.org/1092793006
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/1100483003
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
BUG=skia:3741
Review URL: https://codereview.chromium.org/1091173003
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The conic, quadratic and cubic computations were using tolerance^2
instead of tolerance when computing maximum point count, causing paths
to be undertessellated when magnifying and overtessellated when minifying.
(Funny story: this bug went unnoticed back when we were tessellating
paths in screen space, when tolerance and its square were both 1.)
BUG=skia:3731
Review URL: https://codereview.chromium.org/1095773003
|
|
|
|
|
|
|
|
|
| |
no image changes expected in skia or chrome/blink
BUG=skia:
TBR=
Review URL: https://codereview.chromium.org/1050953003
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously the normal/italic style bit was obtained from scanning the
font file. With the new format the style may be stated explicitly, and
this explicit value in the configuration file should override any
information obtained from the font data itself.
This change allows the font element's style attribute to override the
font's style, but retains the default 'auto' setting for backwards
compatibility. Repecting the style bit may become more important with
variation fonts, because it will be up to the configuration writer to
determine what values of the 'slnt' variation should be considered
'normal' or 'italic'.
DOCS_PREVIEW= https://skia.org/?cl=1092093002
Committed: https://skia.googlesource.com/skia/+/673e902c9b9982a167f54f1cc175d8d9cab8bcaf
Review URL: https://codereview.chromium.org/1092093002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
https://codereview.chromium.org/1092093002/)
Reason for revert:
Failed on the compile bots.
Original issue's description:
> Respect declared font style on Android.
>
> Previously the normal/italic style bit was obtained from scanning the
> font file. With the new format the style may be stated explicitly, and
> this explicit value in the configuration file should override any
> information obtained from the font data itself.
>
> This change allows the font element's style attribute to override the
> font's style, but retains the default 'auto' setting for backwards
> compatibility. Repecting the style bit may become more important with
> variation fonts, because it will be up to the configuration writer to
> determine what values of the 'slnt' variation should be considered
> 'normal' or 'italic'.
>
> DOCS_PREVIEW= https://skia.org/?cl=1092093002
>
> Committed: https://skia.googlesource.com/skia/+/673e902c9b9982a167f54f1cc175d8d9cab8bcaf
TBR=mtklein@google.com,tomhudson@google.com,scroggo@google.com,bungeman@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/1082173004
|
|
|
|
|
|
|
|
|
| |
We only embed images with YUV planes. That should only grab the
subset of color JPEGs supported by PDF.
BUG=skia:3180
Review URL: https://codereview.chromium.org/1025773002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously the normal/italic style bit was obtained from scanning the
font file. With the new format the style may be stated explicitly, and
this explicit value in the configuration file should override any
information obtained from the font data itself.
This change allows the font element's style attribute to override the
font's style, but retains the default 'auto' setting for backwards
compatibility. Repecting the style bit may become more important with
variation fonts, because it will be up to the configuration writer to
determine what values of the 'slnt' variation should be considered
'normal' or 'italic'.
DOCS_PREVIEW= https://skia.org/?cl=1092093002
Review URL: https://codereview.chromium.org/1092093002
|
|
|
|
| |
Review URL: https://codereview.chromium.org/1090103002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This algorithm changes the blend math, guarded by SK_LEGACY_COLOR32_MATH. The new math is more correct: it's never off by more than 1, and correct in all the interesting 0x00 and 0xFF edge cases, where the old math was never off by more than 2, and not always correct on the edges.
If you look at tests/BlendTest.cpp, the old code was using the `blend_256_plus1_trunc` algorithm, while the new code uses `blend_256_round_alt`. Neither uses `blend_perfect`, which is about ~35% slower than `blend_256_round_alt`.
This will require an unfathomable number of rebaselines, first to Skia, then to Blink when I remove the guard.
I plan to follow up with some integer SIMD abstractions that can unify these two implementations into a single algorithm. This was originally what I was working on here, but the correctness gains seem to be quite compelling. The only places these two algorithms really differ greatly now is the kernel function, and even there they can really both be expressed abstractly as:
- multiply 8-bits and 8-bits producing 16-bits
- add 16-bits to 16-bits, returning the top 8 bits.
All the constants are the same, except SSE is a little faster to keep 8 16-bit inverse alphas, NEON's a little faster to keep 8 8-bit inverse alphas. I may need to take this small speed win back to unify the two.
We should expect a ~25% speedup on Intel (mostly from unrolling to 8 pixels) and a ~20% speedup on ARM (mostly from using vaddhn to add `color`, round, and narrow back down to 8-bit all into one instruction.
(I am probably missing several more related bugs here.)
BUG=skia:3738,skia:420,chromium:111470
Review URL: https://codereview.chromium.org/1092433002
|
|
|
|
|
|
|
|
|
|
| |
No one actually uses it, so remove it. Keep the string id for backward
compatibility.
TBR=reed@google.com
This doesn't change any public API.
Review URL: https://codereview.chromium.org/1057413005
|