This introduces Mem, a way of expressing x86 addressing:
addr = base reg + offset imm + (scale imm * index reg)
using the usual x86 convention of index = rsp to indicate no index.
And then, this introduces GP64Operand and YmmOperand, which are
generalizations like YmmOrLabel that fold over all the types of
arguments available at that position. (YmmOperand replaces YmmOrLabel).
There's still much to do, but I've started by generalizing most
of the Ymm instructions to take YmmOperand, and added some new
unit tests for vmovdqa to make sure all the various modes work.
Change-Id: Ie6cc1186310ff39c52a2a061431a91d10816c98a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/283344
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
No specified ty should be treated as 0. Test is coords-trans-12-f.
Change-Id: I5a3d0299e59933139b0ca77ebf797080b7ddaa1a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/283776
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Tyler Denniston <tdenniston@google.com>
Change-Id: I8dc74feaee91e99c294348b8092f5839fa9fa693
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/283676
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Change-Id: I52ede0363016459976e453ef71cafbcc6775f22e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/283496
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Change-Id: Ifa25a44a75c6c193a8bd0780bda0f016fe3cbc31
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/283675
Commit-Queue: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Trace out the tree from the DAG. Trace nodes
with fan-out > 1 after all out edges have been traced.
Change-Id: Ic078d212adf95a19146fcbd9fb8d103ea23360ee
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/283557
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
This reverts commit 7ae9d2fca6.
Reason for revert: Triggering Vulkan Debug layer errors
Original change's description:
> Update DDL test harness to use backendTextures to back tiles
>
> This better matches Chrome's use of DDLs.
>
> With path, image, and text draws stripped out, here is the perf impact of this change:
>
> before CL after CL
> w/ DDLs 7.792 1.038
> w/o DDLs 0.800 0.876
>
> This perf improvement (in the DDL case) is from backend texture wrapping SkSurfaces being created w/o initialization. The prior method of SkSurface creation was resulting in double clearing of all the surfaces.
>
> This perf improvement won't be seen by Chrome since they've always being using wrapped backend texture SkSurfaces.
>
> TBR=bsalomon@google.com
> Change-Id: Ice3993ca125fce37804e58c353c265cf659dbe2f
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/283456
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Robert Phillips <robertphillips@google.com>
TBR=egdaniel@google.com,bsalomon@google.com,robertphillips@google.com
Change-Id: Ife023ede0774ec2cce4c0d6e7708c036347ebf54
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/283648
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
This better matches Chrome's use of DDLs.
With path, image, and text draws stripped out, here is the perf impact of this change:
before CL after CL
w/ DDLs 7.792 1.038
w/o DDLs 0.800 0.876
This perf improvement (in the DDL case) is from backend texture wrapping SkSurfaces being created w/o initialization. The prior method of SkSurface creation was resulting in double clearing of all the surfaces.
This perf improvement won't be seen by Chrome since they've always being using wrapped backend texture SkSurfaces.
TBR=bsalomon@google.com
Change-Id: Ice3993ca125fce37804e58c353c265cf659dbe2f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/283456
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
This is a reland of eb48024f8b
No change from original, additional layout test suppression landed.
Original change's description:
> GaussianConvolutionFragmentProcessor uses GrTextureEffect.
>
> Also removes now unused GrShaderVar::appendArrayAccess.
>
> Bug: skia:10139
>
> Change-Id: Ic2583a6822e88510551b1031f3fb130266b3f395
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/283440
> Commit-Queue: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Bug: skia:10139
Change-Id: I890adc703b6077b6813ca6cb9f5211761e16a13e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/283637
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Bug: skia:9984
Change-Id: Ie799ffa19304978e2076f9ba790e8a34c1b03adf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/283225
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
dee4d7a54e..6e0d718a48
git log dee4d7a54e44..6e0d718a48d8 --date=short --first-parent --format='%ad %ae %s'
2020-04-14 hckim.kim@samsung.com Vulkan: Implement device memory sub-allocation
2020-04-14 shrekshao@google.com Add DrawBaseVertexVariants Tests
2020-04-14 tobine@google.com doc: Add note on Vulkan-Headers repo
2020-04-14 xinyi.he@arm.com Enable perFrameWindowSizeQuery by default on Mali
2020-04-14 cnorthrop@google.com Tests: Update dEQP KHR GLES 3.1 expectations
2020-04-14 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/SwiftShader 9d2fd9c161ab..711867566999 (3 commits)
2020-04-14 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/glslang/src 46572440189e..4d2298bfd78a (1 commits)
2020-04-14 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-tools/src 490e39372126..ae0f0ead3a56 (1 commits)
2020-04-14 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/spirv-tools/src 34be23373b9e..e70d25f6fa5d (3 commits)
2020-04-14 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-validation-layers/src 019f4e38eb79..f89de66a9bcb (7 commits)
Created with:
gclient setdep -r third_party/externals/angle2@6e0d718a48d8
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 kjlubick@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/+/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: None
Tbr: kjlubick@google.com
Change-Id: Ibd5bb5188238b845b5a7c9174052ab9ea07c4c0c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/283584
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Change-Id: Ibbb09aa820bd20ee6b3bc05ed4eb137fcba54d2b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/283579
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
The original code would reject glyphs that were too large
(!canDrawAsMask or !canDrawAsSDFT). After CL/251760 this behavior
was change so, that glyphs were only rejected once,
and then never again. The next stage (path, etc.) would then not
know to send a glyph in future draws. This code allows glyphs
that can't draw as mask and can't draw as SDFT be rejected.
I don't have a unit test yet.
BUG=chromium:1058517
Change-Id: I6117bc96a8f306be63ffea17b9f4a34e7388645e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/281724
Reviewed-by: Khushal Sagar <khushalsagar@google.com>
Commit-Queue: Herb Derby <herb@google.com>
MSAN points out we oughta initialize anywhere we pull a trick like this,
ptr[*ip+0] = skvx::if_then_else(mask(), POP().fFloat, ptr[*ip+0].fFloat);
Change-Id: I321f0d54b7f0f048df2e942dd70a6fabf6fd4efb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/283493
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Also removes now unused GrShaderVar::appendArrayAccess.
Bug: skia:10139
Change-Id: Ic2583a6822e88510551b1031f3fb130266b3f395
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/283440
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Also make GrDynamicAtlas directly use the GrSurface callback type rather
than go through a springboard.
Change-Id: I3e3c155bbc1e2e794e0d6828b0ea3c64c6a7f3e9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/283226
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
And abstract out writing a single instruction to
share between the dumps.
TBR=mtklein@google.com
Change-Id: I5e129889131b5581d61a0359a06643edeb0ef2ae
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/283505
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
In the flush-time op spew it is clear which renderTasks are the Ops-based ones. This clarifies which of the other varieties occur.
Change-Id: I0e55b93f6e8d3cc0d9a9223f9c0ba967eeebb633
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/283483
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Required introducing a new type for stop-color attribute. A test that
exercises this is 'color-prop-01-b'.
Note that stop-color should be an inherited presentation attribute, but
that is not addressed in this CL.
Change-Id: I65b99bfc989f1d4b5a0746de31011b0e72eb6c59
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/282592
Commit-Queue: Tyler Denniston <tdenniston@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
* Init D3D texture resources to an appropriate resource state
* Standardize struct initialization
Bug: skia:9935
Change-Id: Ie7113457d59503a25d60b7dc045fae670cf7aebf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/283358
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
This allows fragment processors to sample their children with their
local coordinate system transformed by a matrix.
Change-Id: Ifa848bbd85b939bbc5751fec5cf8f89ee904bf39
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/282590
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
-Make generated build tasks for Pixelbook use Debian9...Docker and rename those in jobs.json
---Non-Pixelbook ChromeOS build tasks now use regular Debian10, as they seem to handle it fine.
---Removed 2 Build-Debian9-Clang-arm-.*-Chromebook_GLES jobs, since they are now unused.
-Added docker logic to chromebook.py, refactored to handle the differing directory structure (TODO to simplify)
---Added docker-chromeos-compile.sh to run in the container.
---util function to convert to string that can be used in the python or passed to bash (cribbed from docker.py, will consolidate in later CL)
-Prerequisite for upgrading the last 10% of the fleet to Debian10
Bug: skia:9438
Change-Id: I0727aad2d00383e568ddbeea98d56d42bcca26e5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/282678
Commit-Queue: Weston Tracey <westont@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
- owned by canvas
- pointed to by devices
Change-Id: Ia5abc60434cd34810ceea09ecab63c6b25eb972e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/283436
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Reed <reed@google.com>
The SlotCount of unsupported types (eg, fragmentProcessor) is zero,
causing things like vector_instruction to assert. Bail out before that
happens.
Change-Id: I24440bd67f09c2a645a54392185716b116f36ec6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/283357
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Currently used by ChromeOS/Pixelbook build jobs and WIP Flutter Android jobs.
Bug: skia:9438
Change-Id: I25072814291670829d1c24bbad4e718022311455
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/282619
Commit-Queue: Weston Tracey <westont@google.com>
Reviewed-by: Ravi Mistry <rmistry@google.com>
Auto-Submit: Weston Tracey <westont@google.com>
cf2c8e6068..dee4d7a54e
git log cf2c8e6068c8..dee4d7a54e44 --date=short --first-parent --format='%ad %ae %s'
2020-04-13 cclao@google.com Vulkan: Early fragment tests optimization
2020-04-13 tobine@google.com Vulkan: Roll Headers and VVL repos
2020-04-13 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/glslang/src fd593d5f0834..46572440189e (1 commits)
2020-04-13 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-tools/src 2fd41fab58c8..490e39372126 (2 commits)
2020-04-13 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/SwiftShader e6f65d9265e7..9d2fd9c161ab (2 commits)
Created with:
gclient setdep -r third_party/externals/angle2@dee4d7a54e44
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 kjlubick@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/+/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: None
Tbr: kjlubick@google.com
Change-Id: Ib83c7fc29e95918c3f46cbff38286f3fdb73fdc7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/283407
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bug: chromium:1064305
Change-Id: I10ca629ff88a5492bb9f89075f6d92094340ff55
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/282076
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Zhenyao Mo <zmo@google.com>
I propose landing this, but then pause on extending math functions until
we develop a clearer migration story for sksl.
Change-Id: Id42ec37071da058e6e7809abe1ed0570d48df8e7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/283229
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Change-Id: I3a33d2f80fcb243faec40b13960ea0310723e53e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/283356
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Change-Id: Ie21dece49a891f5c2dec5fe9385489ece88ae690
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/283222
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
These are neat but mostly just a distraction for now.
I've left all the assembly in place and unit tested
to make putting these back easy when we want to.
Change-Id: Id2bd05eca363baf9c4e31125ee79e722ded54cb7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/283307
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
One new instruction movzwl needed.
Change-Id: Ic70ba34d667eb6d570aeca88c4243e0c3309525f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/283305
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
They're all best implemented as compound operations,
either by swapping the arguments or bit-negating the
result, or both.
Change-Id: I429c10182b66be7211e9170037755cea617895ed
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/283299
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
- let skvm tell us if FMAs are supported
- unguard previously LLVM-only tests
- simplify testing JIT and interpreter
We're getting close enough to always being able to JIT that carefully
marking what JITs and what doesn't is more annoying than helpful.
Now just test the JIT if present, and always test the interpreter.
Change-Id: I83762b38e0773ccaee795ae0fc9907e86628d73e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/283275
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
These are the dregs of the omnibus GrDrawOpAtlas CL
Change-Id: I0723346db293dd6650b905f661053955d2f46a1d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/279908
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>