Commit Graph

1526 Commits

Author SHA1 Message Date
bsalomon
7ea33f5e1a Initial version of external_oes texture support and unit test
Committed: https://skia.googlesource.com/skia/+/27a048700778d4cebfc23301d1780649791b0e03

Review URL: https://codereview.chromium.org/1451683002
2015-11-22 14:51:00 -08:00
bsalomon
0315dbcb55 Revert of Initial version of external_oes texture support and unit test (patchset #14 id:260001 of https://codereview.chromium.org/1451683002/ )
Reason for revert:
Error wrapping external texture in GrTexture on some devices.

Original issue's description:
> Initial version of external_oes texture support and unit test
>
> Committed: https://skia.googlesource.com/skia/+/27a048700778d4cebfc23301d1780649791b0e03

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

Review URL: https://codereview.chromium.org/1459323004
2015-11-20 20:24:31 -08:00
bsalomon
27a0487007 Initial version of external_oes texture support and unit test
Review URL: https://codereview.chromium.org/1451683002
2015-11-20 19:34:37 -08:00
egdaniel
f234272cbd Revert of Make specialized SrcOver XPFactory (patchset #3 id:40001 of https://codereview.chromium.org/1455273006/ )
Reason for revert:
breaking some builds

Original issue's description:
> Make specialized SrcOver XPFactory
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/a7006d45217d128a94fa53cb4b827cca79bc7049

TBR=bsalomon@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1464933003
2015-11-20 15:12:59 -08:00
egdaniel
a7006d4521 Make specialized SrcOver XPFactory
BUG=skia:

Review URL: https://codereview.chromium.org/1455273006
2015-11-20 14:01:07 -08:00
mtklein
1d02a60fec Remove unsigned < signed comparison.
This triggers -Wsign-compare on some builds.
Not sure why none of those builds have -Werror set.

BUG=skia:4561

Review URL: https://codereview.chromium.org/1464543002
2015-11-19 09:53:22 -08:00
Brian Salomon
e416d940c6 Change prealloc number of child FPs be 1 rather than 2
TBR=joshualitt@google.com

Review URL: https://codereview.chromium.org/1458913003 .
2015-11-19 11:04:48 -05:00
bsalomon
418e26f86c Preallocate room for 2 child processors in FPs
Review URL: https://codereview.chromium.org/1456263003
2015-11-19 08:02:09 -08:00
joshualitt
33a5fce612 Initial implementation of GPU no filter NinePatch
TBR=bsalomon@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1454933002
2015-11-18 13:28:51 -08:00
robertphillips
504ce5dc77 Optionally pass rendertarget to getTestTarget
This shouldn't really make any difference but allocating and holding on to a GrRenderTarget for each test target generates image differences for Mali GPUs. This CL allows an existing render target to be used for the test target.

TBR=bsalomon@google.com

Review URL: https://codereview.chromium.org/1447113002
2015-11-16 11:02:05 -08:00
robertphillips
e004bfc0a5 Increase the amount of debug information printed out by batches
Untangling MDB bugs requires more information. In particular the render targets.

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

Review URL: https://codereview.chromium.org/1443763002
2015-11-16 09:06:59 -08:00
bsalomon
a779ef1677 Fix for chrome's skia gl bindings code.
TBR=egdaniel@google.com
NOTRY=true

Review URL: https://codereview.chromium.org/1451743002
2015-11-16 08:28:21 -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
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
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
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
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
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
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
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
cdalton
d472792a72 Revert of Fix mixed samples stencil clip (patchset #5 id:80001 of https://codereview.chromium.org/1431593006/ )
Reason for revert:
Co-centered sample locations are not needed to do stencil clip with mixed samples.

Original issue's description:
> Fix mixed samples stencil clip
>
> Fixes rendering bugs and nondeterminism in gm.
>
> Before, mixed samples stencil clip would try to infer whether the draw
> wanted co-centered sample locations from within GrGLGpu, which caused
> various errors. This change reworks it so the draw itself can request
> the co-centered sample locations when it knows it will need them.
>
> Also reduces framebuffer binds by moving the code that enables
> GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS into flushRenderTarget.
>
> Committed: https://skia.googlesource.com/skia/+/14184d5567b58085b6d8a6375796d405056f7f73

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

Review URL: https://codereview.chromium.org/1407063011
2015-11-10 12:49:06 -08:00
bsalomon
091f60c2a0 Use a struct for client GL texture handles
Review URL: https://codereview.chromium.org/1429863009
2015-11-10 11:54:57 -08:00
reed
d9ffaed6d2 apply mozilla patch
BUG=skia:4547

Review URL: https://codereview.chromium.org/1421793009
2015-11-10 04:55:08 -08:00
cdalton
14184d5567 Fix mixed samples stencil clip
Fixes rendering bugs and nondeterminism in gm.

Before, mixed samples stencil clip would try to infer whether the draw
wanted co-centered sample locations from within GrGLGpu, which caused
various errors. This change reworks it so the draw itself can request
the co-centered sample locations when it knows it will need them.

Also reduces framebuffer binds by moving the code that enables
GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS into flushRenderTarget.

Review URL: https://codereview.chromium.org/1431593006
2015-11-09 15:12:19 -08:00
jvanverth
629162dd8e Add text animation sample; tweak DrawShip sample
Committed: https://skia.googlesource.com/skia/+/3b484a40b3be7f0262afadeaf6b741ba5cedcfe1

Review URL: https://codereview.chromium.org/1410663005
2015-11-08 08:07:24 -08:00
jvanverth
d75ccc6a0a Revert of Add text animation sample; tweak DrawShip sample (patchset #3 id:40001 of https://codereview.chromium.org/1410663005/ )
Reason for revert:
CrOS bots failing.

Original issue's description:
> Add text animation sample; tweak DrawShip sample
>
> Committed: https://skia.googlesource.com/skia/+/3b484a40b3be7f0262afadeaf6b741ba5cedcfe1

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

Review URL: https://codereview.chromium.org/1408063015
2015-11-06 16:10:34 -08:00
jvanverth
3b484a40b3 Add text animation sample; tweak DrawShip sample
Review URL: https://codereview.chromium.org/1410663005
2015-11-06 14:20:04 -08:00
cdalton
63f6c1fc5b Loosen requirements for mixed samples support
Quits requiring EXT_raster_multisample and
NV_sample_mask_override_coverage for mixed samples support. This will
allow platforms without those latter extensions (i.e. Chrome) to still
use mixed samples for path rendering. Also moves the mixed samples cap
out of shader caps, since it no longer denotes shader functionality.

BUG=skia:

Review URL: https://codereview.chromium.org/1410383011
2015-11-06 07:09:43 -08:00
bsalomon
a2e69fcded Rename non-aa rect methods on GrDrawContext in anticipation of making them support aa
R=joshualitt@google.com

Review URL: https://codereview.chromium.org/1409753008
2015-11-05 10:41:43 -08:00
joshualitt
65d6fbb576 Create SDL backed SkOSWindow
BUG=skia:

Review URL: https://codereview.chromium.org/1413593007
2015-11-04 13:41:02 -08:00
egdaniel
b7e7d5748d Create swizzle table inside of glsl caps
BUG=skia:

Committed: https://skia.googlesource.com/skia/+/4036674952f341dab0695c3b054fefa5bb8cdec1

Review URL: https://codereview.chromium.org/1420033005
2015-11-04 04:23:53 -08:00
egdaniel
0c2999974d Revert of Create swizzle table inside of glsl caps (patchset #12 id:210001 of https://codereview.chromium.org/1420033005/ )
Reason for revert:
Breaking gm's on nexus7 and s3

Original issue's description:
> Create swizzle table inside of glsl caps
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/4036674952f341dab0695c3b054fefa5bb8cdec1

TBR=bsalomon@google.com,robertphillips@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1426653008
2015-11-03 10:33:14 -08:00
cdalton
98cad6219b Fix setColocatedSampleLocations on ES and GL < 4.5
Updates setColocatedSampleLocations to use glFramebufferParameteri when
the DSA version glNamedFramebufferParameteri is not present.

BUG=skia:

Review URL: https://codereview.chromium.org/1415503008
2015-11-03 09:33:21 -08:00
egdaniel
4036674952 Create swizzle table inside of glsl caps
BUG=skia:

Review URL: https://codereview.chromium.org/1420033005
2015-11-03 08:15:29 -08:00
bsalomon
8c07b7ab53 Allow max tile size to be overridden separately from max texture size.
This allows internal Gr texture creation code to succeed for extraneous textures while running the bleed GM. This means we can turn on the shader variants.

Review URL: https://codereview.chromium.org/1418473004
2015-11-02 11:36:52 -08:00
robertphillips
498d7ac86b Dependencies are now added between the drawTargets in GrPipeline
This CL relies on https://codereview.chromium.org/1414773002/ (Add the machinery to GrDrawTarget to enable topological sorting)

BUG=skia:4094

Committed: https://skia.googlesource.com/skia/+/45a1c34f607a970933e5cd05e1df6cd8090db1be

Committed: https://skia.googlesource.com/skia/+/869c5e82a725a6928a45cd1fa6945ac783b8b3d8

Review URL: https://codereview.chromium.org/1414903002
2015-10-30 10:11:30 -07:00
robertphillips
687378229a Remove GrPipelineBuilder from getPathRenderer call
Logically this CL:

Moves the PathRendererChain from GrContext to GrDrawManager
   - this was needed to untangled the Path-Chain/Renderer header mess
   - this entailed adding getDrawingMgr so the CMM could access the PathRenderingChain
   - this also entailed re-adding freeGpuResources to the GrDrawingMgr
Moves the CanDrawArgs struct up stack
Removes the GrPipelineBuilder from the CanDrawArgs struct

Review URL: https://codereview.chromium.org/1407883004
2015-10-29 12:12:21 -07:00
bsalomon
100b8f8c07 Remove min texture size support
BUG=skia:4524

Review URL: https://codereview.chromium.org/1430643002
2015-10-28 08:37:44 -07:00
robertphillips
cf10b5a432 Cosmetic portion of reverted "Fix ClipMaskManager's SW-fallback logic" CL
This CL isolates the cosmetic portion so the functional portion is clearer. It relies on https://codereview.chromium.org/1412883005/ (Fix ClipMaskManager's SW-fallback logic (take 2))

Review URL: https://codereview.chromium.org/1422023003
2015-10-27 07:53:35 -07:00
robertphillips
24cdec1744 Revert of Fix ClipMaskManager's SW-fallback logic (patchset #4 id:60001 of https://codereview.chromium.org/1421533007/ )
Reason for revert:
Logic may be incorrect

Original issue's description:
> Fix ClipMaskManager's SW-fallback logic
>
>
> 'useSWOnlyPath' was not correctly toggling between stencil and color draws so there was a mismatch with the behavior in createAlphaClipMask (i.e., we were inadvertently rendering some of the elements in a clip using SW but using stenciling for others - precisely what 'useSWOnlyPath' was intended to prevent).
>
> Committed: https://skia.googlesource.com/skia/+/5c3ea4cd3921e8904d4f201bcdedfd5b8a726542

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

Review URL: https://codereview.chromium.org/1426443008
2015-10-26 14:12:25 -07:00
robertphillips
5c3ea4cd39 Fix ClipMaskManager's SW-fallback logic
'useSWOnlyPath' was not correctly toggling between stencil and color draws so there was a mismatch with the behavior in createAlphaClipMask (i.e., we were inadvertently rendering some of the elements in a clip using SW but using stenciling for others - precisely what 'useSWOnlyPath' was intended to prevent).

Review URL: https://codereview.chromium.org/1421533007
2015-10-26 08:33:10 -07:00
joshualitt
6df232d251 Revert of Experimental CL to stop using subdata (patchset #1 id:1 of https://codereview.chromium.org/1413263006/ )
Reason for revert:
might be breaking tsan

Original issue's description:
> Experimental CL to stop using subdata
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/383ce32e3e5ca0c8997ece827205f61d348ee56f

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

Review URL: https://codereview.chromium.org/1409123004
2015-10-23 13:54:12 -07:00
robertphillips
b83bec5e04 Narrow the distribution of GrDrawTarget a bit
BUG=skia:4094
TBR=bsalomon@google.com

Review URL: https://codereview.chromium.org/1420043002
2015-10-23 09:38:03 -07:00
joshualitt
383ce32e3e Experimental CL to stop using subdata
BUG=skia:

Review URL: https://codereview.chromium.org/1413263006
2015-10-23 09:12:02 -07:00
bsalomon
648c696438 Add immediate mode option for gpu configs in dm
Review URL: https://codereview.chromium.org/1421853002
2015-10-23 09:06:59 -07:00
joshualitt
ccdbc1d062 Remove mac buffer impl war
BUG=skia:

Review URL: https://codereview.chromium.org/1419203002
2015-10-23 07:33:54 -07:00
reed
c9b5f8b152 tunnel down texture-size-constraint to imagefilters
BUG=skia:

Review URL: https://codereview.chromium.org/1421493003
2015-10-22 13:20:20 -07:00
robertphillips
a352b14c87 Revert of Dependencies are now added between the drawTargets in GrPipeline (patchset #6 id:120001 of https://codereview.chromium.org/1414903002/ )
Reason for revert:
Breaking bots

Original issue's description:
> Dependencies are now added between the drawTargets in GrPipeline
>
> This CL relies on https://codereview.chromium.org/1414773002/ (Add the machinery to GrDrawTarget to enable topological sorting)
>
> BUG=skia:4094
>
> Committed: https://skia.googlesource.com/skia/+/45a1c34f607a970933e5cd05e1df6cd8090db1be
>
> Committed: https://skia.googlesource.com/skia/+/869c5e82a725a6928a45cd1fa6945ac783b8b3d8

TBR=bsalomon@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:4094

Review URL: https://codereview.chromium.org/1417263002
2015-10-22 05:31:32 -07:00
robertphillips
869c5e82a7 Dependencies are now added between the drawTargets in GrPipeline
This CL relies on https://codereview.chromium.org/1414773002/ (Add the machinery to GrDrawTarget to enable topological sorting)

BUG=skia:4094

Committed: https://skia.googlesource.com/skia/+/45a1c34f607a970933e5cd05e1df6cd8090db1be

Review URL: https://codereview.chromium.org/1414903002
2015-10-22 05:19:50 -07:00
bsalomon
045802dbb7 Rewrite GrTextureMaker to disentangle bitmap case from base class and give GPU object a say in what copying needs to be done.
Committed: https://skia.googlesource.com/skia/+/fcffaf22d697f06f903c3193308f9dc54a959f79

Committed: https://skia.googlesource.com/skia/+/1a197ea31e0aac7ea312e9a6c0d9f5df626b0350

Review URL: https://codereview.chromium.org/1409163002
2015-10-20 07:58:01 -07:00
Brian Salomon
bc0bcc08b3 Revert recent CLs around GrTextureMaker/GrTextureParamsAdjuster
Review URL: https://codereview.chromium.org/1411353002 .
2015-10-19 15:12:32 -04:00
bsalomon
2fc11d39d1 Move definitions of GrGL basic types (e.g. GrGLenum) to their own header.
Review URL: https://codereview.chromium.org/1410333003
2015-10-19 09:03:23 -07:00
bsalomon
1a197ea31e Rewrite GrTextureMaker to disentangle bitmap case from base class and give GPU object a say in what copying needs to be done.
Committed: https://skia.googlesource.com/skia/+/fcffaf22d697f06f903c3193308f9dc54a959f79

Review URL: https://codereview.chromium.org/1409163002
2015-10-19 08:24:09 -07:00
robertphillips
77a2e52c7d Remove DrawingMgr shims from GrContext
BUG=skia:4094

Review URL: https://codereview.chromium.org/1413673002
2015-10-17 07:43:27 -07:00
egdaniel
91957941ce Revert of Rewrite GrTextureMaker to disentangle bitmap case from base class and give GPU object a say in what… (patchset #4 id:60001 of https://codereview.chromium.org/1409163002/ )
Reason for revert:
breaking nanobench

Original issue's description:
> Rewrite GrTextureMaker to disentangle bitmap case from base class and give GPU object a say in what copying needs to be done.
>
> Committed: https://skia.googlesource.com/skia/+/fcffaf22d697f06f903c3193308f9dc54a959f79

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

Review URL: https://codereview.chromium.org/1409923003
2015-10-16 13:59:14 -07:00
bsalomon
fcffaf22d6 Rewrite GrTextureMaker to disentangle bitmap case from base class and give GPU object a say in what copying needs to be done.
Review URL: https://codereview.chromium.org/1409163002
2015-10-16 13:35:10 -07:00
robertphillips
a106c62753 Loosen requirement that there be only one GrDrawTarget
BUG=skia:4094

Review URL: https://codereview.chromium.org/1406173003
2015-10-16 09:07:06 -07:00
robertphillips
2e1e51f049 GrDrawContext now holds GrRenderTarget pointer
Review URL: https://codereview.chromium.org/1404823005
2015-10-15 08:01:49 -07:00
kkinnunen
0adfffba1b Fix dm with Chromium command buffer driver
Fix a crash in dm when run with Chromium command buffer driver.

Also removes glCopyTextureCHROMIUM, it does not seem to be used.
This is removed on the grounds that it would need similar change,
if it was used. The variable fCopyTextureCHROMIUM does not seem to
be populated in the Chromium side, either.

BUG=skia:2992

Review URL: https://codereview.chromium.org/1389213004
2015-10-13 12:58:38 -07:00
bsalomon
afa95e270c Remove image usage type enum. Use GrTextureParams instead.
BUG=skia:

Review URL: https://codereview.chromium.org/1404433002
2015-10-12 10:39:46 -07:00
bsalomon
f276ac5c16 Move functions from SkGr to SkGrPriv.h
Review URL: https://codereview.chromium.org/1397123002
2015-10-09 13:36:42 -07:00
cdalton
8585dd26bf Updates nvpr text blobs to not store a direct reference to the
per-glyph GPU path object, but rather store a key for looking it up in
the resource cache. This allows the cache to purge glyphs when needed.
Also indirectly fixes a memory leak that was introduced with nvpr text
blobs.

BUG=skia:

Review URL: https://codereview.chromium.org/1374853004
2015-10-08 08:04:09 -07:00
bsalomon
4a33952961 Bye bye processor data manager.
Review URL: https://codereview.chromium.org/1388113002
2015-10-06 08:40:51 -07:00
robertphillips
2d70dcbe5c Dynamically allocate the GrDrawContexts
This CL moves the allocation and storage of the GrTextContexts into the DrawingManager. The GrDrawContexts now just get their GrTextContext from the DrawingManager.

Review URL: https://codereview.chromium.org/1375153007
2015-10-06 07:38:23 -07:00
bsalomon
473addf176 Remove separate cache for clip mask textures
Review URL: https://codereview.chromium.org/1377943003
2015-10-02 07:49:06 -07:00
vbuzinov
3e77ba96d5 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

Review URL: https://codereview.chromium.org/1232103002
2015-09-30 23:02:06 -07:00
reed
b39abc4d76 remove unused helper function
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1376603006
2015-09-29 18:27:59 -07:00
herb
62a69c26b3 Move Mutexy things to private.
There is no API change.

TBR=reed@google.com

BUG=skia:

Review URL: https://codereview.chromium.org/1368333004
2015-09-29 11:47:45 -07:00
bsalomon
e25eea4b36 Use child processors to implement compose color filter.
Review URL: https://codereview.chromium.org/1368423003
2015-09-29 06:38:55 -07:00
bsalomon
f1b7a1d828 Make skpaint->grpaint flow work for composing draws (verts and atlas)
One side effect is that the SkShader's (or implicit shader's) fragment processor is responsible for the transition from an unpremul paint color to a premul color.

Review URL: https://codereview.chromium.org/1348583002
2015-09-28 06:26:29 -07:00
bsalomon
aca31fea8c Stop supporting HW dither
Review URL: https://codereview.chromium.org/1359833004
2015-09-22 11:38:46 -07:00
bsalomon
87ba62e67c Replace GrExtractAlphaFragmentProcessor with DstIn compose processor
Review URL: https://codereview.chromium.org/1347943003
2015-09-22 06:42:00 -07:00
mdempsky
106b12427e Remove SkNEW and SkDELETE macros
This CL removes the uses of SkNEW that have resprouted since commit
385fe4d, and removes the macros entirely now that Android and Chromium
have been cleaned up to no longer depend on them.

A bunch of files implicitly depend on #include <new> from SkPostConfig.h
still though, so keep that for now.  To be fixed in a followup CL.

[mtklein mucking around]
Only public API removed.
TBR=reed@google.com

Review URL: https://codereview.chromium.org/1360653004
2015-09-22 06:10:35 -07:00
halcanary
0fc1dbe592 SK_API for include/gpu/gl/GrGLInterface.h
Review URL: https://codereview.chromium.org/1357823003
2015-09-21 08:22:19 -07:00
reed
3322a8137d share code between SkGr and Cacherator
BUG=skia:

Review URL: https://codereview.chromium.org/1351533004
2015-09-16 10:09:24 -07:00
bsalomon
ae4738f677 Create fragment processor for performing input color blend with child processor
The new FP is used to implement SkXM::Mode color filters and SkXM::Mode image filters. Also, these now support all advanced SkXM::Mode xfermodes.

Review URL: https://codereview.chromium.org/1334293003
2015-09-15 15:33:27 -07:00
ericrk
0a5fa484fd Add onMemoryDump to GrContext
Adds an entry point to GrContext to allow enumeration and tracing of GPU resources
via the newly added SkTraceMemoryDump.

Plan is for Chrome to call this on each of its GrContexts.

Dumps both the total size of GPU resources, as well as the total purgeable size.

BUG=526261

Review URL: https://codereview.chromium.org/1313743002
2015-09-15 14:16:10 -07:00
egdaniel
723b0501e2 Add support for blending of LCD for all blend modes.
BUG=skia:

Review URL: https://codereview.chromium.org/1313623002
2015-09-15 09:31:40 -07:00
bsalomon
506c802a3d Add helper for creating leaf FPs inside GrFP::TestCreate functions
Review URL: https://codereview.chromium.org/1334273003
2015-09-14 13:16:26 -07:00
egdaniel
ec00d94199 Move some of the adding stencil attachment logic of Gpu and into Render Target.
The new flow of calls for attaching a Stencil looks like:

Client
  rt->attachStencilAttachment()
    gpu->getStencilAttachment()
      glgpu->createStencilAttachment()
    glrt->completeStencilAttachment() //actually attaches

BUG=skia:

Review URL: https://codereview.chromium.org/1333383002
2015-09-14 12:56:10 -07:00
bsalomon
b5b603241a Test that GrFragmentProcessors work without input colors.
Committed: https://skia.googlesource.com/skia/+/72c58e7052af2a0855412ce4b249f977069db751

Review URL: https://codereview.chromium.org/1341853002
2015-09-14 12:26:34 -07:00
bsalomon
59ce45fe79 Revert of Test that GrFragmentProcessors work without input colors. (patchset #2 id:20001 of https://codereview.chromium.org/1341853002/ )
Reason for revert:
Need to fix up more processor subclasses.

Original issue's description:
> Test that GrFragmentProcessors work without input colors.
>
> Committed: https://skia.googlesource.com/skia/+/72c58e7052af2a0855412ce4b249f977069db751

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

Review URL: https://codereview.chromium.org/1338403003
2015-09-14 12:01:42 -07:00
bsalomon
72c58e7052 Test that GrFragmentProcessors work without input colors.
Review URL: https://codereview.chromium.org/1341853002
2015-09-14 11:55:52 -07:00
hendrikw
eddbefb4a5 skia: Add ANGLE with GL backend to nanobench/DM
This will allow us to test this without hacking it in, might be useful
for others too.

Review URL: https://codereview.chromium.org/1338003002
2015-09-11 13:07:29 -07:00
reed
85d9178832 Use SkImageCacherator in SkImages
Possible follow-up changes to consider

1. Roll SkImage_Raster and _Gpu into _Generator, where the generator (or cacherator) is backed by a pre-existing texture or raster.
2. Evolve SkImageUsageType into a verb requiring stretching, and have the caller (common code) digest the caps() and usage, so that subclasses are just told what to do (stretch or not)
3. Common code/utility to convert an unstretched texture into a stretch one (and cache it) if the generator can only make an unstretched one.

BUG=skia:

Review URL: https://codereview.chromium.org/1282363002
2015-09-10 14:33:38 -07:00
joshualitt
f238469b05 Late creation of GrPathProcessor
BUG=skia:

Review URL: https://codereview.chromium.org/1337513002
2015-09-10 11:00:51 -07:00
bsalomon
6c6f65885b Add a mutex to GrContext::readSurfacePixels to protect against multiple CPU raster threads accessing the same GrContext to read back GPU input data
BUG=chromium:524717

TBR=reed@google.com

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

Review URL: https://codereview.chromium.org/1329313002
2015-09-10 08:12:46 -07:00
bsalomon
32ab260ee1 Revert of Add a mutex to GrContext::readSurfacePixels to protect against multiple CPU raster threads accessin… (patchset #1 id:1 of https://codereview.chromium.org/1329313002/ )
Reason for revert:
breaking the bots

Original issue's description:
> Add a mutex to GrContext::readSurfacePixels to protect against multiple CPU raster threads accessing the same GrContext to read back GPU input data
>
> BUG=chromium:524717
>
> TBR=reed@google.com
>
> Committed: https://skia.googlesource.com/skia/+/eb662bc407cec0585a821946fef123102cae64db

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

Review URL: https://codereview.chromium.org/1334603002
2015-09-09 18:57:49 -07:00
bsalomon
eb662bc407 Add a mutex to GrContext::readSurfacePixels to protect against multiple CPU raster threads accessing the same GrContext to read back GPU input data
BUG=chromium:524717

TBR=reed@google.com

Review URL: https://codereview.chromium.org/1329313002
2015-09-09 18:05:03 -07:00
bsalomon
cb1ccfd205 SK_API on GrWrapTextureInBitmap
BUG=chromium:524717
TBR=reed@google.com

Review URL: https://codereview.chromium.org/1334563002
2015-09-09 14:51:52 -07:00
wangyix
809e5afdd9 Brian requested a new namespace for factories that create fragment processors that combine 2 things with a xfermode. This way, we can change the implementation of these factories in the future to not use GrComposeEffect if desired.
BUG=skia:4182

Review URL: https://codereview.chromium.org/1306163005
2015-09-09 12:58:32 -07:00
joshualitt
af2533a165 Make GrProcessorDataManager a noop
TBR=bsalomon@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1323963003
2015-09-09 10:00:12 -07:00
bsalomon
1fcc01c415 GrPathRangeBatch
BUG=skia:

Review URL: https://codereview.chromium.org/1315563003
2015-09-09 09:48:06 -07:00
reed
43fe6185c5 refactor parts of SkGr.cpp for use by SkImages
BUG=skia:

Review URL: https://codereview.chromium.org/1315353006
2015-09-08 08:37:36 -07:00
bungeman
a3434d83cf Add skstd::unique_ptr and use it.
TBR=bsalomon@google.com
The one gpu include change is just to fix swap in implementation.

Review URL: https://codereview.chromium.org/1330503006
2015-09-07 12:45:52 -07:00
jvanverth
5a42c33f27 Add new surface flag
TBR=bsalomon@google.com

Review URL: https://codereview.chromium.org/1320533005
2015-09-02 12:26:10 -07:00
joshualitt
dac7005b87 Remove GrGpuTraceMarker hooks until we rethink the design
TBR=bsalomon@google.com
BUG=526308

Review URL: https://codereview.chromium.org/1323823003
2015-09-01 08:19:46 -07:00
bsalomon
c21b09eec9 Change SkShader;asFragmentProcessor signature to no longer take skpaint\grcolor*
Committed: https://skia.googlesource.com/skia/+/ecfdc251be71f3d634e76afdd6375bf55fc061aa

Review URL: https://codereview.chromium.org/1316513002
2015-08-28 18:46:56 -07:00
rmistry
a511e6ad10 Revert of Change SkShader;asFragmentProcessor signature to no longer take skpaint\grcolor* (patchset #8 id:140001 of https://codereview.chromium.org/1316513002/ )
Reason for revert:
Primary suspect in failing DEPS rolls:
* https://codereview.chromium.org/1315753006
* https://codereview.chromium.org/1308323006
* https://codereview.chromium.org/1320903004

Primary suspect because the failing win bots did not fail in https://codereview.chromium.org/1315753005

Original issue's description:
> Change SkShader;asFragmentProcessor signature to no longer take skpaint\grcolor*
>
> Committed: https://skia.googlesource.com/skia/+/ecfdc251be71f3d634e76afdd6375bf55fc061aa

TBR=joshualitt@google.com,wangyix@google.com,robertphillips@google.com,bsalomon@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1313573005
2015-08-28 17:16:50 -07:00
bsalomon
ecfdc251be Change SkShader;asFragmentProcessor signature to no longer take skpaint\grcolor*
Review URL: https://codereview.chromium.org/1316513002
2015-08-28 14:33:47 -07:00
bungeman
761cf6186e Clean up SkTLogic.
This change regularizes Skia's type traits so that when <type_traits>
can finally be used the transition is easier. Various traits are
renamed to match <type_traits> and placed in the skstd namespace.
Current users of these traits are updated.

Review URL: https://codereview.chromium.org/1317593004
2015-08-28 07:09:20 -07:00
bsalomon
4204800cd8 Convert child FPs from refs to pending executions when parent converts
Review URL: https://codereview.chromium.org/1315923004
2015-08-27 16:43:48 -07:00
mdempsky
38f1f6f9e5 Remove overly complicated GR_CREATE_STATIC_PROCESSOR macro
This macro was responsible for producing code like:

    static SkAlignedStorage<sizeof(Foo)> g_gFoo_Storage;
    static Foo* gFoo = new(g_gFoo_Storage.get()) Foo;
    static SkAutoTDestroy<Foo> gFoo_ad(gFoo);

which would allocate static storage for an object of type Foo
(g_gFoo_Storage), lazily instantiate the object in that memory (via
gFoo's initializer), and then ensure that at global destruction time
the object is destroyed (via gFoo_Ad's destructor).

However, the exact same effect is achieved by just writing:

    static Foo gFoo;

Review URL: https://codereview.chromium.org/1314763009
2015-08-27 12:57:01 -07:00
hendrikw
885bf09255 skia: add ability to load command_buffer_gles2
BUG=skia:

Review URL: https://codereview.chromium.org/1306823003
2015-08-27 10:38:39 -07:00
bsalomon
ac856c97ac Remove GrStagedProcessor, remove the word Stage as it applies to FPs
Committed: https://skia.googlesource.com/skia/+/24243446cdf7b7e4e132c2a0c387c7723777e0c7

Review URL: https://codereview.chromium.org/1307223004
2015-08-27 06:30:17 -07:00
halcanary
385fe4d4b6 Style Change: SkNEW->new; SkDELETE->delete
DOCS_PREVIEW= https://skia.org/?cl=1316123003

Review URL: https://codereview.chromium.org/1316123003
2015-08-26 13:07:49 -07:00
rmistry
4bf69f7bbc Revert of Remove GrStagedProcessor, remove the word Stage as it applies to FPs (patchset #6 id:90001 of https://codereview.chromium.org/1307223004/ )
Reason for revert:
Causes bot failures:

https://uberchromegw.corp.google.com/i/client.skia/builders/Test-Mac10.9-Clang-MacMini6.2-GPU-HD4000-x86_64-Debug/builds/1639

https://uberchromegw.corp.google.com/i/client.skia/builders/Test-Ubuntu-GCC-ShuttleA-GPU-GTX660-x86_64-Debug/builds/1702

https://uberchromegw.corp.google.com/i/client.skia.android/builders/Test-Android-GCC-NexusPlayer-GPU-PowerVR-x86-Debug/builds/1223

Original issue's description:
> Remove GrStagedProcessor, remove the word Stage as it applies to FPs
>
> Committed: https://skia.googlesource.com/skia/+/24243446cdf7b7e4e132c2a0c387c7723777e0c7

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

Review URL: https://codereview.chromium.org/1306803003
2015-08-26 06:48:27 -07:00
bsalomon
24243446cd Remove GrStagedProcessor, remove the word Stage as it applies to FPs
Review URL: https://codereview.chromium.org/1307223004
2015-08-26 05:39:18 -07:00
joshualitt
b6b513b805 Create separate entry points for the various flavors of drawRect
BUG=skia:

Review URL: https://codereview.chromium.org/1308503002
2015-08-21 10:25:18 -07:00
robertphillips
63926683c5 Add ANGLE workaround to prefer flushes over VRAM usage
On the whole, https://codereview.chromium.org/1286203002/ (Defer flushes if kPreferNoIO is specified) improved performance but it did cause a performance regression on ANGLE. This CL disables the deferral of flushes on ANGLE until we can add a separate incremental flushing mechanism.

TBR=bsalomon@google.com

BUG=skia:4201
BUG=521529

Review URL: https://codereview.chromium.org/1287193008
2015-08-20 09:39:02 -07:00
bungeman
99fe822606 Use static_assert instead of SK_COMPILE_ASSERT.
Now that static_assert is allowed, there is no need to use a non-
standard compile time assertion

Review URL: https://codereview.chromium.org/1306443004
2015-08-20 07:57:52 -07:00
bungeman
f3c15b7cfc Move SkTemplates.h to private.
SkTemplates.h contains a number of Skia specific utilities which are
not designed for external use. In addition to reducing the external
support burden, this will allow Skia to freely refactor this file.

Review URL: https://codereview.chromium.org/1272293004
2015-08-19 11:56:48 -07:00
mtklein
790d74f7c1 No need to re-declare pure virtual name().
Fixes inconsistent override warning.

BUG=skia:
TBR=bsalomon@google.com

Review URL: https://codereview.chromium.org/1293413003
2015-08-19 11:05:39 -07:00
bsalomon
7dea7b7df1 Use calloc to allocate data that will be uploaded to vertex/index buffers in Chrome
BUG=chromium:454267
BUG=chromium:522315

Review URL: https://codereview.chromium.org/1300123002
2015-08-19 08:26:51 -07:00
wangyix
93ab254b7e This change is in preparation for updating how processor keys and meta keys are generated for frag procs.
BUG=skia:4182

Review URL: https://codereview.chromium.org/1298233002
2015-08-19 08:23:12 -07:00
joshualitt
da04e0e80a Allow setting of GrBatchFontCache atlas sizes
BUG=skia:

Review URL: https://codereview.chromium.org/1255943006
2015-08-19 08:16:43 -07:00
wangyix
b1daa86732 When getGLInstance is called on a frag proc, the resulting GrGLFragmentProcessor will be the root of a tree of GrGLFragmentProcessors that mirrors the GrFragmentProcessor's tree. This allows setData() to be called recursively (removing the responsibility from compose shader) and allows gl instances direct access to their children gl instances so they can emit their code.
BUG=skia:4182

Review URL: https://codereview.chromium.org/1287023009
2015-08-18 11:29:32 -07:00
wangyix
54017d7e5b Made isEqual in GrFragmentProcessor recursive
Added comment about how computeInvariantOutput() is non-recursive in GrFragmentProcessor

Made isEqual() recursive in GrFragmentProcessor

BUG=skia:4182

Review URL: https://codereview.chromium.org/1287343005
2015-08-18 07:39:33 -07:00
wangyix
69ed114d38 Added class AutoFragmentChildProcAdvance to be constructed before a child emitCode and destructed after
Fixed wrong indent

Changed auto child advance back to backwards linear search for getting subset of coords and samplers array of a child

Used offset from parent instead of backwards linear search to find a child proc's coords and transforms in Auto...Advance

append mangleString to variable name in nameVariable()

BUILDS! Added AutoFragmentChildProcAdvance class; fixed a few errors from previous commits

BUG=skia:4182

Review URL: https://codereview.chromium.org/1286293002
2015-08-18 07:24:29 -07:00
bsalomon
abd30f54b7 Introduce GrBatch subclasses GrDrawBatch and GrVertexBatch to prepare for non-drawing batches
Review URL: https://codereview.chromium.org/1293583002
2015-08-13 13:34:48 -07:00
reed
8f34372f7e Extend SkImageGenerator to support natively generated GrTextures. As part of this, added uniqueID() to the generator, and made it be in the same namespace is bitmaps, pixelrefs, images.
To do this, create SkImageCacherator, which wraps a generator and provides an
interface to get a cached answer for either the raster or texture output of
the generator.

BUG=skia:

Review URL: https://codereview.chromium.org/1291803002
2015-08-13 13:32:39 -07:00
robertphillips
6e83ac778f Defer flushes if kPreferNoIO is specified
Prior to this patch clients who were solely uploading to textures (e.g., SW Mask Mgr) would cause extra flushes b.c., even though kPreferNoIO was being specified, resources with pending IO would still be returned even though there was plenty of space in the resource cache.

Review URL: https://codereview.chromium.org/1286203002
2015-08-13 05:19:14 -07:00
joshualitt
9bc3954fc1 Refactor helper function for SkBitmapShader to GrFragmentProcessor
BUG=skia:

Review URL: https://codereview.chromium.org/1285283002
2015-08-12 12:57:54 -07:00
jvanverth
a50e17a391 Add support for a new GPU interface
Review URL: https://codereview.chromium.org/1290813002
2015-08-12 12:19:36 -07:00
bsalomon
cb02b38b2c Check for xfer barriers in GrBatch, auto-issue barriers in GrGpu
Review URL: https://codereview.chromium.org/1287973003
2015-08-12 11:14:50 -07:00
wangyix
58d890bd45 All child GrFragmentProcs' transforms and textures will be stored in the root GrFragmentProc in preorder
Changed childProcessor(i) to return const referencd

Fixed rootProc/parentProc offset issues; renamed a few things.

added nonempty check to gatherTransforms to avoid segfault

removed recursive append_gr_coord_transforms() from GrGLProgramBuilder

BUILDS! Changed num*includeProc() calls to num() calls

added gatherCoordTransforms(). added coordTransforms() for root proc only

Modified GrFragmentProcessor to append child proc transforms and textures to root proc's arrays.

BUG=skia:4182

Review URL: https://codereview.chromium.org/1275853005
2015-08-12 09:40:47 -07:00
joshualitt
b7ee1bf017 trivial CL to add drawBatch to GrDrawContext
TBR=bsalomon@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1282883002
2015-08-10 11:59:03 -07:00
joshualitt
14205b114a Expand functionality of GrRectBatchFactory with AARects
BUG=skia:

Review URL: https://codereview.chromium.org/1279303002
2015-08-10 11:40:56 -07:00
jvanverth
31ff762dc8 First pass at drawAtlas batching.
Moves drawAtlas setup into its own method in GrDrawContext, and adds
DrawAtlasBatch.
Uses pre-built index buffer for quads.

TBR=bsalomon@google.com

Review URL: https://codereview.chromium.org/1277933003
2015-08-07 10:09:28 -07:00
egdaniel
51c8d409ad Move some work from backend onClear to base class clear
BUG=skia:

Review URL: https://codereview.chromium.org/1275543005
2015-08-06 10:54:13 -07:00
senorblanco
b4f9d0ec6c Implement caching of stroked paths in the tessellating path renderer.
This requires adding the stroke info to the cache key, and doing the
stroking and dashing before rendering as triangles.

BUG=skia:3755

Committed: https://skia.googlesource.com/skia/+/29e0d3f267a03546f236023347cdb4595ece2fd1

Review URL: https://codereview.chromium.org/1275553002
2015-08-06 10:28:55 -07:00
senorblanco
59cd36765c Revert of Implement caching of stroked paths in the tessellated path renderer. (patchset #4 id:60001 of https://codereview.chromium.org/1275553002/ )
Reason for revert:
Breaking/asserting in Debug on DM.

Original issue's description:
> Implement caching of stroked paths in the tessellated path renderer.
>
> This requires adding the stroke info to the cache key, and doing the
> stroking and dashing before rendering as triangles.
>
> BUG=skia:3755
>
> Committed: https://skia.googlesource.com/skia/+/29e0d3f267a03546f236023347cdb4595ece2fd1

TBR=bsalomon@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:3755

Review URL: https://codereview.chromium.org/1276633002
2015-08-05 13:37:49 -07:00
senorblanco
29e0d3f267 Implement caching of stroked paths in the tessellated path renderer.
This requires adding the stroke info to the cache key, and doing the
stroking and dashing before rendering as triangles.

BUG=skia:3755

Review URL: https://codereview.chromium.org/1275553002
2015-08-05 13:18:03 -07:00
joshualitt
2fe7923f7e Expose coord transforms from GrPipeline
BUG=skia:

Review URL: https://codereview.chromium.org/1275603002
2015-08-05 12:02:27 -07:00
joshualitt
847029043e fix for GrFragmentProcessor isEqual in GrPipeline
BUG=skia:

Review URL: https://codereview.chromium.org/1273693003
2015-08-05 09:30:02 -07:00
senorblanco
84cd621670 Implement caching of filled paths in the tessellated path renderer.
Paths are cached as tessellated triangle meshes in vertex buffers on the GPU. Stroked paths are not (yet) cached.

Paths containing no curved segments (linear paths) are reused at all scales. Paths containing curved segments are reused within a scale tolerance threshold.

In order to invalidate the cache when an SkPath is changed or deleted,
this required implementing genID change notification in SkPath. This is
modelled almost exactly on SkPixelRef::GenIDChangeListener.
However, It does not currently implement the check for unique genIDs,
so notifiers will fire when the first instance of an SkPathRef
using a given genID is destroyed.

Another caveat is that you cannot successfully add a change notifier
to an empty path, since it uses the "canonical" empty path which is
never modified or destroyed. For this reason, we prevent adding
listeners to it.

BUG=skia:4121,skia:4122, 497403
DOCS_PREVIEW= https://skia.org/?cl=1114353004

Committed: https://skia.googlesource.com/skia/+/468dfa72eb6694145487be17876804dfca3b7adb

Review URL: https://codereview.chromium.org/1114353004
2015-08-04 10:01:58 -07:00
mtklein
562a66b093 Revert "Implement caching of filled paths in the tessellated path renderer."
This reverts commit 468dfa72eb.

    This CL caused signficant GM diffs.

Revert "Fix resource cache test."
This reverts commit b001c41ed3.
Revert "Fix SkData leaks at GrResourceKey::setCustomData() call sites."
This reverts commit c369348aa5.

    These CLs depend on the first one.

BUG=skia:
TBR=bsalomon@google.com

Review URL: https://codereview.chromium.org/1260363007
2015-08-04 08:46:16 -07:00
wangyix
4b3050b410 Added registerChild; transforms, textures, glKey automatically handled.
BUG=skia:

Review URL: https://codereview.chromium.org/1266633003
2015-08-04 07:59:37 -07:00
senorblanco
468dfa72eb Implement caching of filled paths in the tessellated path renderer.
Paths are cached as tessellated triangle meshes in vertex buffers on the GPU. Stroked paths are not (yet) cached.

Paths containing no curved segments (linear paths) are reused at all scales. Paths containing curved segments are reused within a scale tolerance threshold.

In order to invalidate the cache when an SkPath is changed or deleted,
this required implementing genID change notification in SkPath. This is
modelled almost exactly on SkPixelRef::GenIDChangeListener.
However, It does not currently implement the check for unique genIDs,
so notifiers will fire when the first instance of an SkPathRef
using a given genID is destroyed.

Another caveat is that you cannot successfully add a change notifier
to an empty path, since it uses the "canonical" empty path which is
never modified or destroyed. For this reason, we prevent adding
listeners to it.

BUG=skia:4121,skia:4122, 497403
DOCS_PREVIEW= https://skia.org/?cl=1114353004

Review URL: https://codereview.chromium.org/1114353004
2015-08-03 13:04:03 -07:00
joshualitt
17d833b05b Add abliity to set textblob cache budget to GrContext
BUG=skia:

Review URL: https://codereview.chromium.org/1264283002
2015-08-03 10:17:44 -07:00
bsalomon
eae6200acb Some cleanup in GrTextureProvider and GrResourceProvider.
Review URL: https://codereview.chromium.org/1261643004
2015-07-31 13:59:31 -07:00
bsalomon
88c7b988ba Make ANGLE perf decisions be runtime rather than compile time
R=robertphillips@google.com

Review URL: https://codereview.chromium.org/1268953002
2015-07-31 11:20:16 -07:00
bsalomon
16921ec30a SRGB read and write pixels working and unit test
Review URL: https://codereview.chromium.org/1264003002
2015-07-30 15:34:56 -07:00
mtklein
22355c4f40 Move headers with no dependencies.
C.f.  https://codereview.chromium.org/1261013003/

BUG=skia:4126

Will follow up with two more CLs if this works:
  - one moving SkRecords.h
  - one moving SkMiniRecorder.h

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

Committed: https://skia.googlesource.com/skia/+/117842223bd13325b6da26110d80e0590c1a742b

Review URL: https://codereview.chromium.org/1266593002
2015-07-29 11:10:46 -07:00
Mike Klein
1e8a58b568 Revert "Move headers with no dependencies."
This reverts commit 117842223b.

No good:
https://uberchromegw.corp.google.com/i/client.skia/builders/Mac%20Builder/builds/3465/steps/compile/logs/stdio

BUG=skia:4126

Review URL: https://codereview.chromium.org/1262173002 .
2015-07-29 11:50:09 -04:00
mtklein
117842223b Move headers with no dependencies.
C.f.  https://codereview.chromium.org/1261013003/

BUG=skia:4126

Will follow up with two more CLs if this works:
  - one moving SkRecords.h
  - one moving SkMiniRecorder.h

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

Review URL: https://codereview.chromium.org/1266593002
2015-07-29 08:18:34 -07:00
bsalomon
636e8024f8 Skip temp texture when config conversion test has already failed.
Review URL: https://codereview.chromium.org/1261033005
2015-07-29 06:08:46 -07:00
Mike Klein
3a4b134988 Revert "Move the rest of src headers used by include to include/private."
This reverts commit d12e6ffa5c.

Our Chrome roll canaries are failing with the dreaded
Ninja-says-there's-more-work-to-do message.  I will break this up
smaller (if possible) and try again tomorrow.

BUG=skia:4126

Review URL: https://codereview.chromium.org/1258293004 .
2015-07-28 16:01:24 -04:00
mtklein
d12e6ffa5c Move the rest of src headers used by include to include/private.
$ git grep "../../src/" | grep include

now returns nothing.

BUG=skia:4126

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

Review URL: https://codereview.chromium.org/1261013003
2015-07-28 11:51:50 -07:00