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