Commit Graph

17495 Commits

Author SHA1 Message Date
bungeman
a9f1db7902 Use SkTArray instead of SkSTArray in movable.
SkTArray is trivially movable, but SkSTArray is not, since it may
contain an internal pointer. FontFileInfo is supposed to be
trivially movable but currently isn't due to containing an SkSTArray.
Removing this particular optimization should not affect performance
much as this type is only used for parsing and does not allocate any
memory unless a variation axis is actually specified.

Review URL: https://codereview.chromium.org/1155383002
2015-05-27 13:10:03 -07:00
emmaleer
9700206b67 New CodeSrc* draw mode kScanline_Subset_Mode
kScanline_Subset_Mode decodes the image in subsets using a
scanline decoder.
The number of subsets can be specified by changing the constant divisor.
The number of subsets is equal to divisor*divisor.

Review URL: https://codereview.chromium.org/1157153003
2015-05-27 12:36:10 -07:00
robertphillips
ccb1b57510 Move SkGpuDevice::internalDrawPath to GrBlurUtils::drawPathWithMaskFilter
This CL is ugly but it:

removes the stored SkGpuDevice back pointer from GrTextContext (at the cost of passing more parameters)
moves SkGpuDevice::internalDrawPath to GrDrawContext::drawPathFull

Unfortunately, the GrTextContext-derived classes still need the SkGpuDevice for filterTextFlags calls but I will try removing that in a separate CL.

Review URL: https://codereview.chromium.org/1157773003
2015-05-27 11:02:55 -07:00
joshualitt
24a366a037 Fall back to older inorder buffer if we have NVPR
BUG=skia:

Committed: https://skia.googlesource.com/skia/+/b72ec98b2090e5728354dac66eb1886a28e4da6b

Review URL: https://codereview.chromium.org/1143153008
2015-05-27 10:56:41 -07:00
joshualitt
d8e2d28913 Revert of Fall back to older inorder buffer if we have NVPR (patchset #3 id:40001 of https://codereview.chromium.org/1143153008/)
Reason for revert:
breaking bots

Original issue's description:
> Fall back to older inorder buffer if we have NVPR
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/b72ec98b2090e5728354dac66eb1886a28e4da6b

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

Review URL: https://codereview.chromium.org/1160663006
2015-05-27 10:39:56 -07:00
joshualitt
b72ec98b20 Fall back to older inorder buffer if we have NVPR
BUG=skia:

Review URL: https://codereview.chromium.org/1143153008
2015-05-27 10:31:12 -07:00
joshualitt
e932a6466b enable reordering
NO_MERGE_BUILDS
BUG=skia:

Review URL: https://codereview.chromium.org/1158213002
2015-05-27 09:20:08 -07:00
joshualitt
da7b843fbd CL to add setFullscreen and setVsync to SkWindow
BUG=skia:

Review URL: https://codereview.chromium.org/1151333004
2015-05-27 09:19:03 -07:00
halcanary
a681433d42 SkPDF: with opaque draws, treat SRC mode as SRC_OVER
BUG=473572

Review URL: https://codereview.chromium.org/1159763004
2015-05-27 08:53:36 -07:00
emmaleer
7dc9190b76 fixing onSkipScanlines png error
There was a bug in onSkipScanlines where NULL was being passed instead of the SrcRow to png_read_rows.
This caused SkipScanlines to appear to be skipping, as fCurrScanline was updated and SkipScanlines returned success, however png_read_rows was not actually reading anything, and no lines were skipped.

Review URL: https://codereview.chromium.org/1159853003
2015-05-27 08:49:04 -07:00
reed
9572a10c9a don't use accessBitmap
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1154293002
2015-05-26 19:22:17 -07:00
robertphillips
4b195e5d8f Unblock DEPS roll by remove SkAutoTUnref from GrDrawContext
BUG=skia:

Review URL: https://codereview.chromium.org/1156103006
2015-05-26 14:37:00 -07:00
tomhudson
b97e909151 Fix SkAndroidSDKCanvas virtuals
Catch Android Framework-only code up to a change made in the
SkCanvas signature.

R=scroggo@google.com,reed@google.com

Review URL: https://codereview.chromium.org/1151673004
2015-05-26 14:12:25 -07:00
reed
5bcef1b3e8 speculative revert change to pixmap for bitmapscaler
BUG=491891
TBR=

Review URL: https://codereview.chromium.org/1159793003
2015-05-26 13:57:04 -07:00
joshualitt
7a9c45c01c real fix for textblob use after gpu free
This patch addresses two issues:
1) Textblobs with abandoned strikes were not properly regenerating.
2) Provided by ericrk - GrTextBlobCache removed blobs from |fCache| during freeAll, but left
potentially released blobs in the |fBlobList|. We now remove these from
|fBlobList| as well.
BUG=skia:

Review URL: https://codereview.chromium.org/1160633002
2015-05-26 12:32:23 -07:00
bsalomon
dc47ff7f1f Split GrCaps impl out into its own cpp
TBR=joshualitt@google.com

Review URL: https://codereview.chromium.org/1151503003
2015-05-26 12:16:59 -07:00
robertphillips
ea46150344 Split drawing functionality out of GrContext and into new GrDrawContext
This is mainly a mechanical CL. There were some fiddly bits in GrContext.cpp where it no longer had access to the GrDrawTarget (and had to use the new GrDrawContext).

I've converted GrAARectRenderer & GrOvalRenderer into static classes so I could stop allocating them.

Review URL: https://codereview.chromium.org/1151283004
2015-05-26 11:38:03 -07:00
reed
884e97cb04 change internals over to SkPixmap and stop using accessBitmap
BUG=skia:

Review URL: https://codereview.chromium.org/1155443004
2015-05-26 11:31:54 -07:00
bsalomon
6a44c6a7d8 Move DstCoordTexture to GrXP, rename and remove the word "copy" from dstcopytexture names.
Committed: https://skia.googlesource.com/skia/+/bb106b5f6ee18f7453b63f3a95f421b60a957f39

Review URL: https://codereview.chromium.org/1132093004
2015-05-26 09:49:05 -07:00
joshualitt
36ec383c57 Reorder across clears
BUG=skia:

Review URL: https://codereview.chromium.org/1161643002
2015-05-26 09:33:48 -07:00
halcanary
43315bbe4b sync-and-gyp: make smarter
This fixes two issues: If gyp is run with the CXX and CC environment
variables set, it will produce different ninja build files.
sync-and-gyp now tracks the values of those variables; if they change,
re-run gyp.

Secondly, we introduced find.py, which is used inside gyp files.  If
the contents of certain directories changes, gyp should be re-run.  So
now we track those directories too.

Review URL: https://codereview.chromium.org/1153083002
2015-05-26 08:01:19 -07:00
stephana
340cd84c9c Disabling ~path_hairline in iOS nanobench
Temporary measure to make nanobench succeed.

TBR=borenet
BUG=skia:

Review URL: https://codereview.chromium.org/1144173004
2015-05-26 06:19:11 -07:00
reed
cd1d41e7c1 remove unneeded device:lockpixels
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1156073003
2015-05-25 21:21:27 -07:00
kkinnunen
61e91966aa Avoid creating GrGLPath to the resource cache when creating GrGLPathRanges
Do not create a GrGLPath when loading glyphs with the driver and creating
GrGLPathRange based on those. The path would be inserted to the GPU
resource cache and then immediately be released.

Instead, just init the first path object of the path range as the
template.

Review URL: https://codereview.chromium.org/1146983004
2015-05-24 22:12:22 -07:00
skia.buildbots
43c5bababc Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=
NO_MERGE_BUILDS

Review URL: https://codereview.chromium.org/1159443003
2015-05-24 00:23:16 -07:00
reed
cf01e31df6 deprecate calling lockPixels
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1156003002
2015-05-23 19:14:51 -07:00
reed
95d343f408 move readPixels from bitmap -> pixmap
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1153893003
2015-05-23 13:21:07 -07:00
reed
c240e719b2 remove bitmaps entirely from sprite blits (as source)
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1156713004
2015-05-23 12:26:41 -07:00
bungeman
c33db93d1b Revert of Implement Porter Duff XP with a blend table (patchset #12 id:220001 of https://codereview.chromium.org/1124373002/)
Reason for revert:
Blocking DEPS roll into Chromium. Crashing virtual/gpu/fast/canvas/canvas-composite-*.html tests with the assert

../../third_party/skia/src/gpu/gl/builders/GrGLFragmentShaderBuilder.cpp:281: failed assertion "k110_GrGLSLGeneration != gpu->glslGeneration() || fOutputs.empty()"

Original issue's description:
> Implement Porter Duff XP with a blend table
>
> Removes the runtime logic used by PorterDuffXferProcessor to decide
> blend coeffs and shader outputs, and instead uses a compile-time
> constant table of pre-selected blend formulas.
>
> Introduces a new blend strategy for srcCoeff=0 that can apply coverage
> with a reverse subtract blend equation instead of dual source
> blending.
>
> Adds new macros in GrBlend.h to analyze blend formulas both runtime.
>
> Removes kSetCoverageDrawing_OptFlag and GrSimplifyBlend as they are no
> longer used.
>
> Adds a GM that verifies all xfermodes, including arithmetic, with the
> color/coverage invariants used by Porter Duff.
>
> Adds a unit test that verifies each Porter Duff formula with every
> color/coverage invariant.
>
> Major changes:
>
>  * Uses a reverse subtract blend equation for coverage when srcCoeff=0
>    (clear, dst-out [Sa=1], dst-in, modulate). Platforms that don't
>    support dual source blending no longer require a dst copy for
>    dst-in and modulate.
>
>  * Sets BlendInfo::fWriteColor to false when the blend does not modify
>    the dst. GrGLGpu will now use glColorMask instead of blending for
>    these modes (dst, dst-in [Sa=1], modulate ignored for [Sc=1]).
>
>  * Converts all SA blend coeffs to One for opaque inputs, and ISA to
>    Zero if there is also no coverage. (We keep ISA around when there
>    is coverage because we use it to tweak alpha for coverage.)
>
>  * Abandons solid white optimizations for the sake of simplicity
>    (screen was the only mode that previous had solid white opts).
>
> Minor differences:
>
>  * Inconsequential differences in opt flags (e.g. we now return
>    kCanTweakAlphaForCoverage_OptFlag even when there is no coverage).
>
>  * Src coeffs when the shader outputs 0.
>
>  * IS2C vs IS2A when the secondary output is scalar.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/9a70920db22b6309c671f8e5d519bb95570e4414

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

Review URL: https://codereview.chromium.org/1153993002
2015-05-22 17:55:26 -07:00
bungeman
c319c80d09 Revert of Fix LCD coverage regression in GrPorterDuffXPFactory (patchset #3 id:40001 of https://codereview.chromium.org/1149883004/)
Reason for revert:
Reverting this fix to revert https://codereview.chromium.org/1124373002

Original issue's description:
> Fix LCD coverage regression in GrPorterDuffXPFactory
>
> Fixes GrPorterDuffXPFactory to not use the blend table when getting
> info about the LCD coverage XP.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/3e2d59ef36e1b9a63e524cf1b27d5f7bcfb5ff0b

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

Review URL: https://codereview.chromium.org/1153803005
2015-05-22 17:54:44 -07:00
mtklein
aa999cb952 Everyone gets a namespace {}.
If we include Sk4px.h, SkPMFloat.h, or SkNx.h into files with different
SIMD flags, that could cause different definitions of the same method.

Normally that's moot, because all the code inlines, but in Debug it tends not
to.  So in Debug, the linker picks one definition for us.  That breaks _someone_.

Wrapping everything in a namespace {} keeps the definitions separate.

Tested locally, it fixes this bug.
BUG=skia:3861

This code is not yet enabled in Chrome, so shouldn't affect the roll.
NOTREECHECKS=true

Review URL: https://codereview.chromium.org/1154523004
2015-05-22 17:18:21 -07:00
bungeman
d23a395d51 Revert of Move DstCoordTexture to GrXP, rename and remove the word "copy" from dstcopytexture names. (patchset #6 id:100001 of https://codereview.chromium.org/1132093004/)
Reason for revert:
This is asserting on GTX660 bots with '!dst'. This may just be catching an existing issue.

https://build.chromium.org/p/client.skia/builders/Test-Ubuntu-GCC-ShuttleA-GPU-GTX660-x86_64-Debug/builds/622/steps/dm/logs/stdio

https://build.chromium.org/p/client.skia/builders/Test-Win7-MSVC-ShuttleA-GPU-HD2000-x86-Debug-ANGLE/builds/209/steps/dm/logs/stdio

https://build.chromium.org/p/client.skia/builders/Test-Win8-MSVC-ShuttleA-GPU-GTX660-x86_64-Debug/builds/318/steps/dm/logs/stdio

Original issue's description:
> Move DstCoordTexture to GrXP, rename and remove the word "copy" from dstcopytexture names.
>
> Committed: https://skia.googlesource.com/skia/+/bb106b5f6ee18f7453b63f3a95f421b60a957f39

TBR=egdaniel@google.com,bsalomon@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1158453004
2015-05-22 15:22:48 -07:00
bsalomon
bb106b5f6e Move DstCoordTexture to GrXP, rename and remove the word "copy" from dstcopytexture names.
Review URL: https://codereview.chromium.org/1132093004
2015-05-22 14:32:10 -07:00
cdalton
3e2d59ef36 Fix LCD coverage regression in GrPorterDuffXPFactory
Fixes GrPorterDuffXPFactory to not use the blend table when getting
info about the LCD coverage XP.

BUG=skia:

Review URL: https://codereview.chromium.org/1149883004
2015-05-22 14:04:37 -07:00
bsalomon
682c269a15 Store context options on caps.
Committed: https://skia.googlesource.com/skia/+/f28cff71db2cbb1ff18a8fbf1e80ca761d1f69bc

Review URL: https://codereview.chromium.org/1158433006
2015-05-22 14:01:46 -07:00
joshualitt
a5f1d5a95a fix for atlas is abandoned text corruption
BUG=skia:

Review URL: https://codereview.chromium.org/1156693004
2015-05-22 13:09:57 -07:00
mtklein
4e506c200b Simpler version of Plus w/ AA. ~25% faster too.
BUG=skia:3852

TBR=fmalita@chromium.org

Review URL: https://codereview.chromium.org/1150693003
2015-05-22 12:43:41 -07:00
bsalomon
08bf86d1b7 Revert of Store context options on caps. (patchset #3 id:40001 of https://codereview.chromium.org/1158433006/)
Reason for revert:
breaking chromeos build (???)

Original issue's description:
> Store context options on caps.
>
> Committed: https://skia.googlesource.com/skia/+/f28cff71db2cbb1ff18a8fbf1e80ca761d1f69bc

TBR=joshualitt@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1151603005
2015-05-22 12:41:05 -07:00
bsalomon
f28cff71db Store context options on caps.
Review URL: https://codereview.chromium.org/1158433006
2015-05-22 12:25:41 -07:00
reed
a624d12b2d use SkPixmap inside sprite blitters
BUG=skia:

Review URL: https://codereview.chromium.org/1144923005
2015-05-22 12:10:46 -07:00
cdalton
9a70920db2 Implement Porter Duff XP with a blend table
Removes the runtime logic used by PorterDuffXferProcessor to decide
blend coeffs and shader outputs, and instead uses a compile-time
constant table of pre-selected blend formulas.

Introduces a new blend strategy for srcCoeff=0 that can apply coverage
with a reverse subtract blend equation instead of dual source
blending.

Adds new macros in GrBlend.h to analyze blend formulas both runtime.

Removes kSetCoverageDrawing_OptFlag and GrSimplifyBlend as they are no
longer used.

Adds a GM that verifies all xfermodes, including arithmetic, with the
color/coverage invariants used by Porter Duff.

Adds a unit test that verifies each Porter Duff formula with every
color/coverage invariant.

Major changes:

 * Uses a reverse subtract blend equation for coverage when srcCoeff=0
   (clear, dst-out [Sa=1], dst-in, modulate). Platforms that don't
   support dual source blending no longer require a dst copy for
   dst-in and modulate.

 * Sets BlendInfo::fWriteColor to false when the blend does not modify
   the dst. GrGLGpu will now use glColorMask instead of blending for
   these modes (dst, dst-in [Sa=1], modulate ignored for [Sc=1]).

 * Converts all SA blend coeffs to One for opaque inputs, and ISA to
   Zero if there is also no coverage. (We keep ISA around when there
   is coverage because we use it to tweak alpha for coverage.)

 * Abandons solid white optimizations for the sake of simplicity
   (screen was the only mode that previous had solid white opts).

Minor differences:

 * Inconsequential differences in opt flags (e.g. we now return
   kCanTweakAlphaForCoverage_OptFlag even when there is no coverage).

 * Src coeffs when the shader outputs 0.

 * IS2C vs IS2A when the secondary output is scalar.

BUG=skia:

Review URL: https://codereview.chromium.org/1124373002
2015-05-22 11:36:57 -07:00
joshualitt
2a97c55ae3 Trivial patch to set a max lookback on reordering
BUG=skia:

Review URL: https://codereview.chromium.org/1150253003
2015-05-22 11:19:44 -07:00
stephana
c9b8276bc9 BUG=skia:
NOTRY=true
TBR=borenet

Review URL: https://codereview.chromium.org/1153783003
2015-05-22 10:55:33 -07:00
mtklein
27c2b09374 Move Sk4px Xfermode code to a header so we can use it twice.
- Once in SkXfermode as usual to pick up compile-time SSE and NEON
  - Once in SkXfermode_arm_neon to pick up run-time NEON

This allows us to start cleaning up SkXfermode_arm_neon as we've done
for SkXfermode_SSE2.  I'm saving this catharsis for a day when I need it.

The Sk4px xfermodes are generally faster than the existing NEON procs,
so this should also have the side effect of a perf win there.

This means our new Plus-AA code works for runtime NEON too.
BUG=skia:3852

Review URL: https://codereview.chromium.org/1150313003
2015-05-22 10:54:39 -07:00
jcgregorio
92c9743d2d Add more detail on how DM checksums are done.
This will be linked to from Gold for image diffs that have
different digests but no pixel differences.

BUG=skia:
NOTRY=true
DOCS_PREVIEW= https://skia.org/?cl=1151153005

Review URL: https://codereview.chromium.org/1151153005
2015-05-22 10:42:13 -07:00
bsalomon
424cc26add Remove init from GrGLContextInfo and caps classes
Make Gr*Caps, GrGLContext* noncopyable

Review URL: https://codereview.chromium.org/1153813002
2015-05-22 10:37:30 -07:00
reed
92fc2ae583 add SkPixmap and external locking to bitmaps
BUG=skia:

Review URL: https://codereview.chromium.org/1074983003
2015-05-22 08:06:22 -07:00
bsalomon
eb1cb5c5b5 rename GrDrawTargetCaps.h to GrCaps.h and move to include
Review URL: https://codereview.chromium.org/1135113005
2015-05-22 08:01:09 -07:00
bsalomon
706f08fbcb Move GrPath(Range) creation to ResourceProvider.
Review URL: https://codereview.chromium.org/1155593002
2015-05-22 07:35:58 -07:00
caryclark
a76b7a3b04 remove SK_LEGACY_STROKE_CURVES
The change in Chrome has been landed so this guard is no longer needed.

R=reed@google.com,fmalita@chromium.org
BUG=102411

Review URL: https://codereview.chromium.org/1157623003
2015-05-22 06:26:52 -07:00