When I adding the new kTransferCpuToGpu enum for vulkanmemory the
persistently mapped property was dropped for those buffers and this adds
this back.
Also we are now using the special DEVICE_LOCAL and HOST_VISIBLE memory
so disable the persistent mapping for those buffers (see deleted comment
and added comment in caps).
Change-Id: I9353b6da5da57b3c8ae1f93cc89c671174a86b84
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/371476
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Also deletes unnecessary header and deprecated types
associated with implementation.
Bug: skia:11230
Change-Id: Ibfd7dcf305febae794edfe777fc64efc0559909b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/368597
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
This reverts commit cc80a47566.
Reason for revert: IWYU cleanup broke less IWYU-clean Android,
frameworks/native/libs/renderengine/skia/filters/BlurFilter.cpp:180:17: error: variable has incomplete type 'SkRRect'
SkRRect roundedRect;
^
external/skia/include/core/SkCanvas.h:58:7: note: forward declaration of 'SkRRect'
class SkRRect;
Original change's description:
> Remove (unused) gpuType from SkRuntimeEffect::Uniform
>
> Also remove some unnecessary includes, then IWYU.
>
> Change-Id: I41e88f0e661c59e75cb26e28768801b811fe8ee8
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/371140
> Commit-Queue: Brian Osman <brianosman@google.com>
> Reviewed-by: John Stiles <johnstiles@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>
TBR=bsalomon@google.com,brianosman@google.com,johnstiles@google.com
Change-Id: Id655a6835ebffdb4f5f82474c287c09a69a737df
No-Tree-Checks: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/371941
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
This reverts commit 82a8130654.
Reason for revert: I believe this is blocking the Chrome roll
Original change's description:
> use a linked list for GrAtlasTextOp geometries
>
> Instead of using a GrTBlockList<Geometry> to hold the geometries
> in the op. Allocate them on the RecordTimeAllocator, and
> link them together.
>
> Change-Id: I32af5724e7abeca1ddb6d38b26afbff7919cbc76
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/341725
> Reviewed-by: Robert Phillips <robertphillips@google.com>
> Commit-Queue: Herb Derby <herb@google.com>
TBR=herb@google.com,robertphillips@google.com
Change-Id: I238f7e91e1b1131c46ad1097371855eda2dbf553
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/371956
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
This reverts commit af68258c2e.
Reason for revert: SkFilterQuality is not a scoped enum, so this defines `kMaxValue` without any scoping to Skia by naming convention or namespace, breaking compatibility with other systems that want to use that. (E.g. Android)
Original change's description:
> Add number ordering to SkFilterQuality
>
> As explained in the bug, I would like to add a histogram to study how
> users use the image smoothing quality in Chrome. In order to do that,
> we need to ensure that the enums are not reordered or changed, so I
> added kNone_SkFilterQuality = 0, etc. I also added kMaxValue for
> histogram to work.
>
> Bug: 1176091
> Change-Id: I3af3213f699016a525caad5b0b51e0cc7aab2c52
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/368157
> Commit-Queue: Mike Reed <reed@google.com>
> Auto-Submit: Yi Xu <yiyix@chromium.org>
> Reviewed-by: Mike Reed <reed@google.com>
TBR=reed@google.com,yiyix@chromium.org
Change-Id: Iec24ba3864af69e34f2721a72de1c0a271d328f6
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 1176091
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/371936
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Instead of using a GrTBlockList<Geometry> to hold the geometries
in the op. Allocate them on the RecordTimeAllocator, and
link them together.
Change-Id: I32af5724e7abeca1ddb6d38b26afbff7919cbc76
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/341725
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
The skia_winuwp config is removed and the content moved into the
skia_private config. This allows for SK_WINUWP to be set more
uniformally. The skia_winuwp config was only used in the optional
template since all the code which required SK_WINUWP to be set correctly
was in the sources of an optional target. The optional targets already
have skia_private config available (through skia_library_configs).
Change-Id: I7f934cac0f68fb69cbac39ae76d5b45e4a47eab3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/371483
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Bug: skia:11335
Change-Id: I88c952cbfe2d2c5920e17675da1674928f37b982
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/371480
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Bug: skia:11295
Change-Id: Iec11f3f4d26eb5b1c07707b3cedd09096bad80d0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/371478
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
As explained in the bug, I would like to add a histogram to study how
users use the image smoothing quality in Chrome. In order to do that,
we need to ensure that the enums are not reordered or changed, so I
added kNone_SkFilterQuality = 0, etc. I also added kMaxValue for
histogram to work.
Bug: 1176091
Change-Id: I3af3213f699016a525caad5b0b51e0cc7aab2c52
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/368157
Commit-Queue: Mike Reed <reed@google.com>
Auto-Submit: Yi Xu <yiyix@chromium.org>
Reviewed-by: Mike Reed <reed@google.com>
The old filter represented the whole (xform -> child -> xform) sandwich,
where this new one represents just one xform, with the factory now using
Compose() to piece the sandwich together.
This is conceptually simpler, which is nice, and we should also be able
to use this to replace SkSRGBGammaColorFilter (next CL).
Cq-Include-Trybots: luci.chromium.try:linux-blink-rel
Change-Id: I6dee3c968329ab74f24e01fcdb82872141cdd496
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/371456
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
When coercing a type, we would previously call checkValid() so we could
detect function-references and type-references, so we could get a nicer
error message.
It turns out that we can just do the "is this a type-reference/
function-reference?" check directly inside coerce() and get the same
improved error messages. Since we should be coercing all our values to
the right type, and type/function-references aren't coercible to
anything, this should catch them all. I don't expect any of these
to survive all the way to the end of IR generation.
(In case one of these types does slip through, I've left the error case
in checkValid, but I've also put in an assertion. If the fuzzer can
make that assertion fire, we are probably missing a call to coerce()
somewhere.)
This cleanup is meant to help migrate coerce() out of IRGenerator.
Change-Id: I031809adf439b1766048768b782c57e7f2494006
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/371479
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
These classes now read the program configuration from the Context.
Change-Id: I15c95cacebb9836ee8f2162c4f4b7f99d453639c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/371396
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Adds trivial name mangling to the .stage output, so we can verify that
it's working in all places (declarations, references, etc). Also added
another global variable whose initializer is - in turn - another global.
Bug: skia:11295
Change-Id: Ic220bfae0a6d1eeeba66ade30d3d781af15c5dea
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/371477
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
The only color filter flag is isAlphaUnchanged(), so since alpha is
unchanged through any working format transformation, we can just return
whatever flags the child filter claims.
Add a simple test.
Change-Id: I2ce0300d9db55f953660ed157510070755c4c677
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/370824
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Also remove some unnecessary includes, then IWYU.
Change-Id: I41e88f0e661c59e75cb26e28768801b811fe8ee8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/371140
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
During IR generation, this information was previously only accessible
from inside the IRGenerator class. Now anyplace with access to the
Context can look up the program settings or kind.
Moving the ProgramKind inside the ProgramSettings struct would be an
interesting future goal, but this ends up causing significant ripple
effects outside of SkSL and may not be worth untangling. Many of our
callers expect to compile a Vertex, Fragment, and/or Geometry shader all
at once with the same Settings but differing ProgramKind, so perhaps
the distinction between Kind and Settings is relevant and worth
keeping as-is.
Change-Id: I8b3a61510911b4ff309549663f81f3b960bdb0da
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/371256
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Change-Id: Idd0d49d3564dc3a24455db3c504ffa124f34dd05
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/371336
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
Includes variables with and without initializers. Note that both the
.skvm and .stage output is incorrect right now. (No declarations for
global variables in .stage, and the initializer is dropped in .skvm).
Bug: skia:11295
Change-Id: Icb6d797616be6a1bc7cbdc9db4fefa7e30c65656
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/371143
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Change-Id: I7be9a95bc190760245966c36ed088afd68108a5f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/371316
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
On macOS 11 cloning a system font with an opsz axis and not changing the
value of the opsz axis (either by setting it to the same value or not
specifying it at all) when setting a variation causes the variation to
be set but the cloned font will still compare CFEqual to the original
font. Work around this by setting the opsz to something which isn't the
desired value before setting the entire desired variation.
This may also incidentally improve the situation for fonts created from
data on macOS 10.15, since a similar issue occurs and the same work
around seems to apply.
Bug: skia:10968
Change-Id: I2240f905644b753e2389446d248c27b1e62cdcd1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/370917
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Dominik Röttsches <drott@chromium.org>
Commit-Queue: Ben Wagner <bungeman@google.com>
None of these are legal in GLSL ES 1.0. Added a new test that previously
compiled without error. Started out with just assignment and equality,
then realized that sequence and ternary should be blocked, too.
Bug: skia:11323
Change-Id: I02691f819565afabeadbb12cab6c07acf40093f7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/370880
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
Previously, a manual codeAppend call was required to add a statement. We
now automatically invoke codeAppend when a statement is destroyed.
Change-Id: I09eaf230b1d58242c3ff6abb85e970ed5ed3bce2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/371141
Auto-Submit: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
We'll want to reuse these for other HSL effects, e.g. matrix filter.
Any preference where they go? New header?
Change-Id: I64534d9801b8bdecf0ef22b3517f8232de998170
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/370712
Reviewed-by: Brian Osman <brianosman@google.com>
Simply build the skvm program and look to see if in.a.id == out.a.id.
This obviously is conservative, with false negatives possible. I
haven't done it here, but one possible improvement is to splat uniforms
so constant folding can peer through uniforms too.
Add some basic tests.
Change-Id: I5578ba38ff490b96bf84538025e08d9d352f0320
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/370825
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
ca6573ebb0..e8c0aa81af
2021-02-17 syoussefi@chromium.org Vulkan: Clean up transform feedback extension pause/resume
2021-02-17 ianelliott@google.com Create getRotatedExtents() and related methods
2021-02-17 cnorthrop@google.com Fix spelling in capture owners
2021-02-17 m.maiya@samsung.com Vulkan: Consolidate image format list initialization code
2021-02-16 syoussefi@chromium.org Vulkan: noop glMemoryBarrier(CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT)
2021-02-16 syoussefi@chromium.org Vulkan: Fix missing visibility barrier for host-visible buffer writes
2021-02-16 syoussefi@chromium.org Vulkan: Fix crash with deferred clears and MSRTT
2021-02-16 geofflang@chromium.org Add timvp to ANGLE, vulkan and capture owners.
2021-02-16 penghuang@chromium.org Use the default build target vulkan_memory_allocator
2021-02-16 penghuang@chromium.org Roll third_party/vulkan_memory_allocator/ b1d65a2b3..732a76d9d (2 commits)
2021-02-16 angle-autoroll@skia-public.iam.gserviceaccount.com Roll VK-GL-CTS from d8a8a5c337df to eab348e95425 (17 revisions)
2021-02-16 cwallez@chromium.org Revert "Link angle_util statically into angle_system_info_test"
2021-02-16 cwallez@chromium.org Suppress Bus Simulator Indonesia on Linux AMD GLES too.
2021-02-16 cwallez@chromium.org Fix suppression for a SimpleStateChangeTestES31 on Linux AMD
2021-02-16 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 418fd62b5c0f to a1175c67dd67 (6 revisions)
2021-02-16 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 17c6b31351cf to a04f3d444779 (213 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 herb@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
Tbr: herb@google.com
Change-Id: Iae36a9e8fe8751de9105ebc8104cb463822db251
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/371018
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bug: skia:11230
Change-Id: Ifa677319a04379dc36ff155590ba85d45790567e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/368596
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Bug: b/179848728
Bug: b/146635333
We're seeing some slow shader_compiles on Android, so add some more
tracing to help determine where that time is being spent.
Use ATRACE_ANDROID_FRAMEWORK_ALWAYS instead of ATRACE_ANDROID_FRAMEWORK
for driver_compile_program and driver_link_program so that tracing for
the work done in the GPU driver will be turned on even if the developer
does not manually turn on skia tracing with
adb shell setprop debug.hwui.skia_atrace_enabled true
This matches the "shader_compile" tag added in b/146635333 and allows
non-Skia developers to easily capture traces with more info.
Change-Id: Ic698daad878bc0b946e15ec2f2f2e8cf53f30fbc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/369483
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
This change will allow these types to be forward-declared; C++ doesn't
allow forward declaration of types declared inside a struct. Moving
these types out of Programs resulted in a large diff.
The Settings::Value helper class has been moved inside of the
IRGenerator. In practice, it was actually just an implementation detail
of how IRGenerator looks up caps-values by name. It seems very unlikely
that this will be necessary elsewhere going forward.
Change-Id: I6119417fae608f1c492a27de746d2b550ef8ca20
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/370836
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
The FreeType and CoreText ports would use the default value for an axis
instead of the current value for any unspecified axes. Change this so
that when cloning a typeface any unspecified axes preferentially use the
current axis value if it is known.
Also adds a test that unspecified axes are not changed when cloning.
Change-Id: I751ee5517f1d6b827c6d4ab245e9d681c8df6b42
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/370456
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Dominik Röttsches <drott@chromium.org>
Commit-Queue: Ben Wagner <bungeman@google.com>
Change-Id: Id28ed827c4a896805c6d4eead339146fdd49e35f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/359560
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>