This reverts commit 163ba10dde.
Reason for revert: Mac linker errors
Original change's description:
> Fix sk_app macOS raster window build conditions.
>
> The "raster" window on macOS is actually backed by GL. Fix the build
> rules and code conditions to reflect this. This allows for some sk_app
> applications to run on macOS with skia_use_gl=false.
>
> Change-Id: I5d7b37c4172079e163690faa4e55a622a6d4f844
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397256
> Commit-Queue: Ben Wagner <bungeman@google.com>
> Reviewed-by: Brian Osman <brianosman@google.com>
TBR=bungeman@google.com,brianosman@google.com
Change-Id: Ie5fa24138e4387784c21559f28528a4c4d335626
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397737
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
The "raster" window on macOS is actually backed by GL. Fix the build
rules and code conditions to reflect this. This allows for some sk_app
applications to run on macOS with skia_use_gl=false.
Change-Id: I5d7b37c4172079e163690faa4e55a622a6d4f844
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397256
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
SPIR-V would previously jump to the top of the do-while loop when
encountering a `continue`. This is not correct; it should jump to the
loop-exit test. We don't have any real shaders which test this case, and
it can't be checked from inside Runtime Effects since do-while is not
part of ES2.
Change-Id: Iac58e9e7ad0a94640e6418afea096b19ba50a2df
Bug: skia:11874
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397576
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
These are rounded rectangles whose corners are superellipses instead
of ovals. This builds on a lot of work done by zakcohen@google.com to
define a consistent, visually appealing shape that can be used
reliably in the Android UI.
Change-Id: I97fde7be870152c9ee776fde53118019d0caa251
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397416
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Change-Id: Ic5192b072c98617dee85f28f8f4214c7a805a1fd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397318
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
This bot also runs reduceOpsTaskSplitting, so this allows us
to test the over-memory-budget fallback behavior.
At 16MB my desktop falls back on the following SKPs: desk_carsvg,
desk_twitter, desk_yahoosports, desk_linkedin, desk_facebook.
Bug: skia:10877
Change-Id: I60934e990581f762b72c077c6e8a40cc0c1d3d8c
Cq-Include-Trybots: luci.skia.skia.primary:Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All-ASAN_Vulkan,Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All-DDL3_ASAN
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397461
Commit-Queue: Adlai Holler <adlai@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
A Block() at the top-level scope would previously disappear silently.
Change-Id: Ic3bac058361658d2e5bd8de1e3718dedf4cef1f7
Bug: skia:11854
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397516
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
This also connects a lot of the wires needed to use dynamic MSAA in
vulkan. By using the framebuffer object in the render pass we can figure
out the specific framebuffer we want in one place, GrVkGpu::onGetOpsRenderPass,
and then the render pass itself doesn't need any explicit knowledge of
dmsaa stuff.
Bug: skia:11809
Change-Id: I3e4e71fa6f9536fdaf915d5369a2f8a24bf48c9b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397156
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
We need to wait until there's a resourceCache to set the value on.
Bug: skia:10877
Change-Id: I1558af6c369e857fbafb450179d3b341250ad16a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397459
Auto-Submit: Adlai Holler <adlai@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Adlai Holler <adlai@google.com>
Also, disable quick-reject for now until bounds are fixed.
Change-Id: I08b9fa037d279a99fc393364a71cb171e3d16d4a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397458
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Reed <reed@google.com>
This actually solves two different bugs:
1) A call to sample(child) in a helper function would fail to compile.
We were invoking the child's entry point with the default color
argument of args.fInputColor. That was "_input", which is a parameter
to our main.
2) The runtime effect's FP hard-wired references to the main color
parameter to args.fInputColor (via a builtin id). This meant that the
user code could change the variable, then call sample and have those
changes visible to the child. That shoudln't happen (unless you
actually pass a color to the child explicitly).
Doing this with an extra global variable is somewhat ugly, and adds some
overhead. Hopefully the driver is able to see through it and optimize
this.
Bug: skia:10506
Change-Id: I11d152bd9f8b270afd53d3bfa71d2e728c8fd729
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397154
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
This limits users to sample(shader, coords). That's the actual semantics
of an SkShader, so we model it precisely. The other two versions of
sample were really (internal) optimization tricks, and we don't want to
externalize that.
Sample with matrix isn't particularly useful for clients (the child
can be constructed using a local matrix, if that's what you want).
Filed 11869 to detect when we're sampling using the un-modified incoming
coords, so we get the benefits of pass-through sampling automatically.
Bug: skia:11869
Change-Id: Id46d6d495d1d7f17341b5ffb453f62a0c74bd098
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397457
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
212849e932..f2aa9d5da6
2021-04-16 lehoangq@gmail.com Reland: Metal: Support importing external metal textures
2021-04-16 jmadill@chromium.org Android: Include android-deps into Android checkout.
2021-04-15 jmadill@chromium.org Vulkan: Implement shader buffers descriptor cache.
2021-04-15 jplate@google.com Generate CL enums in libGLESv2
2021-04-15 timvp@google.com Capture/Replay: Add PPO/glProgramUniform support
2021-04-15 syoussefi@chromium.org Remove suppression for fixed CTS tests
2021-04-15 cclao@google.com Vulkan: Consolidate mReadOnlyDepthStencilMode to mRenderPassUsageFlags
2021-04-15 cclao@google.com Vulkan: Support sample/render to depth texture with different LOD
2021-04-15 cclao@google.com Vulkan: Add test for render+sample depth texture with non-overlap LOD
2021-04-15 syoussefi@chromium.org Roll VK-GL-CTS from c4e6dbe68e04 to ededa67cb12a (76 revisions)
2021-04-15 syoussefi@chromium.org Skip TracePerfTest.Run/*_idle_heroes on Pixel 2
2021-04-15 jplate@google.com Clear macros 'NEAR' and 'FAR'
2021-04-15 lubosz.sarnecki@collabora.com Tests: Add Idle Heroes trace.
2021-04-15 gert.wollny@collabora.com Capture/Replay: Enable InstancingTest.LineLoop/* tests
2021-04-15 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 21426fd08f99 to cac0b331e3fc (436 revisions)
2021-04-15 gert.wollny@collabora.com JsonSerializer: Add tests for sorting and non-unique keys
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 brianosman@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: brianosman@google.com
Test: Test: FramebufferTest_ES3.RenderSampleImmutableDepthTextureWithExcludedLevelTest: Test: FramebufferTest_ES3.SampleFromAttachedTextureWithDifferentLODAndFBOSwitchTest: Test: angle_perftests --gtest_filter="*idle_heroes*"
Change-Id: I31c9b1594a3c7bca0c6f2b541aba5fddfedfe371
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396974
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Add Color and Paint classes:
- Color is pure Java (equivalent of SkColor4f)
- Paint is backed by a native SkPaint
Change-Id: I79dbfae48f9e51254a51bc1c3966930f32cea5c4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396020
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Jorge Betancourt <jmbetancourt@google.com>
Bug: skia:11867
Change-Id: I21e71c77518f0a942651f31061f43f80505090ea
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397150
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
The previous structure of the root signature was:
0: root CBV
1: sampler descriptor table (if any)
2: SRV descriptor table (if any)
SRVs and UAVs can be in the same descriptor table, so they will share
that, but swap it with the sampler so we can have texture-less root
signatures. So new format is:
0: root CBV
1: SRV/UAV descriptor table (if any)
2: sampler descriptor table (if any)
Change-Id: Ibf2b28ed3cfce98e55785682e2009c52a29fda97
Bug: skia:10446
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397139
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
More details are in the bug, but the specific test case gets an
overlap region in the AA outset geometry for the left and right shapes.
Additionally, the mitered outset for the left shape is collinear with
the bottom of the right shape, so the winding of exterior edge of
the overlap region is updated to +2.
When determining the polygons to fill, this +2 on the outer edges
violates the winding rules that normally ensure the interior polygons
(that use +/-2 instead of +/-1) are always filled.
It appears a similar bug fix was added here:
https://skia-review.googlesource.com/c/skia/+/141952/
but then didn't survive a heavy refactor later:
https://skia-review.googlesource.com/c/skia/+/215094
To the best of my knowledge, this is achieving the same result as the
original fix but is updated to preserve winding scale for interior
polygons with overlap regions (the code checks for these, but they
seem pretty rare to me).
Bug: 1197461
Change-Id: I0d32820af8cfec92c46114aeaa58b6e340abdfca
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397140
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
This case is exceedingly rare, but we need to handle it anyway.
Bug: skia:10877
Change-Id: I6ba219487e4616ff24f2c087b3fcac957d2523f7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396816
Commit-Queue: Adlai Holler <adlai@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Auto-Submit: Adlai Holler <adlai@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Previously, the conflicting header names were printed between several
lines of "boilerplate" text, and without any explanatory text. This
made them difficult to notice. The assertion now has an explanatory
message and prints the conflicting filenames directly at the point of
the assertion.
Before:
---
Running presubmit upload checks ...
tests/sksl/dslfp GrSwizzle.h /Users/johnstiles/skia/src/gpu/GrSwizzle.h
Traceback (most recent call last):
File "tools/rewrite_includes.py", line 60, in <module>
assert file_name not in headers
AssertionError
** Presubmit ERRORS ** (etc)
username$ _
After:
---
Running presubmit upload checks ...
Traceback (most recent call last):
File "tools/rewrite_includes.py", line 61, in <module>
assert file_name not in headers, message
AssertionError: Header filename is used more than once!
- tests/sksl/dslfp/GrSwizzle.h
- /Users/johnstiles/skia/src/gpu/GrSwizzle.h
** Presubmit ERRORS ** (etc)
username$ _
Change-Id: I2b6848ef82c4b1c6d4b5577a76969785e5e122bb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397149
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
With this change, there is no need to produce a SkTextBlob when
using the drawGlyph, drawSimpleText, or drawString apis. These
calls just produce a light weight wrapper sending the wrapper
to onDrawGlyphRunList for rendering.
For recording, recording canvas converts the SkGlyphRunList into
a blob, and calls SkRecorder::onDrawTextBlob.
Remove unused call: drawPosTextCommon.
Change-Id: I173ba2793f74b521b33a6fb3dbd8d98945216a3b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/388719
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Cleans up registerChild calls, which were all on one long line.
Change-Id: I2b665b033edb88cf1de5e4da433833c0be26c92b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397147
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
Adds in printing of shaders and better matches other backends.
Change-Id: Ie2d7bed201e3d0a8d76262ee454632ec46b7e0aa
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397137
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
This is used in the fallback code when reordering produces
a DAG that goes over our memory budget.
Bug: skia:10877
Change-Id: I13772b30e270eb546957b88586ded1cf42d2dbeb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397136
Commit-Queue: Adlai Holler <adlai@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
This will be used as part of GrResourceAllocator::reset which
is coming in a followup CL.
Bug: skia:10877
Change-Id: I16327dd7e470e996891795a443fa665dd58cd54e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397099
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Adlai Holler <adlai@google.com>
Change-Id: Iefb44f59041c31d45db5c89131f70d6c76376622
Bug: skia:10446
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396158
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Use fillPixelsWithLocalMatrix instead of drawRect.
Bug: skia:11396
Change-Id: Ibaf64a5c482747d78aa5905f9e561358adcb42f2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396556
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
This is a reland of 5a2de5e72f
This is part one of two CLs. In this CL, I put a
sk_sp<GrArenas> on GrRenderTargetProxy where GrArenas wraps
a SkArenaAlloc to add ref counting. Creating
a GrOpsTask shares the GrArenas with the ops task. When an
GrOpsTask is destroyed, it nulls out the fArenas sk_sp on
the GrRenderTargetProxy to limit the life span of the arenas.
New plumbing was added to GR_DRAW_OP_TEST_DEFINE to allow a
proper GrSurfaceDrawContext to be passed to GrAtlasTextOp's
GR_DRAW_OP_TEST_DEFINE so the arena will have a proper lifetime.
The second CL will work on replacing GrOpsTask's fAllocators
system with the shared arena.
Change-Id: Ieb568e4533c17e31b3b015e7781365d7d898c483
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396818
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Herb Derby <herb@google.com>
These enforce stricter rules about the signature of main, and each one
uses a separate pre-include module. That prevents color filters from
being able to reference sk_FragCoord (or coords passed to main) at all.
It also limits the versions of sample() that are exposed.
In the new world, an effect created for a specific stage of the Skia
pipeline can only be used to create instances of that stage (SkShader or
SkColorFilter). For now, SkRuntimeEffect::Make uses kRuntimeEffect,
which continues to be more lenient and allow creation of either shaders
or color filters from a single effect. After we migrate all clients, we
can deprecate and then delete that mode.
Bug: skia:11813
Change-Id: I0afd79a72beeec84da42c86146e8fcd8d0e4c09f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/395716
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>