Commit Graph

8031 Commits

Author SHA1 Message Date
Herb Derby
bc6f9c9a8c Remove GrTextUtil::Paint
This was just acting like a pair of SkPaint, GrColor. But,
had an additional pointer to a color space. I changed
everything to just pass the pair around.

BUG=chromium:864564

Change-Id: I9858556b8bca0d5359d4d6e9784d63ff8c4f467b
Reviewed-on: https://skia-review.googlesource.com/146381
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2018-08-09 22:25:13 +00:00
Timothy Liang
2eb8e02756 Reland "implemented GrMtlSampler for metal gpu backend"
This reverts commit 35f9637a78.

Reason for revert: <Removed setting border color since we don't clamp to border anyway>

Original change's description:
> Revert "implemented GrMtlSampler for metal gpu backend"
>
> This reverts commit 93fa10fbbc.
>
> Reason for revert: <Breaking build on macOS ver < 10.12>
>
> Original change's description:
> > implemented GrMtlSampler for metal gpu backend
> >
> > Bug: skia:
> > Change-Id: I936e5510e5ee146c0fc6bdbc0d5f5352359fbe7d
> > Reviewed-on: https://skia-review.googlesource.com/145893
> > Commit-Queue: Timothy Liang <timliang@google.com>
> > Reviewed-by: Greg Daniel <egdaniel@google.com>
>
> TBR=egdaniel@google.com,timliang@google.com
>
> Change-Id: I4184890610e3147abc63b7d9bdfa8ec8120a11ef
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: skia:
> Reviewed-on: https://skia-review.googlesource.com/146580
> Reviewed-by: Timothy Liang <timliang@google.com>
> Commit-Queue: Timothy Liang <timliang@google.com>

Bug: skia:
Change-Id: Icbf31144cba79c621eff4741871d27172f1004b7
Reviewed-on: https://skia-review.googlesource.com/146581
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Timothy Liang <timliang@google.com>
2018-08-09 22:00:28 +00:00
Adrienne Walker
87785d5573 Add max_fragment_uniform_vectors_32 workaround
Bug: chromium: 829614
Change-Id: I0ce008d8ebadd90758510ea069f0f4384a95751e
Reviewed-on: https://skia-review.googlesource.com/146622
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Adrienne Walker <enne@chromium.org>
2018-08-09 21:13:16 +00:00
Herb Derby
9f491487df Remove RunPaint
Change-Id: I3742cbf3b636f10bb2006e0c86390661deb9f9b8
Reviewed-on: https://skia-review.googlesource.com/146164
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2018-08-09 20:58:10 +00:00
Brian Osman
2d010b66a6 Remove old sRGB config support from backend render target tool utilities
Bug: skia:
Change-Id: Ie88c16ddb2b072d8bdd7efc3acabc1d9ad89012f
Reviewed-on: https://skia-review.googlesource.com/146526
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2018-08-09 15:27:24 +00:00
Timothy Liang
35f9637a78 Revert "implemented GrMtlSampler for metal gpu backend"
This reverts commit 93fa10fbbc.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> implemented GrMtlSampler for metal gpu backend
> 
> Bug: skia:
> Change-Id: I936e5510e5ee146c0fc6bdbc0d5f5352359fbe7d
> Reviewed-on: https://skia-review.googlesource.com/145893
> Commit-Queue: Timothy Liang <timliang@google.com>
> Reviewed-by: Greg Daniel <egdaniel@google.com>

TBR=egdaniel@google.com,timliang@google.com

Change-Id: I4184890610e3147abc63b7d9bdfa8ec8120a11ef
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/146580
Reviewed-by: Timothy Liang <timliang@google.com>
Commit-Queue: Timothy Liang <timliang@google.com>
2018-08-09 15:18:08 +00:00
Herb Derby
919a784423 Remove use of RunPaint from regenerateGlyphRunList
Change uses of RunPaint and Paint to uses of SkPaint and a GrColor.

Change-Id: I44d4c41a53e570f316e10dee26754c21d9593de0
Reviewed-on: https://skia-review.googlesource.com/145962
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2018-08-09 14:43:02 +00:00
Brian Osman
eb7e5299be Remove CachedFormat remnants
Portions of this API will be updated again to support decode-to-dst, but
I want to clean up the old API first. I left a bunch of TODO breadcrumbs
for that work.

Change-Id: I25a29ccc14aa568e5ea84747d74244874afab9d9
Reviewed-on: https://skia-review.googlesource.com/146380
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2018-08-09 14:26:19 +00:00
Timothy Liang
93fa10fbbc implemented GrMtlSampler for metal gpu backend
Bug: skia:
Change-Id: I936e5510e5ee146c0fc6bdbc0d5f5352359fbe7d
Reviewed-on: https://skia-review.googlesource.com/145893
Commit-Queue: Timothy Liang <timliang@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2018-08-09 14:00:12 +00:00
Herb Derby
97879cbbd0 Performance: Move GPU code to GlyphRun and inline - v3
Move the GPU glyph drawing code into the glyph run drawing translation
unit. Inline the per glyph/path functions. This results in about 15%
speedup.

There was a compile error where a static function was used
in a template. This caused some compilers to freak.

Change-Id: I9619e538875edd989f129450dc9fc12ba7be9560
Reviewed-on: https://skia-review.googlesource.com/146340
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2018-08-08 23:49:20 +00:00
Mike Reed
b547579d00 switch SkTDArray from push to push_back
Bug: skia:
Change-Id: I5d7252cf67a201612813597047f1ea3584c57854
Reviewed-on: https://skia-review.googlesource.com/146386
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2018-08-08 21:13:57 +00:00
Timothy Liang
4e67984bec made GrMtlBuffer compatible with iOS
also fixed the fact that we were actually creating managed buffers at times.

Bug: skia:
Change-Id: I7ffe12b5decc8bceee30d671e1ab3cc30f7fad99
Reviewed-on: https://skia-review.googlesource.com/146170
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2018-08-08 19:28:44 +00:00
Timothy Liang
44636e9ab5 created GrMtlPipelineStateDataManager for metal gpu backend
Bug: skia:
Change-Id: I630b1fc2e3a4195b8df8b04a02be8fc95bb9c4fe
Reviewed-on: https://skia-review.googlesource.com/145329
Commit-Queue: Timothy Liang <timliang@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2018-08-08 18:51:58 +00:00
Herb Derby
44a017efa3 Revert "Performance: Move GPU code to GlyphRun and inline - v2"
This reverts commit c7ef517875.

Reason for revert: GCC clang differences

Original change's description:
> Performance: Move GPU code to GlyphRun and inline - v2
> 
> Move the GPU glyph drawing code into the glyph run drawing translation
> unit. Inline the per glyph/path functions. This results in about 15%
> speedup.i
> 
> There was a compile error where a static function was used
> in a template. This caused some compilers to freak.
> 
> Change-Id: I4dbcea5d4a7ef97f38c95772076736d6ec92c535
> Reviewed-on: https://skia-review.googlesource.com/146169
> Reviewed-by: Herb Derby <herb@google.com>
> Commit-Queue: Herb Derby <herb@google.com>

TBR=mtklein@google.com,herb@google.com

Change-Id: I785759e86ffaad76937c9aaa60b19abbbce226c2
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/146241
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2018-08-08 17:59:47 +00:00
Brian Salomon
d1b8a166db Add ability to specify different GP textures for each mesh in a draw.
Uses GrPipeline::DynamicStateArrays to allow per-mesh GP textures when
drawing an array of GrMeshes.

Uses this along with op-chaining to make drawing multiple TextureOps
with different textures faster.

Change-Id: Iec4da1b72a13d0e0c94c8a8568fe4221c539dfcf
Reviewed-on: https://skia-review.googlesource.com/145960
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2018-08-08 17:48:53 +00:00
Herb Derby
c7ef517875 Performance: Move GPU code to GlyphRun and inline - v2
Move the GPU glyph drawing code into the glyph run drawing translation
unit. Inline the per glyph/path functions. This results in about 15%
speedup.i

There was a compile error where a static function was used
in a template. This caused some compilers to freak.

Change-Id: I4dbcea5d4a7ef97f38c95772076736d6ec92c535
Reviewed-on: https://skia-review.googlesource.com/146169
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2018-08-08 17:41:54 +00:00
Robert Phillips
df25e3af32 Add fast path for tail insertion in GrResourceAllocator::IntervalList
Change-Id: I8953036d61b4ea4989c8722f536db9cd520a1e24
Reviewed-on: https://skia-review.googlesource.com/146167
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2018-08-08 17:18:57 +00:00
Brian Salomon
d25f5bcc18 Allow GrOps to chain themselves together instead of merging.
This allows GrOp subclasses to chain themselves together in linked
lists. The GrOp head instance is able to iterate over the ops in
the chain. The head op of the list draws the contents of all the
chained ops. GrRenderTargetOpList is updated to use this chaining
and to skip non-head ops when preparing/executing ops.

With this change no op uses the new chaining facility. That will come
in subsequent changes.

Change-Id: I7fe99252ad7e23a9ea80c9ed1fc4d060700da2e0
Reviewed-on: https://skia-review.googlesource.com/145899
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2018-08-08 17:02:47 +00:00
Robert Phillips
c296068f11 Revert "Performance: Move GPU code to GlyphRun and inline"
This reverts commit 0c5b0b1dd6.

Reason for revert: compilation woes
Original change's description:
> Performance: Move GPU code to GlyphRun and inline
> 
> Move the GPU glyph drawing code into the glyph run drawing translation
> unit. Inline the per glyph/path functions. This results in about 15%
> speedup.
> 
> Change-Id: Iee98140d668bb3cbcb77dd5a1fb2f83778f79d12
> Reviewed-on: https://skia-review.googlesource.com/145889
> Commit-Queue: Herb Derby <herb@google.com>
> Reviewed-by: Mike Klein <mtklein@google.com>

TBR=mtklein@google.com,herb@google.com

Change-Id: I517a7ea4105e8cee0abfb2b1c1a53d630587859d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/146240
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2018-08-08 16:21:44 +00:00
Timothy Liang
057c39025a attached uniform and varying handlers to GrMtlPipelineStateBuilder
Bug: skia:
Change-Id: I4e8d09052153fa10bf887f07b70abe37d0c7e884
Reviewed-on: https://skia-review.googlesource.com/145159
Commit-Queue: Timothy Liang <timliang@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2018-08-08 15:58:01 +00:00
Mike Reed
5edcd31f2c migrating SkTDArray towards std::vector api
fix for https://skia-review.googlesource.com/c/skia/+/146140

Change from original was to include <initializer_list>

Bug: skia:
Change-Id: Ie36426fcf7ce778a95e2b656ce80a9a394a8307c
Reviewed-on: https://skia-review.googlesource.com/146160
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2018-08-08 15:51:44 +00:00
Herb Derby
0c5b0b1dd6 Performance: Move GPU code to GlyphRun and inline
Move the GPU glyph drawing code into the glyph run drawing translation
unit. Inline the per glyph/path functions. This results in about 15%
speedup.

Change-Id: Iee98140d668bb3cbcb77dd5a1fb2f83778f79d12
Reviewed-on: https://skia-review.googlesource.com/145889
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2018-08-08 15:45:21 +00:00
Mike Reed
f9ecb4e67e Revert "migrating SkTDArray towards std::vector api"
This reverts commit 79884be809.

Reason for revert: broke flutter build -- initializer_list?

Original change's description:
> migrating SkTDArray towards std::vector api
> 
> push -> push_back
> add some aliases to match std::vector: count, reserve, ...
> 
> Bug: skia:
> Change-Id: I1921c31d0d6e5ed3d622a0def6054c697be2d02f
> Reviewed-on: https://skia-review.googlesource.com/145884
> Reviewed-by: Mike Klein <mtklein@google.com>
> Reviewed-by: Florin Malita <fmalita@chromium.org>
> Commit-Queue: Mike Reed <reed@google.com>

TBR=mtklein@google.com,fmalita@chromium.org,reed@google.com

Change-Id: Ib6132b725aaed7c01287e3e8c2b5a14da3d3d7e9
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/146140
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2018-08-08 15:14:37 +00:00
Mike Reed
79884be809 migrating SkTDArray towards std::vector api
push -> push_back
add some aliases to match std::vector: count, reserve, ...

Bug: skia:
Change-Id: I1921c31d0d6e5ed3d622a0def6054c697be2d02f
Reviewed-on: https://skia-review.googlesource.com/145884
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
2018-08-08 14:43:28 +00:00
Greg Daniel
313c69568c Add support for Advanced blend extension to vulkan.
Currently we only support coherent advanced blends

Bug: skia:
Change-Id: I3d0d7d19313dc55aed57c79585c0ee870f6981a7
Reviewed-on: https://skia-review.googlesource.com/145888
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2018-08-08 14:04:23 +00:00
Greg Daniel
a0651acaf2 Update vulkan features (again) to support extension features.
We need to handle all the possible ways a client is allowed to initialize
features on Vulkan.

Bug: skia:
Change-Id: I98b1dee2efa2c22c26ce093c590c7ccd0b626969
Reviewed-on: https://skia-review.googlesource.com/145530
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2018-08-08 13:48:38 +00:00
Herb Derby
0f40756f86 Remove unused TextPathIter
Change-Id: I6f5ff3d73ce68c351a019ca467b0eebc7054921c
Reviewed-on: https://skia-review.googlesource.com/145887
Commit-Queue: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2018-08-08 00:38:02 +00:00
Herb Derby
ae64e49812 Simplify blob's appendGlyph interface
Change-Id: I62fcaef94570982d46e678b8e128b02e2514a96a
Reviewed-on: https://skia-review.googlesource.com/145528
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2018-08-07 14:56:48 +00:00
Brian Salomon
7eae3e04e3 Reland "Move GrGeometryProcessor's textures out of classes and into"
This reverts commit fdf05f4ff4.

Reason for revert: Android fixed after removing multitexture support from TextureOp.

Original change's description:
> Revert "Move GrGeometryProcessor's textures out of classes and into"
> 
> This reverts commit af87483873.
> 
> Revert "GrGeometryProcessor derives from GrNonAtomicRef not GrProgramElement."
> 
> This reverts commit 607be37e3d.
> 
> Revert "Store GrMeshDrawOps' meshes in GrOpFlushState's arena."
> 
> This reverts commit b948572c78.
> 
> Revert "Remove multitexturing support from GrTextureOp."
> 
> This reverts commit 986f64c601.
> 
> Revert "Make result of GrOp::combineIfPossible be an enum."
> 
> This reverts commit 641ac7daa8.
> 
> Bug: b/112244393
> Change-Id: I579491a3f2f2f2093f1e2a6141fa1e4cc7b760a4
> Reviewed-on: https://skia-review.googlesource.com/145646
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>

TBR=bsalomon@google.com

Change-Id: I1d41c2ecf7862e31fb025a7a00bb07bae9d83a47
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: b/112244393
Reviewed-on: https://skia-review.googlesource.com/145780
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-08-07 14:02:49 +00:00
Robert Phillips
e6d0618f67 Add list of dependents to GrOpList class
This is pulled out of: https://skia-review.googlesource.com/c/skia/+/143113 (Reduce arbitrary opList splitting when sorting (take 3)) and is necessary for incremental tological sorting of opLists.

Change-Id: I080cee2c54f5a61dceea67037242f6c6b3e01b8d
Reviewed-on: https://skia-review.googlesource.com/145641
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2018-08-07 12:27:17 +00:00
Brian Salomon
fdf05f4ff4 Revert "Move GrGeometryProcessor's textures out of classes and into"
This reverts commit af87483873.

Revert "GrGeometryProcessor derives from GrNonAtomicRef not GrProgramElement."

This reverts commit 607be37e3d.

Revert "Store GrMeshDrawOps' meshes in GrOpFlushState's arena."

This reverts commit b948572c78.

Revert "Remove multitexturing support from GrTextureOp."

This reverts commit 986f64c601.

Revert "Make result of GrOp::combineIfPossible be an enum."

This reverts commit 641ac7daa8.

Bug: b/112244393
Change-Id: I579491a3f2f2f2093f1e2a6141fa1e4cc7b760a4
Reviewed-on: https://skia-review.googlesource.com/145646
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-08-06 22:27:48 +00:00
Herb Derby
82c11e024a Remove posText system from GrTextContext
Remove the drawPosText code stack, and all supporting code.

Change-Id: Ie6ee64d012d390911faeb3c486d66cac40497744
Reviewed-on: https://skia-review.googlesource.com/145533
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2018-08-06 21:24:31 +00:00
Brian Salomon
641ac7daa8 Make result of GrOp::combineIfPossible be an enum.
This is to prepare for a third value that requests that ops be linked
together so that the first op may do the work for multiple linked ops
without actually merging the GrOp objects.

Change-Id: Ib6e012a89be5edd054aee69d8475bea612331852
Reviewed-on: https://skia-review.googlesource.com/145522
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: Brian Salomon <bsalomon@google.com>
2018-08-06 20:29:47 +00:00
Brian Salomon
986f64c601 Remove multitexturing support from GrTextureOp.
This turned out to be an optimization mostly for draws with small device
space areas. Moreover, to be an optimization rather than deoptimization
requires complicated per-GPU tuning where even different devices within
the same architecture require different tuning and tuning is different
between GL and VK.

We've decided to go another direction where we *don't* coalesce draws
but rather make it possible to switch textures quickly from within an
op. This should be a GPU-independent optimization that is also
independent of device space area covered.

Replaces the multitexturing benchmarks with a pair of benchmarks.

composting_images* simulates a layered tile-based compositor.

image_cycle draws tiny images N times each such that they can be
batched. This is to catch a particular possible regression in a
planned change to GrTextureOp where it will use "dynamic state" to
batch across textures. We want to catch a slowdown that might result
from putting draws that use the same texture into the same op but no
longer batching the actual GL level draws and instead using the dynamic
state to "switch" textures between draws.

Change-Id: Ib1cc437525b0b0d56969c30dcb66bb1effb42dc5
Reviewed-on: https://skia-review.googlesource.com/145423
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2018-08-06 19:59:01 +00:00
Timothy Liang
512875a758 changed SkASSERT -> SkAssertResult in GrMtlPipelineStateBuilder.mm
Bug: skia:
Change-Id: I3f9871cbf602c62e8d0af88a5f4f734262562bc4
Reviewed-on: https://skia-review.googlesource.com/145526
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Timothy Liang <timliang@google.com>
2018-08-06 19:22:46 +00:00
Herb Derby
4a823960e1 Remove fPath and fTooLargeForAtlas from GrGlyph
Change-Id: I0e6279d13850ade877a232644ecbc09c4d3e5462
Reviewed-on: https://skia-review.googlesource.com/145260
Commit-Queue: Herb Derby <herb@google.com>
Auto-Submit: Herb Derby <herb@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2018-08-06 18:47:52 +00:00
Herb Derby
9a52a39468 Move path fallback logic into drawer
Change-Id: I6960b775f92b1013e0a826ac6aa1f8464ebf99f8
Reviewed-on: https://skia-review.googlesource.com/145000
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2018-08-06 18:26:18 +00:00
Timothy Liang
7ac582e4dc implemented the pipeline state builder for metal gpu backend
Bug: skia:
Change-Id: I9fc23de2e55ae3386aa8c0b8cdf540da63f19661
Reviewed-on: https://skia-review.googlesource.com/145156
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Timothy Liang <timliang@google.com>
2018-08-06 17:46:48 +00:00
Brian Salomon
b948572c78 Store GrMeshDrawOps' meshes in GrOpFlushState's arena.
Remove late draw consolidation in GrOpFlushState. Rarely did anything
and doesn't work with new allocation strategy. Ops can use GrMesh arrays
to acheive the same thing. (Each Op that cared to would have to implement
but it isn't applicable to most Ops).

Modify GrMeshDrawOp::Target::draw() to take array of meshes, with single
mesh as a special case.

Change-Id: I552677de47b9ffd2fcaf55af85f70f290e5aa9c7
Reviewed-on: https://skia-review.googlesource.com/145426
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-08-06 14:38:22 +00:00
Greg Daniel
c0b03d8dfc Start adding support for some base extensions which others build on.
Many of the other extensions in Vulkan rely on these some just want to
get these landed so we can start building on top of them.

Bug: skia:
Change-Id: Icef82c169cd50ff51b97fe065923531ef2940319
Reviewed-on: https://skia-review.googlesource.com/145362
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2018-08-06 14:26:15 +00:00
Ethan Nicholas
12fb9cfeee added SkSL saturate() function
Bug: skia:8220
Change-Id: Ib2e58ac77345a2aa53302c6c1484d52533556f93
Reviewed-on: https://skia-review.googlesource.com/145371
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2018-08-06 13:49:47 +00:00
Herb Derby
e42dc2dbd9 Hoist path check into regenerateGlyphRunList.
Now, regenerateGlyphRunList is making all the rendering
position, and cache choice decisions. Mostly.

Change-Id: Ib946e2ef2f422c915b324ac93459c65bf559f608
Reviewed-on: https://skia-review.googlesource.com/144905
Auto-Submit: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2018-08-03 21:37:26 +00:00
Brian Salomon
607be37e3d GrGeometryProcessor derives from GrNonAtomicRef not GrProgramElement.
It probably doesn't need to be ref counted at all and should be stored
in GrOpFlushState's arena but that's a larger change for another day.

Change-Id: I5f593fb426b8e7794f2ca81194f5a8d9e0f0a072
Reviewed-on: https://skia-review.googlesource.com/145332
Auto-Submit: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2018-08-03 20:51:48 +00:00
Brian Salomon
af87483873 Move GrGeometryProcessor's textures out of classes and into
GrPipeline::FixedDynamicState.

This will allow specification of different textures for different
GrMeshes using GrPipeline::DynamicStateArrays in a future change.

Change-Id: I4a7897df33a84e4072151149e5d586dca074393f
Reviewed-on: https://skia-review.googlesource.com/145264
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2018-08-03 17:24:05 +00:00
Robert Phillips
057ad70599 Update GrTextureStripAtlas for DDLs (take 2)
Change-Id: I4a3f71ffe4a14785e7befddc378929cf4dcf7d8e
Reviewed-on: https://skia-review.googlesource.com/145150
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2018-08-03 17:11:24 +00:00
Timothy Liang
9047c066be validate GrMtlBuffer after forcing it to be static
Bug: skia:
Change-Id: Iaa9ac00f8533414bb81ab87eefbc2b035bcf1a53
Reviewed-on: https://skia-review.googlesource.com/145328
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Timothy Liang <timliang@google.com>
2018-08-03 14:55:46 +00:00
Brian Osman
9a24fee9a9 Avoid coverage bleed for AA arcs with tiny sweep angles
Because we outset the planes by 1/2 pixel, the intersection of those
planes could extend well past the center of the circle. To fix this (and
cut down on fill-rate), do a geometric clip of the vertices against the
perpendicular diameter of the circle (while still leaving a half-pixel
for the coverage to fade out).

Bug: b/112018278
Change-Id: Icfb38ecfe57aad823c49fc4cadd0538a37dc1b7b
Reviewed-on: https://skia-review.googlesource.com/145326
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2018-08-03 14:18:58 +00:00
Jim Van Verth
1400d38e08 Revert "Hoist path check"
This reverts commit 6de0fca928.

Reason for revert: Busted some GMs, e.g., largeglyphblur and mixedtextblobs.

Original change's description:
> Hoist path check
> 
> Hoist path check up one level in on the way to
> moving it to regenerateGlyphRunList.
> 
> Change-Id: I77d24c1d80daf72ddd3e9f09dd264c1e9d504573
> Reviewed-on: https://skia-review.googlesource.com/144902
> Commit-Queue: Herb Derby <herb@google.com>
> Reviewed-by: Jim Van Verth <jvanverth@google.com>
> Auto-Submit: Herb Derby <herb@google.com>

TBR=jvanverth@google.com,herb@google.com

Change-Id: Idf1ea5818f6a97989c520b93804627af385b5045
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/145327
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2018-08-03 13:49:40 +00:00
Brian Salomon
f51368230a Make fixed dynamic states be conditionally allocated
Change-Id: Id6e93b7a708ccab96d131f0035691b98932697dc
Reviewed-on: https://skia-review.googlesource.com/145261
Commit-Queue: Brian Salomon <bsalomon@google.com>
Auto-Submit: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2018-08-03 13:33:56 +00:00
Herb Derby
6de0fca928 Hoist path check
Hoist path check up one level in on the way to
moving it to regenerateGlyphRunList.

Change-Id: I77d24c1d80daf72ddd3e9f09dd264c1e9d504573
Reviewed-on: https://skia-review.googlesource.com/144902
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Auto-Submit: Herb Derby <herb@google.com>
2018-08-02 19:57:20 +00:00