This allows force overriding font settings embedded in the glyphRunList.
Change-Id: I49f15786ec8d35c55f769fc910e009693cfc5879
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/508179
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
COLR fonts can use a magic palette index value 0xFFFF to indicate the
foreground color of the drawing context. Modify the DirectWrite port to
properly indicate when the foreground color is needed and use it.
Bug: skia:12576
Change-Id: Iaaf391eaf1b1204fe62edb48e01343bdac8aa34e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/508178
Reviewed-by: Herb Derby <herb@google.com>
There is no advantage to having every SkScalerContext_DW recompute and
store fIsColorFont when this is a constant on the typeface. Have the
typeface compute the value once and store and have the scaler contexts
look it up on the typeface.
Change-Id: Ib0441e4bc078da2bb9aa0cf5a97de7fe84947ce2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/508177
Reviewed-by: Herb Derby <herb@google.com>
This flag is no longer set by any users.
Bug: chromium:1266022
Change-Id: I7b0d02252f8d22aadd495ad3b987f444f39cea3c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/508176
Reviewed-by: Herb Derby <herb@google.com>
Importantly, this ensures that if we take the drawImageRect fallback,
the input paint's AA setting and mask filter setting won't suddenly be
included in the rendering.
Bug: skia:12518
Change-Id: Ifea12499f49c2d8c476f6d67f42b6fd2991426e8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/508537
Auto-Submit: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
This reverts commit 63e7ba59ce.
Reason for revert: Angle errors
Errors:
ERROR: 0:62: 'ldexp' : no matching overloaded function found
ERROR: 0:65: 'ldexp' : no matching overloaded function found
https://logs.chromium.org/logs/skia/5911c43abda19c11/+/steps/nanobench/0/stdout
Original change's description:
> Add synonyms to GLSLGeneration for 100es and 300es.
>
> We use GLSLGeneration::k330 to mean GLSL 3.30 for desktop GLSL and also
> for ES 3.00. k110 lived a double life as ES 1.00. This was confusing, so
> several places in the code had comments like "this is the value for GLSL
> ES 3" to clarify.
>
> This CL adds new enums "k100es" and "k300es" which use the same values
> as "k110" and "k330", but make the code easier to understand at a
> glance.
>
> Change-Id: Ib4dfbd8cd7bab45b35d6ad7303ccf87c7eeca3ab
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/506898
> Auto-Submit: John Stiles <johnstiles@google.com>
> Commit-Queue: John Stiles <johnstiles@google.com>
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Greg Daniel <egdaniel@google.com>
Change-Id: I7703598d4c74361da588d23f64e0697a844429ad
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/508517
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Florin Malita <fmalita@google.com>
Commit-Queue: Florin Malita <fmalita@google.com>
We use GLSLGeneration::k330 to mean GLSL 3.30 for desktop GLSL and also
for ES 3.00. k110 lived a double life as ES 1.00. This was confusing, so
several places in the code had comments like "this is the value for GLSL
ES 3" to clarify.
This CL adds new enums "k100es" and "k300es" which use the same values
as "k110" and "k330", but make the code easier to understand at a
glance.
Change-Id: Ib4dfbd8cd7bab45b35d6ad7303ccf87c7eeca3ab
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/506898
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Destroying a mutex while it is held is never valid, and can be extremely
hard to debug.
Change-Id: I42ff79de7892006337f204621ff59bf84112dcd7
Bug: skia:12943
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/507998
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
The SkRuntimeEffect fuzzer no longer uses the final 256 bytes of each
shader as uniform data, making this corpus obsolete.
(Fuzzer corpus change: https://github.com/google/oss-fuzz/pull/7266 )
Change-Id: I3df9213520390249f401c83c13f0bca5c7f0dde4
Bug: skia:12781
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/508036
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
0a320d16fe..06edae72ba
2022-02-12 b.schade@samsung.com Vulkan: Allow duplicated block name in different shader interface
2022-02-11 cnorthrop@google.com FrameCapture: Remove destroyed contexts from share group
2022-02-11 cclao@google.com Vulkan: Fix two bugs exposed by moving mEmptyBuffer to suballocation
2022-02-11 jmadill@chromium.org Double batch timeout for sanitizer tests.
2022-02-11 lexa.knyazev@gmail.com Keep ANGLE_base_vertex_base_instance available for ES 2.0
2022-02-11 syoussefi@chromium.org Vulkan: Use VK_EXT_depth_clip_control
2022-02-11 constantine.shablya@collabora.com Add entry points for EGL_KHR_partial_update
2022-02-11 cnorthrop@google.com Traces: Add restricted_trace_perf.py script for Android
2022-02-11 lexa.knyazev@gmail.com GL: Remove avoid_dxt1_srgb_texture_format feature
2022-02-11 hckim.kim@samsung.com Rebind program on glUseProgramStages
2022-02-11 cheryl.wei@arm.com Vulkan: Add an end2end test
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 fmalita@google.com on the revert to ensure that a human
is aware of the problem.
To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry
To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
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/main/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: fmalita@google.com
Test: Test: KHR-GLES32.core.tessellation_shader.single.max_patch_vertices
Test: Test: Mortal Kombat MEC
Change-Id: I64f41a11a83c9cadc0c4b8c02ed80c7fa0da4abc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/508417
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
This reverts commit bbc4ee5e07.
Reason for revert: Not quite ready -- pref and gold regressions
Original change's description:
> Implement DashLinePathRenderer with a simple FP
>
> An SDF of the dash is implemented as a linear gradient, which is then
> converted to coverage by an inline runtime effect. Currently only
> non-perspective, non-hairline, AA butt caps are supported by the new
> FP. We can delete DashOp once the FP supports more types of strokes.
>
> Bug: skia:12872
> Change-Id: Ifb19fcc4a114aec1847de50aab7ee900f289ed33
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/505476
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Christopher Dalton <csmartdalton@google.com>
Bug: skia:12872
Change-Id: Iaec22481ecbda55b37c32f5f7e223ed43a3da071
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/508097
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Previously, we used a fixed portion of the fuzzer input for uniform
data, and assumed zero children. Now we synthesize uniform and child
inputs based on the needs of the input shader. We no longer need to
reserve the last 256 bytes of each shader for uniform data; a followup
CL will remove the special corpus that this fuzzer used.
The contents of each uniform/child is not particularly important, since
we don't care what the final paint looks like. Each uniform is filled in
with increasing values in each slot, starting at zero (0, 1, 2, 3, ...).
Each child is a simple built-in shader/filter/blender.
(Fuzzer corpus change: https://github.com/google/oss-fuzz/pull/7266 )
Change-Id: Idc8bfcb17c10a470ef35fafc1789b915495e1d67
Bug: skia:12781
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/507924
Reviewed-by: Arman Uguray <armansito@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
I wasn't able to find any other test which exercised child color-filters
or child blenders. (SampleWithExplicitCoord evaluates from a shader.)
Change-Id: I58ecee3beca2d3dc11ded5de0eea031e1d7c3e1e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/507922
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Arman Uguray <armansito@google.com>
Commit-Queue: Arman Uguray <armansito@google.com>
This CL adds the task driver and plumbing necessary to run CI tasks that upload build statistics to https://codesize.skia.org.
For now, a single CodeSize-dm-Debian10-Clang-x86_64-Release task is defined, which as the name suggests:
- Depends on Build-Debian10-Clang-x86_64-Release.
- Takes the "dm" binary built by the aforementioned job.
- Runs Bloaty against said binary.
- Uploads the Bloaty output, along with a JSON file with metadata, to the GCS bucket where https://codesize.skia.org gets its data from.
If one wishes to upload codesize statistics for another binary, the steps are as follows:
- Identify the target binary, for example "fm".
- Identify a compile task that builds said binary with the desired settings, for example "Build-Debian10-Clang-x86_64-Debug".
- Add a new job in //infra/bots/jobs.json named "CodeSize-<binary>-<compile task>", where <compile task> is the name of the compile task without the "Build-" prefix, for example "CodeSize-fm-Debian10-Clang-x86_64-Debug".
- Run "make train" from the //infra/bots directory.
Eventually the codesize.skia.org webserver will automatically pick up the output of any such CodeSize-* task and show it in the UI, with no additional steps needed.
One caveat is that the binary file name, and therefore the "<binary>" part of the task name, cannot contain dashes. This is due to how //infra/bots/gen_tasks_logic.go works. See comments in said Go file for ideas on how to work around this if we ever need to.
Bug: skia:12151
Change-Id: If406944ca7660c4dd15c8e6b8f34e48c65cbbe2f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/502788
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Leandro Lovisolo <lovisolo@google.com>
An important part of serialization for slugs is maintaining the
translation of typefaceIDs from the renderer side to the GPU side.
Expose the translation code so that the slugs can use it.
Change-Id: I78ded1967759619a95fb13a1577cee3569927471
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/507836
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Avoids inconsistency with SkMatrix::mapRect.
Change-Id: I5c361e447d4011b2f91881cdbd8b79388f92ef09
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/507839
Reviewed-by: John Stiles <johnstiles@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Change-Id: I409dbac3d8548551722e74e86e67bc7b3620f506
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/507838
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
An SDF of the dash is implemented as a linear gradient, which is then
converted to coverage by an inline runtime effect. Currently only
non-perspective, non-hairline, AA butt caps are supported by the new
FP. We can delete DashOp once the FP supports more types of strokes.
Bug: skia:12872
Change-Id: Ifb19fcc4a114aec1847de50aab7ee900f289ed33
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/505476
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Christopher Dalton <csmartdalton@google.com>
Harden MakeFromBuffer with respect to the array length value.
* Check that the array count is not too large.
Change-Id: I5b398be1690fafce5be5b90ba8aa7af0f12be317
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/507637
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Bug: skia:12845
Change-Id: I8013b0068ab758e9a5e580344c62e4680f4fa48e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/506176
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Bug: skia:12643
Change-Id: Id5eecb3445082e747def8c87f99a16552857af3f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/506462
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Bug: skia:12754
Change-Id: Ib4f1a9ac4ef16805cf8ca4e4c0eea0b3922ca28a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/506465
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
These all stemmed from the same root cause, but are interesting and
distinct enough to include in our error tests.
Bug: oss-fuzz:44555, oss-fuzz:44557, oss-fuzz:44559, oss-fuzz:44561, oss-fuzz:44565
Change-Id: I22c1798809754b4b38c77ffbe369a97c64a2f60e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/507636
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
The fuzzer constructs a long, valid nonsense expression
(x+x+x-x+x-x, etc.) which exceeds parse depth. At that point, the token
stream points to a `+` token. The parser attempts to consume a new
statement but stops in `unaryExpression`; this fails again, due to the
max parse-depth, but doesn't consume a token. The parser continues
trying to parse the statement, but stopping in `unaryExpression`, making
no forward progress in an infinite loop.
I've made a couple of changes as a result.
- Exceeding the max parse depth now sets `fEncounteredFatalError`.
- Encountering a fatal error causes block() to immediately halt. This
actually undoes a few of the arbitrary changes from
http://review.skia.org/506463 but not in a bad way.
- `unaryExpression()` now consumes a token before checking parse-depth.
- `structDeclaration()` had a similar issue where it could potentially
fail without consuming any tokens; this is fixed as well.
- Some unnecessarily-nested logic in ternaryExpression() was flattened
while I tried to ensure that it always consumes a token.
Change-Id: I52c2161965ffbcef1185761ca6897ec1cba5df89
Bug: oss-fuzz:44551
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/507436
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Serialize all the glyphID information for the different
sub runs.
Bug: chromium:1278340
Change-Id: I04387ffadcf5cb20fbaca17a02d7ca1faf883806
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/507318
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Build with
./bin/gn gen out/wasm_debug '--args=target_cpu="wasm"'
or
./bin/gn gen out/wasm_release '--args=target_cpu="wasm" is_debug=false'
Change-Id: Ib74586bf8397d57064a3899eaa6da76f9bce9049
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/502036
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Adds wangs_formula::quadratic_pow4, cubic_pow4, conic_pow2 overloads
that operate on float2 directly instead of having to load data from
SkPoints. This means that the fixed count tessellators now only load
their control points into float2s once (when creating a patch geometry)
and then evaluate Wang's formula on those points, vs. both patch
geometry and Wang's formula evaluation requiring reading from the
SkPoint[] data. Not sure how likely a compiler is to have automatically
reduced that work.
Change-Id: I18eeb3e81a7e4b38f3fdfe4cc652a468415857a3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/502058
Reviewed-by: Christopher Dalton <csmartdalton@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
This reverts commit dec95f24e1.
Reason for revert: broke viewer build
The original CL was landed to keep upstream Skia the source of
truth when the changes were proposed directly in G3 in cl/414839941.
Original change's description:
> Migrate compat v4 classes to androidx
>
> Change-Id: I9dd1d4cbaaf0dc5c4dc8a7bd9155ae6334ab24af
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/480396
> Reviewed-by: Derek Sollenberger <djsollen@google.com>
> Commit-Queue: Ben Wagner <bungeman@google.com>
Change-Id: I660ba61a3a777e18154c52e8eda63937be4d7b4a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/507184
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Florin Malita <fmalita@google.com>
This to match the naming convention for skgpu::Device and the future
skgpu::Image.
Change-Id: Ide0448633f14cfcba583a24eaaceb24da8a58e90
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/507317
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>