Commit Graph

19593 Commits

Author SHA1 Message Date
halcanary
b5002394d1 Documentation: Further cleanup
*   /user/download: remove instruction to compile and run skia
    tests - moved to /user/quick/${OS}

*   /user/quick/desktop: move Gyp options to a section in the
    FAQ (distracts from quick start narritive).

*   /user/tips: reformat, rewrite.

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

Review URL: https://codereview.chromium.org/1443653002
2015-11-16 07:37:23 -08:00
bsalomon
b1a32ad517 Add support for EGLImage to GrGLInterface
BUG=skia:

Review URL: https://codereview.chromium.org/1434813002
2015-11-16 06:48:44 -08:00
robertphillips
0dfa62c977 Update testing frameworks/tests for MDB
This CL:

Fixes an ordering problem w.r.t. drawTarget clean up in GrContext::abandonContext (for text test that abandons context)
Fixes when the lastDrawTarget field is set on a RenderTarget (now in GrDrawTarget ctor) due to GrTestTarget use case
Updates the ProgramUnitTest to use multiple drawTargets
Adds renderTarget creation to GrTestTargets (in MDB drawTargets require them)

BUG=skia:4094

Committed: https://skia.googlesource.com/skia/+/9c8605144a0f15e3e69a4e1dcd5d3e63f339380e

Review URL: https://codereview.chromium.org/1441533003
2015-11-16 06:23:31 -08:00
update-skps
e4d1770e30 Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=
NO_MERGE_BUILDS

Review URL: https://codereview.chromium.org/1446043002
2015-11-16 05:20:53 -08:00
egdaniel
1d51273271 Revert of Update testing frameworks/tests for MDB (patchset #4 id:60001 of https://codereview.chromium.org/1441533003/ )
Reason for revert:
Speculative revert for leaks based on ASAN bot (and some local valgrind testing)

Original issue's description:
> Update testing frameworks/tests for MDB
>
> This CL:
>
> Fixes an ordering problem w.r.t. drawTarget clean up in GrContext::abandonContext (for text test that abandons context)
> Fixes when the lastDrawTarget field is set on a RenderTarget (now in GrDrawTarget ctor) due to GrTestTarget use case
> Updates the ProgramUnitTest to use multiple drawTargets
> Adds renderTarget creation to GrTestTargets (in MDB drawTargets require them)
>
> BUG=skia:4094
>
> Committed: https://skia.googlesource.com/skia/+/9c8605144a0f15e3e69a4e1dcd5d3e63f339380e

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

Review URL: https://codereview.chromium.org/1450513002
2015-11-13 13:42:55 -08:00
benjaminwagner
fa7e1a02a5 Fix BUILD.public INCLUDES after https://codereview.chromium.org/1438873002
BUG=skia:

Review URL: https://codereview.chromium.org/1445463003
2015-11-13 12:27:08 -08:00
egdaniel
57d3b039c6 Rename some processor functions from GL to GLSL
TBR=bsalomon@google.com

BUG=skia:

Review URL: https://codereview.chromium.org/1443743002
2015-11-13 11:57:27 -08:00
joshualitt
04d52f3a92 Create a standalone example for using Skia with SDL
BUG=skia:

Review URL: https://codereview.chromium.org/1442573003
2015-11-13 11:22:19 -08:00
mtklein
d28ada7fd6 turn on libc++ for iOS
BUG=skia:

Review URL: https://codereview.chromium.org/1442103002
2015-11-13 11:22:04 -08:00
msarett
4b0778ec49 Remove dependency on src/android from dm and nanobench
BUG=skia:

Review URL: https://codereview.chromium.org/1443033002
2015-11-13 09:59:11 -08:00
egdaniel
e659a581f6 Move GrGLPrimitive/GeometryProc to GLSL
BUG=skia:

Review URL: https://codereview.chromium.org/1441683008
2015-11-13 09:55:43 -08:00
cdalton
60795d99ff Add visualbench option for nvpr stencil samples
Repurposes the --nvpr flag as an int that says how many stencil samples
to use, or disables nvpr with a value of zero.

BUG=skia:

Review URL: https://codereview.chromium.org/1444543002
2015-11-13 09:10:31 -08:00
cdalton
f844177496 Fix visualbench flicker on triple buffered platforms
BUG=skia:

Review URL: https://codereview.chromium.org/1441073005
2015-11-13 08:56:31 -08:00
cdalton
1023725bb6 Make visualbench timing continuous for no-reset mode
Ensures there is no period of time that is not on the clock when not
restting the graphics context between samples.

BUG=skia:

Review URL: https://codereview.chromium.org/1444473003
2015-11-13 08:42:06 -08:00
egdaniel
fa4cc8bf2a Move XferProcessors to glsl
This is basically a move and rename

TBR=bsalomon@google.com

BUG=skia:

Review URL: https://codereview.chromium.org/1440073002
2015-11-13 08:34:52 -08:00
cdalton
266e2024ec Add visualbench option to not reset between samples
Adds a --reset flag that controls whether we teardown the graphics
context between samples. Also modifies the timing algorithm to always/
only pre-warm after resetting the context.

BUG=skia:

Review URL: https://codereview.chromium.org/1442643007
2015-11-13 08:28:49 -08:00
mtklein
0b47d4b520 Exclude src/android from CMake build too.
It requires src/codec.

BUG=skia:
CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu-GCC-x86_64-Release-CMake-Trybot,Build-Mac10.9-Clang-x86_64-Release-CMake-Trybot

Review URL: https://codereview.chromium.org/1438123008
2015-11-13 07:42:26 -08:00
mtklein
0274efbd3d Revert of Switch uses of SkChecksum::Compute to Murmur3. (patchset #2 id:20001 of https://codereview.chromium.org/1436973003/ )
Reason for revert:
I would not have expected this to change any images.

Looks like it's changed both MSAA and non-MSAA GMs:
https://gold.skia.org/search2?blame=1d024a3c909ae5cefa5e8b339e2b52dc73ee85ac&unt=true&head=true&query=source_type%3Dgm

Original issue's description:
> Switch uses of SkChecksum::Compute to Murmur3.
>
> SkChecksum::Compute is a very, very poorly distributed hash function.
> This replaces all remaining uses with Murmur3.
>
> The only interesting stuff is in src/gpu.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/1d024a3c909ae5cefa5e8b339e2b52dc73ee85ac

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

Review URL: https://codereview.chromium.org/1445523003
2015-11-13 07:07:47 -08:00
egdaniel
64c4728c70 Make all GrFragmentProcessors GL independent.
TBR=bsalomon@google.com

BUG=skia:

Review URL: https://codereview.chromium.org/1434313002
2015-11-13 06:54:19 -08:00
reed
6b90df6b1c augment gradients_many to exercise flipped gradients and clampping
BUG=skia:
TBR=
NOTREECHECKS=True

Review URL: https://codereview.chromium.org/1442833004
2015-11-13 06:23:54 -08:00
msarett
506e19a4c8 Move SkBitmapRegionDecoder to include/android and src/android
This will expose the BitmapRegionDecoder API as a public include
and move the implementation to src.

This makes this code more naturally exposed in Android and easier
to test in DM and nanobench.

BUG=skia:

Review URL: https://codereview.chromium.org/1438873002
2015-11-13 06:11:09 -08:00
robertphillips
9c8605144a Update testing frameworks/tests for MDB
This CL:

Fixes an ordering problem w.r.t. drawTarget clean up in GrContext::abandonContext (for text test that abandons context)
Fixes when the lastDrawTarget field is set on a RenderTarget (now in GrDrawTarget ctor) due to GrTestTarget use case
Updates the ProgramUnitTest to use multiple drawTargets
Adds renderTarget creation to GrTestTargets (in MDB drawTargets require them)

BUG=skia:4094

Review URL: https://codereview.chromium.org/1441533003
2015-11-13 06:06:03 -08:00
msarett
7fdda6091c Lock pixels again after dummy reset of pixel ref in SkBitmapRegionCodec
This fixes a bug in Android.  We cannot access the pixels after
calling decodeRegion() because the call to lock is missing.

BUG=skia:

Review URL: https://codereview.chromium.org/1442553003
2015-11-13 05:56:27 -08:00
halcanary
e0c64c5846 Documentation: clean up
-   /user/quick/desktop to bring together all common information for
    using Skia on desktop OSes.  Remove duplication.

-   Replace all instances of call ing gyp_skia directly with calling
    `python bin/sync-and-gyp`.  This is more correct on Windows

-   Remove outdated linux prerequisite packages

-   Formatting, formatting, formatting.

-   Note command-line syntax differences in Windows

-   SampleApp.app is no longer a bundle on MacOS

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

Review URL: https://codereview.chromium.org/1439493003
2015-11-13 04:29:59 -08:00
mtklein
1d024a3c90 Switch uses of SkChecksum::Compute to Murmur3.
SkChecksum::Compute is a very, very poorly distributed hash function.
This replaces all remaining uses with Murmur3.

The only interesting stuff is in src/gpu.

BUG=skia:

Review URL: https://codereview.chromium.org/1436973003
2015-11-12 15:44:09 -08:00
cdalton
c94cd7cc01 Fix GrCoverageSetOpXP unit test on mixed samples
Updates GrCoverageSetOpXPFactory::TestCreate to not invert coverage
with mixed samples, which is an unsupported configuration.

TBR=bsalomon@google.com

BUG=skia:4556

Review URL: https://codereview.chromium.org/1442763002
2015-11-12 12:11:04 -08:00
mtklein
23267db678 SkAtomic: always use std::atomic
We were doing it on Windows, now do it everywhere.
This just changes the backend.  We could think about another step to actually
replacing all our sk_atomic_... with std atomic stuff.

CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-TSAN-Trybot
TBR=reed@google.com
Only deleting from include/...

Review URL: https://codereview.chromium.org/1441773002
2015-11-12 11:07:53 -08:00
mtklein
64593525de Replace SkFunction with std::function
TBR=reed@google.com
No public API changes.

Review URL: https://codereview.chromium.org/1441753002
2015-11-12 10:41:05 -08:00
bsalomon
3aa5fce54e API changes to GrTextureAdjuster.
These changes are to facilitate converting SkGpuDevice::drawTextureAdjuster to SkGpuDevice::drawTextureProducer.

Make constraint rect relative to content area

Store dimensions in GrTextureProducer

Make originalTexture() protected.

Remove getContentArea()

Provide pre-normalized texture matrix to GrTextureAdjuster::createFragmentProcessor. Define it to be be relative to content area.

Review URL: https://codereview.chromium.org/1438663004
2015-11-12 09:59:44 -08:00
bungeman
147ea2fb7a Factor CSS3 matching rules.
This factors out the CSS3 matching rules, creates tests for it,
and uses it with the GDI font manager.

BUG=chromium:554238,skia:4037

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

Review URL: https://codereview.chromium.org/1438113002
2015-11-12 09:50:08 -08:00
cdalton
3aea725371 Fix mixed sampled inverse path fills
Fixes a double blend that was occurring down the diagonals of inverse
path fills when using mixed samples.

BUG=skia:

Review URL: https://codereview.chromium.org/1442513002
2015-11-12 09:18:49 -08:00
herb
386127f1d4 Increment text pointer when the width is zero in the subpixel with center and right alignment.
BUG=skia:

Review URL: https://codereview.chromium.org/1438893002
2015-11-12 08:53:42 -08:00
mtklein
d7b25c734e Target Mac bots at 10.7+libc++ to approximate Chrome's 10.6+libc++.
This is necessary if we want to start using C++11 library features.

Chrome's got their own custom libc++-for-10.6.
This is a somewhat lazy approximation of that.

Chrome should still guard us from using 10.7-specific features
until 10.6-10.8 all go away.

BUG=skia:

Review URL: https://codereview.chromium.org/1437173002
2015-11-12 08:41:40 -08:00
scroggo
95105938da Add include guards for SkBRDAllocator
One step towards fixing the master-skia build

Review URL: https://codereview.chromium.org/1440883002
2015-11-11 22:54:24 -08:00
bsalomon
3877ab81ba In SkGpuDevice;drawTextureAdjuster perform texture w\h divide in texture matrix
Review URL: https://codereview.chromium.org/1440763002
2015-11-11 16:52:03 -08:00
cdalton
ede7574817 Enable AA stencil clip for mixed samples
Updates GrClipMaskManager to use the stencil buffer when the RT is
mixed sampled.

BUG=skia:

Review URL: https://codereview.chromium.org/1440513002
2015-11-11 15:27:57 -08:00
cdalton
7e806f3f8a Revert of Enable stencil clipping in mixed sampled render targets (patchset #6 id:100001 of https://codereview.chromium.org/1232103002/ )
Reason for revert:
Co-centered sample locations are not needed to do stencil clip with mixed samples

Original issue's description:
> Implement stencil clipping in mixed sampled render targets
>
> This change enables multisampled clipping for mixed sampled
> render targets.  Previously clipping in mixed samples config
> behaved the same as in the gpu config.
>
> In order to retrofit non-MSAA draw methods, programmable sample
> locations are used in order to colocate all samples at (0.5, 0.5).
> Requires support for NV_sample_locations.
>
> BUG=skia:4399
>
> Committed:
> https://skia.googlesource.com/skia/+/3e77ba96d56d15db30ac6d8ccb900e30aafcbb16

BUG=skia:

Review URL: https://codereview.chromium.org/1415873011
2015-11-11 15:16:07 -08:00
cdalton
24ddb0a4dd Revert of Fix setColocatedSampleLocations on ES and GL < 4.5 (patchset #2 id:20001 of https://codereview.chromium.org/1415503008/ )
Reason for revert:
Co-centered sample locations are not needed to do stencil clip with mixed samples.

Original issue's description:
> Fix setColocatedSampleLocations on ES and GL < 4.5
>
> Updates setColocatedSampleLocations to use glFramebufferParameteri
> when
> the DSA version glNamedFramebufferParameteri is not present.
>
> BUG=skia:
>
> Committed:
> https://skia.googlesource.com/skia/+/98cad6219b430eddf5528473311279f21dbd2e10

BUG=skia:

Review URL: https://codereview.chromium.org/1420883007
2015-11-11 15:03:46 -08:00
msarett
cb8d719d7a Make BRD take advantage of zero initialized memory
This is the third step in a three part change:
(1) Skia: Add SkBRDAllocator.
(2) Android: Make JavaPixelAllocator and RecyclingClippingPixelAllocator
             implement SkBRDAllocator.
(3) Skia: Change SkBitmapRegionDecoder to use SkBRDAllocator and take
          advantage of zero allocated memory when possible.

BUG=skia:

Review URL: https://codereview.chromium.org/1420053010
2015-11-11 13:30:43 -08:00
robertphillips
caef345048 Readd "immediate" mode
This isn't an exact replacement. The accumulated batches are now flushed at drawContext-entry-point granularity (via the AutoCheckFlush objects) rather than per batch.

TBR=bsalomon@google.com

Review URL: https://codereview.chromium.org/1439533003
2015-11-11 13:18:11 -08:00
joshualitt
dad57c8c48 bring up SDL on windows
BUG=skia:

patch from issue 1432353002 at patchset 1 (http://crrev.com/1432353002#ps1)

Review URL: https://codereview.chromium.org/1438003004
2015-11-11 13:17:06 -08:00
egdaniel
2d721d33aa Move all ShaderBuilder files to GLSL
BUG=skia:

Review URL: https://codereview.chromium.org/1438003003
2015-11-11 13:06:05 -08:00
msarett
33bee090fa Fix -Wunused-parameter errors in SkCodec.h in Android
BUG=skia:

Review URL: https://codereview.chromium.org/1437823004
2015-11-11 12:43:07 -08:00
bsalomon
67d7620285 Fix leaks in unit tests of GrGLTextureInfos
TBR=egdaniel@google.com

Review URL: https://codereview.chromium.org/1433353005
2015-11-11 12:40:42 -08:00
robertphillips
a13e202563 Move GrBatchFlushState from GrDrawTarget to GrDrawingManager
This CL:
  moves the flushState
  disables immediate mode (it was proving difficult to implement)
  also moves the program unit test to the drawing manager

BUG=skia:4094
TBR=bsalomon@google.com

Review URL: https://codereview.chromium.org/1437843002
2015-11-11 12:01:09 -08:00
mtklein
084db25d47 float xfermodes (burn, dodge, softlight) in Sk8f, possibly using AVX.
Xfermode_ColorDodge_aa	10.3ms -> 7.85ms	0.76x
 Xfermode_SoftLight_aa	13.8ms -> 10.2ms	0.74x
 Xfermode_ColorBurn_aa	10.7ms -> 7.82ms	0.73x
    Xfermode_SoftLight	33.6ms -> 23.2ms	0.69x
   Xfermode_ColorDodge	  25ms -> 16.5ms	0.66x
    Xfermode_ColorBurn	26.1ms -> 16.6ms	0.63x

Ought to be no pixel diffs:
https://gold.skia.org/search2?issue=1432903002&unt=true&query=source_type%3Dgm&master=false

Incidental stuff:

I made the SkNx(T) constructors implicit to make writing math expressions simpler.
This allows us to write expressions like
  Sk4f v;
  ...
  v = v*4;
rather than
  Sk4f v;
  ...
  v = v * Sk4f(4);

As written it only works when the constant is on the right-hand side,
so expressions like `(Sk4f(1) - da)` have to stay for now.  I plan on
following up with a CL that lets those become `(1 - da)` too.

BUG=skia:4117
CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

Review URL: https://codereview.chromium.org/1432903002
2015-11-11 11:39:09 -08:00
herb
9be5ff6f98 Replace glyph find and position with common code for the gpu bitmap case.
BUG=skia:

Review URL: https://codereview.chromium.org/1424173005
2015-11-11 11:30:11 -08:00
benjaminwagner
0b2a189221 Fix code that left shifts a negative value. This has undefined behavior.
Patched from internal cl/107515669 by rtrieu and added comments.

BUG=skia:2481

Review URL: https://codereview.chromium.org/1439483002
2015-11-11 08:46:34 -08:00
msarett
b5213e69c5 Change quality settings on SkImageDecoder_libjpeg
It has been demonstrated that higher quality settings
really do make a difference in the visual quality of
the output image.
https://code.google.com/p/chromium/issues/detail?id=385515
https://code.google.com/p/skia/issues/detail?id=3770

We are planning to replace SkImageDecoder with SkCodec,
and SkCodec will use the higher quality settings.  As
a first step, we are using SkCodec as the underlying
implementation for BitmapRegionDecoder.  CTS tests require
that BitmapRegionDecoder be a close match to BitmapFactory
(which uses SkImageDecoder), so we must also update the
quality of SkImageDecoder to maintain CTS compatibility.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/69ad6a9d03dd6f14b7c730465319313725a7c903

Review URL: https://codereview.chromium.org/1412803009
2015-11-11 06:41:02 -08:00
egdaniel
8dcdedc4a0 Make GrGLSLProgramBuilder base class for GrGLProgramBuilder.
This CL still keeps the weird diamond shape we have for all our ProgramBuilders.
However, the GrGLSL base class will allow us to pull multiple other parts
of our program setup away from GL which will eventually allow us to break up
the diamond.

As part of this all ShaderBuilder subclass have been made gl independent,
however I will move them to GLSL files/class names in a follow on CL.

BUG=skia:

Review URL: https://codereview.chromium.org/1416423003
2015-11-11 06:27:20 -08:00