This reverts commit 7bba1f55e8.
Change-Id: I707a3c215f37376086e22eaa43916afeed6da4c7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/388456
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Bug: skia:11760, skia:11787
Change-Id: Idfedb90576e0484bf32a9002081c0fcb888141eb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/388216
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
This reverts commit 7508b54af3.
Reason for revert: android roll
Original change's description:
> Reland "Add GrRuntimeFPBuilder"
>
> This is a reland of 4b39aaf2cb
>
> Original change's description:
> > Add GrRuntimeFPBuilder
> >
> > Like SkRuntimeShaderBuilder but for internal use for creating FPs.
> >
> > Currently it requires that the code be a static string so it can
> > easily make a static SkRuntimeEffect instance for each effect.
> >
> > Bug: skia:11771
> >
> > Change-Id: I18148eb33e7d28c804e4a13bcef88c89c06b2c9b
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/386889
> > Commit-Queue: Brian Salomon <bsalomon@google.com>
> > Reviewed-by: Brian Osman <brianosman@google.com>
>
> Bug: skia:11771
> Change-Id: I10a7974aa209f9cd63a5dc1ef21a36822b49bda3
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/388097
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>
TBR=bsalomon@google.com,brianosman@google.com
Change-Id: I01a1567edd4162f1054137886052f5065a9e6175
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:11771
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/388397
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
This breaks the setup & cleanup code into separate chunks, which both
reduces the size of this overlong method and makes the setup & cleanup
functionality available for use from DSL code in the future.
Change-Id: Id0a33292d7cf62da89d6e62fa47d692f3ad7277b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/387957
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
Currently, Nanobench is silently reporting bad performance metrics when
a shader can't be compiled; this is, at the very least, misleading, and
can often cause real problems to be magnified or ignored.
Change-Id: I7a826dfd6e680e42a0c3eeebf76cc21cbd7f9dbb
Bug: skia:11776
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/388140
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Now that these methods are used in Chromium to produce PDFs with
embedded text, properly document how to use them.
Change-Id: I68fb477b65ec41af9fcc46429275bda03680bff0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/387976
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Dominik Röttsches <drott@chromium.org>
In this CL, the custom ShaderErrorHandler retains the existing failure
mode of the DefaultShaderErrorHandler (using SkDEBUGFAILF) to minimize
breakage on the tree.
Change-Id: I52ecbcadf2ce93eaf47bf400b5faa8955f9526ca
Bug: skia:11776
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/388139
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>
Fully retracting GrRenderTarget is still blocked on Dawn, D3D,
and Vk uses.
Change-Id: I59ebce40d85134f8ee18c143df2a3f4b70c3dcb1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/386840
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Only the largest sigma (320) would hit the downscale limit with the
old sigmas and image sizes. However, that sigma was far too large
to produce reference values in a reasonable amount of time.
Reduce the image sizes so that the downscale limit can be hit with a
smaller sigma.
Bug: skia:11735
Change-Id: Ia7f4385c6114f7071a14336ca39f81cf9ac68861
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/386058
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Change-Id: I22837a4921238749664217e595d24d196503534d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/388096
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
into a new GrGLSLGeometryProcessor. Since NVPR is no more this
distinction (between GLSL- Primitive and Geometry -Processor)
probably isn't needed/useful.
Bug: skia:11760
Change-Id: I75621725bd2b0ef3dbac2ea6449bd571551babab
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/388036
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Previously, the act of painting a Runtime Effect was causing its helper
functions to get inlined, even if inlining was disabled during the
initial SkSL generation. This meant that the "NoInline" path was not
actually very effective.
Change-Id: If8e3933be61df4a49d2e11d916d7fff22876315e
Bug: skia:11362
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/388099
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Previously, the first created Runtime Effect with a given source string
was being returned for each subsequent call to Make, regardless of the
passed-in Options.
Change-Id: Iab95df842efd17091365291dc8ab9f54314f1276
Bug: skia:11362
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/388098
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
This is a reland of 4b39aaf2cb
Original change's description:
> Add GrRuntimeFPBuilder
>
> Like SkRuntimeShaderBuilder but for internal use for creating FPs.
>
> Currently it requires that the code be a static string so it can
> easily make a static SkRuntimeEffect instance for each effect.
>
> Bug: skia:11771
>
> Change-Id: I18148eb33e7d28c804e4a13bcef88c89c06b2c9b
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/386889
> Commit-Queue: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Brian Osman <brianosman@google.com>
Bug: skia:11771
Cq-Include-Trybots: luci.skia.skia.primary:Build-Debian10-GCC-x86_64-Release-Shared_Docker,Build-Win-Clang-x86_64-Release-Shared,Build-Win-MSVC-x86_64-Release-Shared
Change-Id: I10a7974aa209f9cd63a5dc1ef21a36822b49bda3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/388097
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
90cf278c36..ef17c6503b
2021-03-23 cclao@google.com Vulkan: Add test for filament gltf usage case
2021-03-23 timvp@google.com Save/Load missing members
2021-03-22 cnorthrop@google.com Tests: Add android log library to traces
2021-03-22 timvp@google.com Reorder ShaderVariable functions and members
2021-03-22 m.maiya@samsung.com Handle inactive structure type varyings correctly
2021-03-22 m.maiya@samsung.com Vulkan: Handle compilation error involving gl_InvocationID
2021-03-22 cclao@google.com Vulkan: Rename onImageHelperRelease to finalizeImageLayout
2021-03-22 jmadill@chromium.org Vulkan: More cleanups to perf counters.
2021-03-22 cnorthrop@google.com Tests: Add Avakin Life - 3D Virtual World trace
2021-03-22 cheryl.wei@arm.com Skip ResizeWindow test on Linux.
2021-03-22 m.maiya@samsung.com Vulkan: Don't acquire new BufferHelper for external buffers
2021-03-22 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from c33e21cce932 to 3eced2421f5a (477 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 reed@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: reed@google.com
Test: Test: FramebufferTest_ES3.RenderAndInvalidateImmutableTextureWithBellowBaseLevelLODTest: Test: FramebufferTest_ES3.RenderAndInvalidateImmutableTextureWithBeyondMaxLevelTest: Test: FramebufferTest_ES3.RenderAndInvalidateImmutableTextureWithSubImageWithBeyondMaxLevelTest: Test: TransformFeedbackTest.InactiveStructureVarying*Test: Test: angle_perftest --gtest_filter="*avakin_life*"
Change-Id: Ia94107719997ced8a17b69d4d51f0d172d95a076
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/388118
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bug: skia:11770
Change-Id: I118a85e58a5422ff42c693fd8f85af098d8f8a25
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/387816
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
Tracked this down as the source of failing tests in an unrelated CL.
Change-Id: I1427853a258596fdb658a5263683d3fb370bb353
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/388056
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
This also allows us to rip out extra work ccpr was doing to maintain
the lifetimes of these objects.
Bug: chromium:928984
Change-Id: I094784235e23f00fb2ed10756a5eaa22a6028c2e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/387356
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Adlai Holler <adlai@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
We need to prevent these modifiers from disappearing when we emit
function declarations.
Change-Id: Ib06e9da6ee4fdd59ab7ee757540fe7ee4aa95ea3
Bug: skia:11362
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/388037
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
It's possible to enable SK_METAL on non-Apple platforms which will lead
to compile issues. This will prevent that. Also includes a minor change
to keep the decl of GrMtlTextureInfo consistent with other uses.
Change-Id: I48ae89b53c3ea8b50ee78383c5a81fdd09e9e3e3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/388038
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Removed error tests which no longer test anything:
- UseWithoutInitialize...: we no longer track variable use-before-init.
- InlineDivideByZero: we no longer constant-fold the result of an
inlined function call into its parent statement.
- Unreachable: we no longer report unreachable statements.
And fixed some minor test-case issues:
- StaticSwitchConditionalBreak: we still check this, but the function
was being dead-stripped before this check could run. Renamed to main.
- OssFuzzXxxxx: these cases no longer report errors, but they are still
valuable as regression tests; moved to `shared/`.
Change-Id: Iade3cff821dc998cacfd02f62d3ac4625e48904c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/387820
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
The global fPointSizeLimit which backs the above calls is protected
by a mutex because it can be called from multiple threads. This
created contention with multi-threaded strike cache use.
A search of the Google, Android, and Chrome source show no use of
SetFontCachePointSizeLimit, and the only uses of
GetFontCachePointSizeLimit are internal. In effect, the mutex
protected a constant.
Remove all uses, and replace with constants.
Bug: skia:11777
Change-Id: I9a2c3f3ee849cd07d04efa7113cb3ea9c600927f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/387676
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Calls assign() directly on clip atlas proxies instead of using the
scary, unprotected back-pointer from a callback function.
Bug: chromium:928984
Change-Id: I253fc0f3280b97b6af4f1fde2d0094d58dc5d125
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/387296
Reviewed-by: Adlai Holler <adlai@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
With the removal of NVPR we no longer need this distinction.
Bug: skia:11760
Change-Id: I225a4feb764395fb72aca3ffc8b6d05396bf0b1e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/386890
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
This reverts commit 4b39aaf2cb.
Reason for revert: DLL fail
Original change's description:
> Add GrRuntimeFPBuilder
>
> Like SkRuntimeShaderBuilder but for internal use for creating FPs.
>
> Currently it requires that the code be a static string so it can
> easily make a static SkRuntimeEffect instance for each effect.
>
> Bug: skia:11771
>
> Change-Id: I18148eb33e7d28c804e4a13bcef88c89c06b2c9b
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/386889
> Commit-Queue: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Brian Osman <brianosman@google.com>
TBR=bsalomon@google.com,brianosman@google.com
Change-Id: I13e22674a1bcb07b86342189bab84fc6cbb357e9
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:11771
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/387817
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
The gn_to_bp.py script generates projects with is_official_build=true.
This means that gn/skia:warnings is not applied. This means that a
number of warnings are not turned on, but it also means a number of
warnings are not turned off. Directly suppress several warnings which
were previously always suppressed.
Change-Id: Iefe48f663d47e39f36e21f2200417a33b2389508
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/387836
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
Now that name mangling is implemented, we don't need to worry about name
collisions when high-precision types are disabled.
Change-Id: Ic0def3e629deeb804745ff683826946947c898e3
Bug: skia:10851
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/387758
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
SPIR-V doesn't seem to mind overlapping function names, since they're
not load-bearing in any way, but this keeps us consistent with the other
code generators.
Change-Id: Ifdb4cb17795da88eabc0db841af746fb76caf423
Bug: skia:10851
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/387757
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
This will be implemented in Metal and SPIR-V in followup CLs.
Change-Id: I397b4db40b15dd54cf1d8a17f414c3fe184b48d2
Bug: skia:10851
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/387638
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
When an instanced draw had more edges than the stroke actually needed,
we used to distribute those excess edges evenly across the stroke.
(e.g., a stroke that needs 40 edges gets drawn in an instance that has
64.) This CL updates the shader to emit the excess edges as
degenerate triangles instead. The hope here is twofold: (1) that when
all threads in a warp belong to an extra edge, the GPU will skip the
expensive edge sorting entirely, and (2) that the rasterizer will drop
the degenerate triangles or at least do less work.
Bug: chromium:1172543
Change-Id: Idffad09c1f7e633c8ac75f5fdf865ade92af7f91
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/387616
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
This will be used in a followup CL to add name-mangling to functions.
Change-Id: I4e3df333783dfa380c87de11fafda8069d47bc1b
Bug: skia:10851
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/387637
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>
Like SkRuntimeShaderBuilder but for internal use for creating FPs.
Currently it requires that the code be a static string so it can
easily make a static SkRuntimeEffect instance for each effect.
Bug: skia:11771
Change-Id: I18148eb33e7d28c804e4a13bcef88c89c06b2c9b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/386889
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
No functional change, but this "helper" is now only called in one place.
Just part of my cleaning house around filtering logic. Happy to leave
things as they were if that is preferred.
Change-Id: I9131354240295af2d2041f759c24fc1d4805502e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/387437
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
In the build there are some defaults which actually apply to every
use of a built-in target type, but there are some (particularaly
warnings) which apply only to targets controlled by Skia. Currently
these unwanted defaults are magically known to exist and removed
wherever they are not wanted. Instead, create 'skia_' prefixed target
templates and apply these defaults to those instead.
Change-Id: I3a2afb53c7205a2e2748d1cfad46319f2e93d3b3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/385516
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Change-Id: If5fb4f99d327bb429f60e8d6c526720dd02b0928
Bug: skia:11342
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/386800
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Descending into expressions is costly, and we don't have any need to do
it.
Change-Id: I45bf96b8642dceac95fb0468ae78cc785e400716
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/386842
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Bug: skia:11396
Change-Id: I0618e8ecfb3fe8e7539c1d808abf9b879d1d6694
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/386516
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>