* Creates a common class between GrVkPipelineStateDataManager and
GrD3DPipelineStateDataManager so they can share code (will do
for Metal as well in separate CL)
* Adds means for tracking and setting uniform data.
Change-Id: Ie0dc3a3d26f533201e316d255965a646bcecb842
Bug: skia:9935
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290636
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
As part of this, start introducing more consistent factories (matching classes like SkM44)
Change-Id: I453f1856c0427b008faaed9dbba5263e53a48ce4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290766
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Mike Reed <reed@google.com>
This reverts commit b65024b5f2.
Reason for revert: Shader compilation failures
Original change's description:
> SkSL function inlining
>
> This first pass adds "one size fits all" function inlining, without any
> allowances for simple functions that don't need all of this machinery
> in place. Followup CLs will simplify common cases by e.g. not storing
> arguments in variables if they're already variables and not wrapping
> the function body in a loop when it isn't necessary.
>
> Change-Id: I4fd8c1655ff48b9e4708bcca03a506df34ceadd9
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290127
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
TBR=bsalomon@google.com,brianosman@google.com,ethannicholas@google.com
Change-Id: Ia6e643e0dcb66a4f0c2a377b89117047bbc5d058
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290801
Reviewed-by: Robert Phillips <robertphillips@google.com>
Change-Id: Ia5fa3b7c61fb26abb9bcd2f21e1b9f01e77eb08e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290762
Commit-Queue: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Chrome has been rebaselined to use the 4x4 concat
Change-Id: I36830a61ac2f2f44e0125798e8a7f12d79d9cbcb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290442
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
This first pass adds "one size fits all" function inlining, without any
allowances for simple functions that don't need all of this machinery
in place. Followup CLs will simplify common cases by e.g. not storing
arguments in variables if they're already variables and not wrapping
the function body in a loop when it isn't necessary.
Change-Id: I4fd8c1655ff48b9e4708bcca03a506df34ceadd9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290127
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Because a destructor was declared the move constructor and assignment
were not implicitly declared or defined. Default everything to make it
obvious that Run may be copied or moved.
Change-Id: I862b392b12a15b9d44c58da4f73ddace7d5a1308
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290538
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Clarify and simplify ownership of the ellipsis.
Change-Id: I3f4567d2a16b51ecc6406d872019c4665c49fe50
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290536
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
In TextLine::iterateThroughSingleRunByStyles there is a parameter named
textRange and a local variable also named textRange. This shadowing is a
bit confusing both when reading the code and when debugging, so rename
the local to runStyleTextRange to better describe what it is for.
Change-Id: Iea2f668b6e854140d749efa5c595de6d851118db
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290496
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Change-Id: Iab1d7934248d8e0acc13311a8b5476471d4e9ebc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290758
Commit-Queue: Brian Salomon <bsalomon@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Auto-Submit: Brian Salomon <bsalomon@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
This should make triaging easier since it should be more obvious whether
red pixels or just (filtered) black/white checkerboard is acceptable.
And make that plainly obvious in the GM name.
Change-Id: Ie56dd518f43f01bf6d671eddffcf41c06a039f02
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290639
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
d34ab323f3..fabf74bda6
git log d34ab323f368..fabf74bda604 --date=short --first-parent --format='%ad %ae %s'
2020-05-19 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/glslang/src 08a05bc2b9d1..0ab78114a9e1 (5 commits)
2020-05-19 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/SwiftShader c9625f1660da..b6e8c3f0f483 (7 commits)
2020-05-19 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-loader/src aaba2f0ac575..3e390a159761 (1 commits)
2020-05-18 cclao@google.com Revert "Vulkan: Try to merge barriers if possible"
Created with:
gclient setdep -r third_party/externals/angle2@fabf74bda604
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/angle-skia-autoroll
Please CC lovisolo@google.com on the revert to ensure that a human
is aware of the problem.
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE
Bug: None
Tbr: lovisolo@google.com
Change-Id: Iff59335bc5f3913c7961591892849099918bd735
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290708
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
This reverts commit d19bb17782.
Reason for revert: windows build failure?
lld-link: error: undefined symbol: private: void __cdecl SkSemaphore::osSignal(int)
Original change's description:
> Cache hb_face.
>
> Creating an hb_face can be quite expensive, cache them.
>
> This implementation is similar to the super simple caching strategy used
> by libtxt. It uses a simple global LRU cache from SkFontID to hb_hbface
> of size 100.
>
> Change-Id: I364a4548699cece50073e829a065c0a303245873
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/289442
> Commit-Queue: Ben Wagner <bungeman@google.com>
> Reviewed-by: Mike Reed <reed@google.com>
TBR=bungeman@google.com,reed@google.com
Change-Id: I31967a638fb497f28ca3d3f26ef3692dddff004d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290718
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
The previous code would increase the rendered stroke width to 1px (in
screen-space) to ensure proper subpixel coverage when the dashed line to
render was very thin. However, the MSAA path relies on hardware MSAA for
subpixel coverage. The stroke width is now left as-is when MSAA is on.
Additionally, this CL includes some minor polish to coverage-related
code that I made while hunting for the root cause of the bug.
Bug: skia:10240
Change-Id: I28df59a4e1da3661778acc7766cc8f75b15bc915
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290643
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
The concept of "hairline" width is well understood by team members,
but was not actually documented anywhere in the code. Added a bit of
explanatory text to the doc comments.
Change-Id: I51c39e2e644b8353afbdb8bdda32263796d7e951
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290676
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Creating an hb_face can be quite expensive, cache them.
This implementation is similar to the super simple caching strategy used
by libtxt. It uses a simple global LRU cache from SkFontID to hb_hbface
of size 100.
Change-Id: I364a4548699cece50073e829a065c0a303245873
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/289442
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Fixes incorrect bleeding in bleed GM
Change-Id: I11337c068f531c59856ae5b5f6d9da765e2e5b0e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290196
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Change-Id: I86c9f983672e6edd616afe003ea9823da7890511
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290585
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Add glyphCount to return the number of glyphs and
grGlyph to return a grGlyph from fGlyphs.
Bug: skia:10251
Change-Id: I15f77a032b9eb9aa736ccd810900f2425fc4c059
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290296
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
It wasn't listed in gn so didn't show up in editors as a known file in
projects.
Change-Id: Ie01773489dd72f055f04785ca7f21b6bdef6a3f7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290541
Commit-Queue: Ben Wagner <bungeman@google.com>
Auto-Submit: Ben Wagner <bungeman@google.com>
Reviewed-by: Herb Derby <herb@google.com>
This is a reland of 56cde4923f
Original change's description:
> direct mask biased to (0,0)
>
> Create mask rectangles in device space.
> But, instead of offsetting to the drawing text blob origin
> offset to 0,0 to simplify mapping from source space to
> device space.
>
> Bug: skia:10251
>
> Change-Id: Ic637eb78879bcfae7e7944053d67d9eaef8490cc
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290133
> Commit-Queue: Herb Derby <herb@google.com>
> Reviewed-by: Robert Phillips <robertphillips@google.com>
Bug: skia:10251
Change-Id: I622ed5c3c16379b06989bf737e74a7752984c158
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290441
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
If moving from an SkTArray which owns its own memory, just steal it
instead of always making a copy.
Change-Id: Ic969437a39d23d878d752bbdee38aa5dd2472e21
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290125
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
This was another surprising (to me) inconsistency. Just because these
geometric primitives allow for explicit local coords, doesn't mean we
should require them (vs. all others that implicitly sample using local
position).
Change-Id: If3e7f6077bd15891b06cd2ffc969f1a649305d42
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290130
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
This reverts commit 56cde4923f.
Reason for revert: may be blocking Chrome roll
Original change's description:
> direct mask biased to (0,0)
>
> Create mask rectangles in device space.
> But, instead of offsetting to the drawing text blob origin
> offset to 0,0 to simplify mapping from source space to
> device space.
>
> Bug: skia:10251
>
> Change-Id: Ic637eb78879bcfae7e7944053d67d9eaef8490cc
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290133
> Commit-Queue: Herb Derby <herb@google.com>
> Reviewed-by: Robert Phillips <robertphillips@google.com>
TBR=herb@google.com,robertphillips@google.com
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: skia:10251
Change-Id: I54b078d3eb88f209ce2a857e5fcf763c4d577ac3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290439
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
11f9c56c03..d34ab323f3
git log 11f9c56c0347..d34ab323f368 --date=short --first-parent --format='%ad %ae %s'
2020-05-16 timvp@google.com Vulkan: Save linked ProgramExecutable data
2020-05-16 rafael.cintron@microsoft.com Resolve Bad Binary Link Failures
2020-05-15 jdarpinian@chromium.org Respect IOSurface stride
2020-05-15 jmadill@chromium.org Vulkan: Refactor and clean up XFB code.
2020-05-15 spang@chromium.org Vulkan: Remove unused onExternalLayoutChange declaration
2020-05-15 timvp@google.com Handle null ProgramExecutable in ValidateDrawInstancedANGLE()
2020-05-15 tobine@google.com Vulkan:Add trace marker in finishToSerial()
2020-05-15 geofflang@chromium.org Unset the ActiveTextureCache entry if the program does not reference it
2020-05-15 b.schade@samsung.com Vulkan: Implement EXT_texture_format_sRGB_override
2020-05-15 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/SwiftShader d748e1651af8..c9625f1660da (1 commits)
2020-05-15 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-validation-layers/src 73680f59c04a..7f2b55ced2ce (3 commits)
2020-05-15 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/glslang/src 4fa68edd6819..08a05bc2b9d1 (1 commits)
2020-05-15 timvp@google.com Vulkan: Pass Input/Output Varying lists during linking
Created with:
gclient setdep -r third_party/externals/angle2@d34ab323f368
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/angle-skia-autoroll
Please CC lovisolo@google.com on the revert to ensure that a human
is aware of the problem.
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE
Bug: None
Tbr: lovisolo@google.com
Change-Id: I3fb6c4079c8f34b9b236eefad06842a366700e86
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290403
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
This reverts commit 999257d870.
Reason for revert: Iter does not behave the same as RangeIter
Original change's description:
> Convert pathkit's usage of SkPath::Iter to SkPatPriv::RangeIter
>
> Change-Id: If940941a66c1fda508970a73d8433a2d2a292e1c
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/287894
> Reviewed-by: Kevin Lubick <kjlubick@google.com>
> Commit-Queue: Chris Dalton <csmartdalton@google.com>
TBR=kjlubick@google.com,csmartdalton@google.com
# Not skipping CQ checks because original CL landed > 1 day ago.
Change-Id: Id1028577631ab616a60e0be71e27b32d9a1255e1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290188
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Would be neat to support explicit mappings, but this is sufficient for
what I'm looking at now (allows passing custom tf + "strings" through
the existing shaping pipeline).
Change-Id: I62a8a0c90cc9f6bf3ede82932a8b6a2a933521c1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290197
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
Create mask rectangles in device space.
But, instead of offsetting to the drawing text blob origin
offset to 0,0 to simplify mapping from source space to
device space.
Bug: skia:10251
Change-Id: Ic637eb78879bcfae7e7944053d67d9eaef8490cc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290133
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
This is a reland of 5c66aa744a
Original change's description:
> Consolidate texture uploads in GrGLGpu.
>
> Remove unused GrMipMapsStatus out param
>
> All paths now unbind PBO before upload.
>
> Use the backend texture's target in GrGLGpu::onUpdateBackendTexture.
>
> Change-Id: I91ce483841c8f8b2cc8a2e1f1a45a186a66d2d5f
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/289576
> Commit-Queue: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Greg Daniel <egdaniel@google.com>
Change-Id: Ic5ecff8c7a2fb1c03c6ec451d73ade437c884e96
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290131
Auto-Submit: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
This is a reland of e5865f6f10
Original change's description:
> Revert "Revert "Fix tile modes in SkGpuBlurUtils.""
>
> This reverts commit 88d04cb51a.
>
> Change-Id: I3ca403bb9631a273b5cbe2304c6c3ff9dd01fa89
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/289625
> Reviewed-by: Michael Ludwig <michaelludwig@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>
Change-Id: I93a0c1f635487f47b6bd13082ea456f025eac700
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290121
Auto-Submit: Brian Salomon <bsalomon@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Minor issue... that lambda's gross.
Safety clamp x up to 0 in pow() to handle situations where we get
a very slightly x<0 rooted in float precision issues (see bug).
Added a note about converting this to an assert.
I'm still stewing on how to best make that possible.
Bug: skia:10210
Change-Id: I41d941f0556618e1d47e6eeffbde4cf8760c66a1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/287418
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Klein <mtklein@google.com>
When recording a DDL it is possible for a uniquely keyed resource to lose its uniqueKey in the direct context (and its proxyProvider) while the DDL's proxyProvider still has a proxy with a uniqueKey.
Bug: 1056730
Change-Id: I565b08a8eb280aea19fc3052c758e059392a4c12
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/289890
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>