This CL demonstrates the following
- Interface code written in TS
- Having support for modular builds (e.g. making Paragraph
optional)
- Avoiding monolithic interface files
- Using eslint to enforce style and avoid errors.
- Working debug and release build (using example.html)
Many of these files would be generated via a tool (that
has not been written yet).
go/ts-canvaskit
Change-Id: Ibe9a214d5897b09920cef01f6e95302f3cf30d5c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/392297
Reviewed-by: Jorge Betancourt <jmbetancourt@google.com>
Reviewed-by: Leandro Lovisolo <lovisolo@google.com>
Adding new tests in an upcoming CL. This sets the stage for that.
I also outlined the Register ctor so that the diff in the next CL is
more readable.
Bug: skia:10877
Change-Id: I604f1ce811cddf1d1105716f114e27ce12bf8249
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/394998
Commit-Queue: Adlai Holler <adlai@google.com>
Auto-Submit: Adlai Holler <adlai@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
DSLVar is normally implicitly converted to DSLExpression wherever it is
used, but the naively template-ized nature of DSLFunction::operator()
meant that it was accepting DSLVar parameters directly. Since DSLVar is
non-copyable, this meant DSLVar couldn't be passed directly to a DSL
function.
The smarter templates in this change are able to pass DSLVar by
reference.
Change-Id: Id04531f909cefd29b377c46e37fc4525bb29953c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/394161
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
We really do use this.
Change-Id: I0defcf8aa3b23eec89b38b6720228daa8d50c27b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/394956
Commit-Queue: Mike Klein <mtklein@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
When we know the input types ahead of time, it's more efficient to call
ConstructorFoo::Make than to call Constructor::Convert, because we can
cut out the complex logic in convert_compound_constructor.
Change-Id: I147faa6d613ebc90de5d9bbb14e0b6db235a1802
Bug: skia:11032
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/393397
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
GLSL (post-ES2) allows array comparison: http://screen/8gryPvb9T7gndyb
Unfortunately, because ES2 does not support array comparisons, we can't
add this test to the dm test suite.
Change-Id: I06b71683e49b2631669cff801dc647951a81a299
Bug: skia:11849
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/394162
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
This renumbers the dehydrated data.
Change-Id: Ic1fc610d073a12d4e552a7c03e2e8630d8138a3a
Bug: skia:11032
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/393236
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Change-Id: Icc710e414388e4026a5e9819a53b8dac8ee0a2d1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/394896
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
This is allowed in OpenGL ES2, and its absence in SkSL has been a pain
point for new users adopting Runtime Effects.
Change-Id: Id2ed78261a2cd2b14b49ad22cb74cdc9e0905f8a
Bug: skia:11368
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/393418
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Includes a general explanation of device vs. local, how shaders don't
move with geometry, and how to use canvas transforms. Also shows
localMatrix on an SkShader. Finally, links to that from the SkSL page,
and adds SkSL-specific notes about coordinates.
Bug: skia:11763
Change-Id: I31462aff66ff8514392098b972a10e7c96e4f254
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/393516
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Change-Id: I2654ad43acd90d8a65dc2f54b47c0d9085e69175
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/394836
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
These were added to SkRuntimeEffects, but we need to do a bit of fixup
in the CK bindings. Note that 'getUniformFloatCount' is now poorly
named, but the idea still stands: it's how many total scalar values are
required.
Bug: skia:11803
Change-Id: If464156d8e6240736e324ef833e57ba7d53f55a0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/394476
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
fc28c1db5f..4340fcfaa8
2021-04-09 cclao@google.com Vulkan: Add command option to run app traces with minimum GPU work
2021-04-08 cnorthrop@google.com Tests: Add Call Break: Offline Card Game trace
2021-04-08 doughorn@google.com Revert "Fix multithreaded crash on draw commands on D3D11 backend."
2021-04-08 timvp@google.com PPO: Fix updating sampler uniforms between draws
2021-04-08 cnorthrop@google.com Tests: Add Bubble Shooter trace
2021-04-08 ynovikov@chromium.org Fix iOS and Android component builds
2021-04-08 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from c8a676460af3 to 6cad7c765c8b (151 revisions)
2021-04-08 doughorn@google.com Fix multithreaded crash on draw commands on D3D11 backend.
2021-04-08 timvp@google.com Reset mCurrentGraphicsPipeline in ProgramExecutableVk::reset
2021-04-08 jmadill@chromium.org Make "force context check" an optional GN flag.
2021-04-08 lubosz.sarnecki@collabora.com Tests: Add Professional Baseball Spirits trace.
2021-04-08 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 575b36060ded to c18d8cd5016c (3 revisions)
2021-04-08 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 743bf032b75b to c8a676460af3 (490 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 csmartdalton@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: csmartdalton@google.com
Test: Test: ProgramPipelineTest31.SampleTextureAThenTextureBTest: Test: Ran MultithreadingTest. Test exhibits a crash before thisTest: Test: SamplersTest31.SampleTextureAThenTextureBTest: Test: angle_perftests --gtest_filter="*bubble_shooter*"Test: Test: angle_perftests --gtest_filter="*call_break_offline_card_game*"Test: Test: angle_perftests --gtest_filter="*professional_baseball_spirits*"
Change-Id: I4128511bfc4427d88bb5afeb075739324e51e6cb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/394716
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
This assert was only accurate if the input edge flags were all 0s or
all 1s, and set in conjunction with the overall aa policy (e.g. aa = yes
meant all edge flags were 1). Then any cropping of a large draw would
have no change when it updated the edge flags.
However, this premise is flawed when the quad has mixed edge flags,
since it could still be anti-aliased but have non-aa edges that are
off screen. When they are cropped, those edge flags would correctly
switch from 0 to 1.
I didn't go so far as to replace *aa with GrAA::kNo, even though the
crop to the device bounds is technically non-aa. Keeping it as *aa
increases the probability that we keep the flags as 0000 or 1111,
which are slightly faster than mixed flags. Any cropping to the
device bounds is visually the same either way since they will be
cropping to integer coords.
Bug: chromium:1196090
Change-Id: If8fc6006b5846967e33e90063f00b82b50fe61f3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/394356
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
No functionality changes, just making the naming consistent with our
other enums.
Change-Id: Ic9bc4a89f8373e4dc1060067a41468fb626e5fa1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/394160
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
This commit introduces the foundation for android kit.
Included is the ability to make calls to native code through the JNI as well as a wrapper for SkCanvas to be used in the Android view hierarchy.
Change-Id: Id2416776e676210d4600898bada3356a9116eb55
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/393356
Commit-Queue: Jorge Betancourt <jmbetancourt@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
This function will be used by the resource allocator to figure out
whether an allocation plan is feasible without committing to it.
Bug: skia:10877
Change-Id: I135b7b80d53d9c3541d2fa0313d91d14a1d54eb2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/394156
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>
RSXForm is not stored directly in the glyph run. The Tx and
Ty portions are stored in the positions, and the scos, and ssin
portions in a span of SkVector.
This CL just adds the space for the extra information, but does
not utilize it yet.
Change-Id: I93e2140fb28a6638a57b6d811ed6dc823e8de6ae
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/394217
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
The resource allocator already has a scratch key and it
needs to be able to find scratch textures without instantiating them.
Bug: skia:10877
Change-Id: Ia0d4c52147ae799f4e19fb0eabdc2d63cf21c110
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/394117
Commit-Queue: Adlai Holler <adlai@google.com>
Auto-Submit: Adlai Holler <adlai@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
OpenGL ES2 allows structs to be compared: http://screen/6KnX4ZfkdLtqDWv
This already worked in GLSL, Metal and SkVM.
Change-Id: Iaf7029c0c1ea9d447348c8280a2788f0d36befad
Bug: skia:11846
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/393598
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
This allows it to access the resource cache as well as the provider,
and paves the way for memory budgeting inside the resource allocator.
Bug: skia:10877
Change-Id: I01e9c02e445494ac431b288f41006ae7360ff791
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/394116
Auto-Submit: Adlai Holler <adlai@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Now that we have a non-msaa FBO on Adreno chips this workaround is no
longer necessary.
Bug: skia:11396
Bug: skia:11838
Change-Id: Ibd3386dcbcbefcf9506a07bbd095ee9431552d2a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/393718
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
As part of this we also create two fbos now for
multisampled_render_to_texture: one msaa and one not.
Bug: skia:11396
Change-Id: If519b52ec79de4b2abeac2c5658f766f1c7e8d9c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/392746
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
dfa7cca5f3..f9350be1e4
Includes fixes for COLRv1 fuzzer findings and fixes for issues
with state kept between glyphs in hinting.
Change-Id: I72dba955e948715bbf7b2f6c45a44339f74cfaa5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/394036
Auto-Submit: Dominik Röttsches <drott@chromium.org>
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
We then store this handle on the GrVkFramebuffer. This will be used in
follow on CL to help remove the use of GrVkRenderTarget in the
GrVkOpsRenderPass.
Bug: skia:11809
Change-Id: I979de4e474be1d5e5683dc263fe347cfb63b2342
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/393376
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Bug: skia:11840
Change-Id: Ief89855554e4ed21da20a2fdef4945294cf46498
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/393416
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Change-Id: Ic1f5d28651e8de9d9ecea2a0bcfa73063dd90a9d
Bug: skia:11032
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/393337
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
It is no longer used.
Change-Id: I1f5861ea4043440d7a6a31e5268e24c62fb1660e
Bug: skia:11032
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/393217
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Vector and matrix typecasting is mechanically very similar, so it makes
sense to represent these with a single constructor type and paper over
the tiny differences in each backend. (SPIR-V in particular needs a
separate path for matrix casting versus vector casting.)
Change-Id: Id9ea7ca6297e69b3e813c69bfdc56073b50d8d89
Bug: skia:11032
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/393216
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
We believe with advent of GrBackendSurfaceMutableState that this is
only needed for inline atlas uploads. Those call GrGpu directly.
Bug: 1191058
Change-Id: Iad851ebc9f5b7df21d16064a84caa9575da98634
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/393082
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
ConstructorComposite is a slight rework of ConstructorVector;
mechanically, both vector and matrix composition behave the same and
can share the same logic.
The generated code in SPIR-V and Metal still has some tweaks due to
different handling for matrices in these languages, but the SkSL
internal model mimics GLSL's view that vectors and matrices can be
created by lumping together any mix of scalars and vectors.
The backends will continue to adapt this model to their reality.
Change-Id: Ia2781c8a9dd3b4ba55ef93e33ac252eaeec844ac
Bug: skia:11032
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/393178
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Bug: skia:11374
Change-Id: I63d605eabbe514a0469d00d8a671969874f3edd4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/393081
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2f22157acd..6d905c7631
2021-04-07 cclao@google.com Vulkan: Remove initImmutableImage and use initImage instead
2021-04-07 cclao@google.com Vulkan: Remove maxLevel and immutable from ImageHelper::initExternal
2021-04-07 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 99ef73b66e73 to 9bacc030553c (0 revision)
2021-04-06 jmadill@chromium.org Vulkan: Suppress draw-time push constant VVL warnings.
2021-04-06 cclao@google.com Vulkan: Remove mMaxLevel from ImageHelper class
2021-04-06 timvp@google.com Mark most draw modes valid when no program is bound
2021-04-06 sunnyps@chromium.org Support GL_EXT_texture_type_2_10_10_10_REV on D3D backend
2021-04-06 cclao@google.com Vulkan: Remove mBaseLevel from ImageHelper class
2021-04-06 jmadill@chromium.org Vulkan: Use constants for descriptor types.
2021-04-06 lexa.knyazev@gmail.com GL: Align emulated ETC1 handling with other backends
2021-04-06 cclao@google.com Vulkan: Make storage actually immutable for immutable textures
2021-04-06 b.schade@samsung.com Vulkan: Fix geometry shader validation with vertex shaders
2021-04-06 liaoyuke@chromium.org Lacros: Fix xvfb condition in angle
2021-04-06 m.maiya@samsung.com Vulkan: Assign XFB location first then assign varying location
2021-04-06 cwallez@chromium.org Factor common Vulkan build_overrides in vulkan_common.gni
2021-04-06 cwallez@chromium.org Add tint: to the list of allowed Bug: tags.
2021-04-06 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 61083c4a2ae0 to fac6f6b00985 (4 revisions)
2021-04-06 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 9c9ca054e2bc to 99ef73b66e73 (584 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 csmartdalton@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: csmartdalton@google.com
Test: Test: KHR-GLES31.core.draw_indirect.basic-mode-*adjacencyTest: Test: KHR-GLES32.core.geometry_shader.api.fs_gs_draw_callTest: Test: KHR-GLES32.core.geometry_shader.api.pipeline_program_without_active_vsTest: Test: KHR-GLES32.core.tessellation_shader.tessellation_control_to_tessellation_evaluation.gl_inTest: Test: SimpleOperationTest31.DrawWithoutProgramBoundTest: Test: built Chromium and Angle from sourceTest: Test: gpu_angle_passthrough_fuzzer
Change-Id: Ie3f92899ba5b28cb27c736d3c8327dda4aebb8a2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/392971
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>