Currently just uses 2x2 configuration but could be adapted easily
to support other sample position layouts.
Change-Id: If857bac5d1fab1b6ee04694e445d0f19431646f1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292079
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Parts of third_party need the C++ API so hide it from Skia users as
needed to prevent re-introduction.
This also avoids the ICU version renaming / name mangling when building
our own test version of ICU. This makes life in an editor and debugger
much easier.
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292854
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Change-Id: Id636fbf9e750fe72a4ace8a59fb9acac839a07c4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292967
Reviewed-by: Ben Wagner <bungeman@google.com>
The PDF spec requires that tagged PDFs have a unique
alphanumeric ID for each structure element node, and an
IDTree structure that maps IDs to an indirect reference
to the PDF node containing that element.
This patch adds support for the IDTree, and also fixes
the IDs we output for each node to be strings (not names)
and makes them zero-padded so that we can easily output
the IDs in sorted lexicographic order by making that match
numeric order.
PDFs output by Skia now pass CommonLook's
Integrity Validator; these ID issues were flagged
as errors previously.
Bug: chromium:607777
Bug: skia:8148
Change-Id: I9b367fe90aa018c21f34abd186e83c53cdde34cc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/291689
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org>
and rotations both have an effect on cache usage. Snapping translations to integer coordinations
reduces cache usage. Opacity of path painting does not have an effect on cache usage.
Bug: skia:10272
Change-Id: Id5d5f08cb43645c9ec44b9d8e5e96643041727c3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292280
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Change-Id: Id1776cfa41965caf89a9a741849df3f58270994e
Bug: skia:9935
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292968
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Chrome uses these and they don't guard their code so we have to leave them
available.
Change-Id: I3bb1d0830a42e18adcf682062ec9fdf5594e7098
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292961
Commit-Queue: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Auto-Submit: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
This reverts commit 5ef0d2f6c0.
Reason for revert: Sharing a build with flutter is crazy pants.
Original change's description:
> Hide ICU C++ API from Skia users.
>
> Parts of third_party need the C++ API so hide it from Skia users as
> needed to prevent re-introduction.
>
> This also avoids the ICU version renaming / name mangling when building
> our own test version of ICU. This makes life in an editor and debugger
> much easier.
>
> Change-Id: I8fb1903e2b31e9dd04efa22173a03115d629c232
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292854
> Reviewed-by: Julia Lavrova <jlavrova@google.com>
> Commit-Queue: Ben Wagner <bungeman@google.com>
TBR=bungeman@google.com,reed@google.com,jlavrova@google.com
Change-Id: If238225b20a6b73064e3b16c5e0bdc89760e522d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292966
Reviewed-by: Ben Wagner <bungeman@google.com>
Calling the 'AndOptions' version with nullptr for the options on 10.13
is reported to crash. Since the options are unused, use the version of
the call without them.
Bug: skia:10282
Change-Id: I6674b0230f403744c9dd471245eeb3a78c2a4417
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292727
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
In preparation to make subclasses of SubRun, make the
SubRunType private to SubRun.
Change-Id: I7d5e3cb510a643f162acefda46e65e7c0df0c7ae
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292852
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Parts of third_party need the C++ API so hide it from Skia users as
needed to prevent re-introduction.
This also avoids the ICU version renaming / name mangling when building
our own test version of ICU. This makes life in an editor and debugger
much easier.
Change-Id: I8fb1903e2b31e9dd04efa22173a03115d629c232
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292854
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
This is will be the main struct used to synchronize changes of certain
texture/image between clients and Skia. With this change we
implement support for the Vulkan shared state as POC.
Bug: skia:10254
Change-Id: I10543357635c347838b193874e4da4496a0dcf06
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292311
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Change-Id: I742d684a6375f48f4612c9db7d12693b1813d778
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292850
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Auto-Submit: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Weston Tracey <westont@google.com>
Dawn: support readbacks in caps only from Texture-based surfaces.
Change-Id: I3681b9418f592d9c511931cb422f0f8fb113ff73
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/291973
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
While trying to debug matrix sampling, I wanted to make these
easier to work with.
Change-Id: I24889277e7bf0dbdabf012028248c32641c98232
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292838
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
OOP-R, on the gpu thread, creates the DDL, pre-compiles its shaders, draws it, flushes and then deletes the DDL. This process triggered a bug (cf. https://skia-review.googlesource.com/c/skia/+/292818 and crbug.com/1056730).
Prior to this CL all the programs were compiled and only at the end was any work flushed - thus it was likely that the bound program would be reset to the correct value when rendering.
With this CL, the addition of the flush right before the DDL deletion, makes it more likely that the wrong program will be bound when rendering begins.
Change-Id: I60479bd429e132d8652bbffde6c8b71094be6225
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292257
Reviewed-by: Adlai Holler <adlai@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Fix a bug with paragraph text direction that an incorrect unit test wasn't detecting.
Change-Id: I73418ea8a90da097078d93ddf8692a55488f672f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292366
Commit-Queue: Nathaniel Nifong <nifong@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Ecapsulate SubRunType better by moving hasW
to subRun.
* Split out implementation of firstSubRun()
Change-Id: Ibb037d495a921c99f318596992187b1b3c1e0725
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292842
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
This error "worked" in normal rendering since Ganesh would always immediately use the same program after it was compiled. This is no longer true with pre-compilation of a DDL's programs.
Bug: 1056730
Change-Id: I9abbb8ecbd0612dfb828e6cc0888e9db09850048
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292818
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
This reverts commit 074414fed5.
Reason for revert: updated to guard against nullptr before calling
quickContains(rrect).
Original change's description:
> Revert "GrClips provided as pointers to GrRTC"
>
> This reverts commit 226b689471.
>
> Reason for revert: Breaks Android roller
>
> Original change's description:
> > GrClips provided as pointers to GrRTC
> >
> > A null clip represents no high-level clipping is necessary (the implicit
> > clip to the render target's logical dimensions is fine).
> >
> > This also removes GrNoClip and GrFixedClip::Disabled() since they are
> > replaced with just nullptr.
> >
> > By allowing nullptr to represent no intended clipping, it makes it easier
> > to require GrClip and GrAppliedClip objects to know about the dimensions
> > of the device. If we required a non-null clip object to represent no
> > clipping, we'd have to have an instance for each device based on its
> > size and that just became cumbersome.
> >
> > Bug: skia:10205
> > Change-Id: Ie30cc71820b92d99356d393a4c98c8677082e761
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290539
> > Commit-Queue: Michael Ludwig <michaelludwig@google.com>
> > Reviewed-by: Brian Salomon <bsalomon@google.com>
>
> TBR=bsalomon@google.com,csmartdalton@google.com,michaelludwig@google.com
>
> Change-Id: I42c4828bcf016ee3d30d5c20b771be96e125817b
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: skia:10205
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292856
> Reviewed-by: Weston Tracey <westont@google.com>
> Commit-Queue: Weston Tracey <westont@google.com>
TBR=bsalomon@google.com,csmartdalton@google.com,michaelludwig@google.com,westont@google.com
# Not skipping CQ checks because this is a reland.
Bug: skia:10205
Change-Id: I5715a4de3b7c8847b73020dc4937d3816d879803
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292876
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Still some more work to do to remove internal usage.
Bug: skia:9832
Change-Id: Id0403d92debc26af2002630a4dfcf960c9343260
Docs-Preview: https://skia.org/?cl=292719
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292719
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
No longer used, but managed to avoid previous capture by being included
in quotes instead of brackets. Do some iwyu while at it.
Change-Id: I838474132995ca130c93f94beaab606828504309
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292733
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Change-Id: Ic6d26b1e3126298ac0de3e88468e3598b3de3d49
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292836
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
These numbers were Display P3.
Bug: skia:9792
Change-Id: I1aded49427aa0fa4bcd8a0f563b36d2180383900
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292822
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
This reverts commit 226b689471.
Reason for revert: Breaks Android roller
Original change's description:
> GrClips provided as pointers to GrRTC
>
> A null clip represents no high-level clipping is necessary (the implicit
> clip to the render target's logical dimensions is fine).
>
> This also removes GrNoClip and GrFixedClip::Disabled() since they are
> replaced with just nullptr.
>
> By allowing nullptr to represent no intended clipping, it makes it easier
> to require GrClip and GrAppliedClip objects to know about the dimensions
> of the device. If we required a non-null clip object to represent no
> clipping, we'd have to have an instance for each device based on its
> size and that just became cumbersome.
>
> Bug: skia:10205
> Change-Id: Ie30cc71820b92d99356d393a4c98c8677082e761
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290539
> Commit-Queue: Michael Ludwig <michaelludwig@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>
TBR=bsalomon@google.com,csmartdalton@google.com,michaelludwig@google.com
Change-Id: I42c4828bcf016ee3d30d5c20b771be96e125817b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:10205
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292856
Reviewed-by: Weston Tracey <westont@google.com>
Commit-Queue: Weston Tracey <westont@google.com>
6a184fe947..33004b09f1
2020-05-28 ynovikov@chromium.org Roll VVL and Headers to v1.2.141
2020-05-28 cclao@google.com Add egl::ShareGroup class to abstract the share context group
2020-05-28 flibitijibibo@gmail.com GGP: Check and enable VK_GGP_frame_token
2020-05-28 jonahr@google.com Port disable_timestamp_queries GPU workaround to ANGLE
2020-05-28 ianelliott@google.com Vulkan: Rotate gl_PointCoord for Android pre-rotation
2020-05-28 geofflang@google.com Fix non-existent required dependency
2020-05-28 angle-autoroll@skia-public.iam.gserviceaccount.com Roll glslang from 2b0eafb1de5b to e00d27c6d65b (2 revisions)
2020-05-28 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SPIRV-Tools from d3d89bb90cbd to 8dfdbeff84f3 (4 revisions)
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 westont@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/+doc/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: chromium:1075876,chromium:811661
Tbr: westont@google.com
Test: Test: TH presubmit
Change-Id: If4e5382f26fc610de4588bf187052c9f79368d1d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292780
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
The code which sets up the Globals struct is separate from the code
which populates the struct. Occasionally, these two blocks of code do
not emit the same items in the same order. (e.g., global variables
without associated values do not get added to fInitNonConstGlobalVars,
so they are missing entirely from the globalStruct setup.)
Previously, globalStruct was initialized via this syntax:
Globals globalStruct{&a, b, c, d};
Which meant that any mismatch between the above two sections of code
would initialize the globals incorrectly.
Initialization now uses the following form, which should be forgiving
of any gaps or reordering, but will hopefully generate the same code
for a tightly-packed structure:
Globals globalStruct;
globalStruct.a = &a;
globalStruct.b = b;
globalStruct.c = c;
globalStruct.d = d;
This fixes the DM 'vertices_data_lerp' in Metal.
Change-Id: I793e3893a1a0f7db20de1006f7a9cb2ecca22d6b
Bug: skia:10287
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292729
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
This is a reland of daa573eb91
Original change's description:
> Improve matrix construction abilities in Metal codegen.
>
> GLSL (and thus SkSL) is flexible about the input parameters to a matrix
> constructor. You can mix vectors and scalars freely, and it will
> populate them into your matrix as if it was a flat list of scalars.
>
> Metal does not natively support this, and requires the proper number of
> floatNs to be passed in. However, the Metal code generator will now emit
> constructor helper functions that will fix this up automatically.
>
> Additionally, this CL simplifies the Metal codegen for single-scalar
> matrix construction. This should create a matrix with the passed-in
> scalar running along the matrix diagonal. The Metal codegen previously
> emitted a helper function to do this work on our behalf. However,
> that's not necessary; Metal already contains a single-argument matrix
> constructor that will do this work automatically for us.
>
> Change-Id: I76901bfe167502797aa4cb98d0e8986d9ebc51e5
> Bug: skia:10280
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292477
> Auto-Submit: John Stiles <johnstiles@google.com>
> Commit-Queue: Brian Osman <brianosman@google.com>
> Reviewed-by: Brian Osman <brianosman@google.com>
> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Bug: skia:10280
Change-Id: If5591392bb96e1cfb643d4e3c19a0ee4affec58d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292689
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
This is mostly about consolidating and removing use of
icu::UnicodeString. It was used mostly as an intermediary for
conversion, and the new conversions should make one fewer copy of the
data.
Change-Id: I1d0e5f0dc21c47ed7c80f456b9129c4c9a36b09a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292718
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
This is a simple safeguard to prevent against code that compiles
properly in full Skia builds, but fails in a SkSL standalone build.
A few SkASSERT(false) calls have been replaced with
SkDEBUGFAIL("message") in order to exercise the new call.
This CL should unblock
https://skia-review.googlesource.com/c/skia/+/292689
Change-Id: I83b0b9d28bd74c5cb1869510b0fb34792c6b2385
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292693
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Also enables ccpr and makes flags parsing more robust.
Change-Id: Ia98467403de87423a63167681b2ee635b0fa593a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292690
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
If ever CanvasKit accepts an array as a parameter, if the array
provided was produced by Malloc, CanvasKit will use the pointer
of that array and not free it after.
Change-Id: I4806a48e5e030edd787944f652984ea3516b3022
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292561
Reviewed-by: Nathaniel Nifong <nifong@google.com>
We can compute these directly, and avoid a whole extra matrix uniform
and multiply to get the same effect.
Change-Id: I25146932fd577f64567abee8df2c001a830ef78f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292574
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
A null clip represents no high-level clipping is necessary (the implicit
clip to the render target's logical dimensions is fine).
This also removes GrNoClip and GrFixedClip::Disabled() since they are
replaced with just nullptr.
By allowing nullptr to represent no intended clipping, it makes it easier
to require GrClip and GrAppliedClip objects to know about the dimensions
of the device. If we required a non-null clip object to represent no
clipping, we'd have to have an instance for each device based on its
size and that just became cumbersome.
Bug: skia:10205
Change-Id: Ie30cc71820b92d99356d393a4c98c8677082e761
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290539
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Most of the lines here are the result of running iwyu to get the right
includes after removing all the offending includes. A few constants need
to be had from the C api instead of the C++ API to make this work. The
SkParagraphTest and SkParagraphImpl are still using C++ API with
icu::UnicodeString, which will be cleaned up later.
Change-Id: I0f7f630d55bc600eaa8700c8b48758ee6af2c3fb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292676
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>