Bug: chromium:1265766
Change-Id: Iae9281098c587dd54334f3fdbff157b37063277b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/467017
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
This means we don't have to have the JPEG headers around
even if we aren't building with JPEG enabled.
Change-Id: Icd6b3b88aef845511741ea77a0e8ce64ffd66f25
Bug: skia:12584
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/466765
Reviewed-by: Leon Scroggins <scroggo@google.com>
This is a reland of b95c83353f
Original change's description:
> [graphite] Fill in basic vertex and index buffers.
>
> Bug: skia:12466
> Change-Id: I2398fcabc6c797a0bfc2ebccc0289cbf8fd8c72f
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/466436
> Commit-Queue: Greg Daniel <egdaniel@google.com>
> Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Bug: skia:12466
Change-Id: Iac083c75d15f46ede1c8337da2914ad0161909e0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/466774
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Also fix some missing includes in:
- src/gpu/effects/GrPorterDuffXferProcessor.cpp
- src/gpu/GrDirectContext.cpp
- tools/DDLPromiseImageHelper.h
Change-Id: I1b30827e1442fd01534427b52549f8775300b365
Bug: skia:12584
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/466876
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
SkPDFDevice::drawPoints would usually draw nothing in perspective when
ScopedContentEntry could not be created due to perspective. Handle this
the same way as the path effect case by using draw_points to handle this
through the more general drawPaths which can flatten the perspective.
Bug: skia:12572
Change-Id: Ieaac4d6d99319b3d189b73fc316706c581d516e5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/466377
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
If our shaders pass a halfN uniform to Metal, we need to put SkHalf data
into the uniform buffer.
Change-Id: I92324715e7fb64f3b342fdf2c6994ebb86ba1773
Bug: skia:12339
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465756
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Uint was inconsistent--we had UByte and UShort, so ints should be UInt.
Change-Id: I71fdc3db902cdf62ab1de705dca2b0d069e9effb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/466499
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
I strongly suspect we no longer need this, since it's been 9 months.
More importantly, this number is just the modification time of the
idevice_id binary on the RPi image
(https://chrome-internal.googlesource.com/infradata/config/+/refs/heads/
main/configs/chromium-swarm/scripts/skia_mobile.py#1008), and that
number changes on the rpi2-* image, so leaving this here would prevent
any jobs from ever running on the machines we're moving to.
Change-Id: Id5c627a387b6cdadf721ef9838a1674a140a5f27
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/466766
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Commit-Queue: Erik Rose <erikrose@google.com>
It's possible to write code containing errors that are only apparent
once the inliner runs. For instance, a function which takes a short and
returns its negative it is valid for most inputs, but undefined for
-32768 (because +32768 does not fit in a short). A function which takes
floats and casts them to ints is valid for many inputs, but not valid if
you pass in 5 billion.
This CL restructures our out-of-range integer error detection to report
errors cleanly in these cases instead of asserting. It also refactors
the range checking code to be usable in situations where we don't yet
have a Literal expression.
Change-Id: I98f0be63bf9afbbf1ab90233fa86d380cfae42b4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/466439
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Pass inval controller and ctm to child nodes during revalidation.
Change-Id: Iee6862af78c77d5164e29b0e41ed6dae9a7f4235
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/466760
Auto-Submit: Florin Malita <fmalita@chromium.org>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Change-Id: I01d82447658c7acc5fe9eb230eb7020b49fa6c4f
Bug: skia:12498
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/466447
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Previously, the builtin was named gl_SecondaryFragColorEXT.
We shouldn't have SkSL built-ins with names that overlap GLSL builtins.
Change-Id: I11621023855df5373afb94da3796a107e8e4dd52
Bug: skia:12498
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/466177
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Bug: skia:12466
Change-Id: I2398fcabc6c797a0bfc2ebccc0289cbf8fd8c72f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/466436
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
This reverts commit ccb459d57b.
Reason for revert: Speculative - reverting this for now in case Chrome needs to revert the flag-flip.
Original change's description:
> Move alpha modulation into paint conversion (Step 2)
>
> With paint conversion changed, this CL cleans up several SkShader
> classes, based on the fact that input alpha will always be opaque.
>
> Bug: skia:11942
> Change-Id: I91c919a69b6dfe4fea40b799888dd6179defdd70
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/463799
> Reviewed-by: Michael Ludwig <michaelludwig@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Brian Osman <brianosman@google.com>
Bug: skia:11942
Change-Id: Ia6a7ac236e75f37df3bf0af235b2862fead3f523
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/466446
Auto-Submit: Brian Osman <brianosman@google.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
The code was original target for LLVM 10. I have updated it
to use LLVM 14. This does not fully complete the LLVM code because
there are still missing ops: array32, from_fp16, to_fp16,
load64, store64, load128, store128.
args.gn:
extra_cflags = [
"-DSKVM_LLVM",
"-isystem",
"../llvm-project/include",
]
extra_ldflags = [
"-L../llvm-project/lib",
"-lLLVM",
]
Running:
env DYLD_LIBRARY_PATH=/Users/herb/bin/llvm/lib ./out/SkVM-LLVM/dm
Change-Id: I79e3d3d62b29ed8bdad22890d4db5bc160ba4bf6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/460316
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Rather that recursively running Wang's formula and chopping, we run
Wang's once, divide by the maximum number of tessellation segments,
then chop in a flat loop. The next step will be to share this code
with other tessellators.
Bug: skia:12524
Change-Id: I6c5156f56885aee9f90b3be611fbef229740612d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465362
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
With paint conversion changed, this CL cleans up several SkShader
classes, based on the fact that input alpha will always be opaque.
Bug: skia:11942
Change-Id: I91c919a69b6dfe4fea40b799888dd6179defdd70
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/463799
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Long term plan is to expose a plugin (standalone or with bodymovin) that allows motion artists to write sksl into a composition.
This is the first step where we test how we'd read in the json data under the hood.
Change-Id: I300d3af5d01e12f5b495970f89fd12b5f464a9a1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/464368
Commit-Queue: Jorge Betancourt <jmbetancourt@google.com>
Reviewed-by: Florin Malita <fmalita@google.com>
This adds check to make sure that the results in the last
add of the lerp are in range. Also, Smooth out types.
Change-Id: I853835e530f6b6790e16464db12964d68ab9ef8d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/453718
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Herb Derby <herb@google.com>
This is a more cautious attempt of https://skia-review.googlesource.com/c/skia/+/464876
GrAlignTo renamed to SkAlignTo and moved to SkTypes.h
(with the rest of our align helpers).
GR_MAKE_BITFIELD_OPS and GR_DECL_BITFIELD_OPS_FRIENDS
renamed to SK_* and moved to private/SkMacros.h
This avoids our public includes using a src header file
and messing with SkUtils.h, which apparently was used
by Android. That should be cleaned up in a separate effort.
Change-Id: I86d5e1fb6a7834034534266a6c340bc7757f9abb
Bug: skia:12584
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/466176
Reviewed-by: Brian Osman <brianosman@google.com>
All the fields of GrSubRunNoCachePainter are const, so
this can be hoisted out of the loop instead of creating
a new one each loop.
Change-Id: Ib430ad27f5ee1804316b1bf7737e9de80dc2f7b7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465382
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Change-Id: I7512491f55c10118f0ab058500f6ce9b5b8545cd
Bug: oss-fuzz:40557
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/466296
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>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Change-Id: Id4d9e105f7a1b7ff2cd3bfc9b20cd2309c6aca84
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465394
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
This flag is no longer needed, so remove it and the code it protected.
Change-Id: I679eb3cb4cee81c4205309012931e134e108f232
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465696
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Change-Id: I87cc0e6d9dc60a0ceaf32c453d2278091ea3c5e5
Bug: skia:12339
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465393
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Change-Id: Ic657319cf4f3ba2c3c23e2923cf121138d16dbf2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/457397
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
In Metal on some GPUs, `test_for_preserving_PM_conversions` can fail
when half4s are used for premul conversion.
Change-Id: I95a737a88aa8f5a998e3201516900977d5223666
Bug: skia:12339
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465798
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Additionally, the default clip state was quick rejecting all the draws.
Bug: skia:12466
Change-Id: I8eaa95418bf24af2a5718c8cf21e97cdd7f80a34
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465476
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
This is a reland of 75e1f4c028
Original change's description:
> Lift recursive curve culling out of tessellators
>
> We need recursive chopping/culling logic in order to draw
> astronomically large paths. But rather than do that at the same time
> the tessellators chop curves, this CL moves that logic into an
> SkPath -> SkPath transformation that runs ahead of time (and only if
> the path is extremely large to begin with). This will enable us to
> remove recursion from the tessellators and quickly determine ahead of
> time the size of buffers they need.
>
> Bug: skia:12524
> Change-Id: Ib2800fb23054f1548501811203173e58273fbc83
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/463936
> Commit-Queue: Chris Dalton <csmartdalton@google.com>
> Reviewed-by: Greg Daniel <egdaniel@google.com>
Bug: skia:12524
Change-Id: Idf54f0c2bddaaddc9fc17bee99c910f3961682a5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465361
Reviewed-by: Greg Daniel <egdaniel@google.com>
Auto-Submit: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
This will hopefully improve performance on lower-end GPUs.
Change-Id: I9c2ee6dc31acd08bec0bfb5f59edc3cf90163f9e
Bug: skia:12339
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465078
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Change-Id: Ic30c48dce0cb0072f07defcdb0b9e60b94f50818
Bug: oss-fuzz:40479
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465392
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>
When the flag is disabled, everything works the same as before and all
uniforms are copied to buffers as 32-bit values. Enabling the flag will
cause shorts and halfs to be written to the uniform buffer as 16-bit
values (converting as needed).
Change-Id: I7e7c191f98b14b55a2587dc1499e8a6ff72f573c
Bug: skia:12339
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/464920
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Bug: skia:12466
Change-Id: Ia0da94fc300ab678712e9bb79a011694fea8595e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/464677
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
The iPhone 6 only has 1GB of RAM. (The iPhone 7 and 8 have 2GB.)
Change-Id: I4efd00f21feb9c7b6e42d99936989573d26acef3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/465390
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Erik Rose <erikrose@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Erik Rose <erikrose@google.com>