Marks can be used to remember the start of a writer, or a later position
(e.g. end) that it can advance to, compare and compute byte differences,
without exposing the underlying pointer to clients.
Change-Id: Ie8823fa1418002f9a5d645678f01c2cbf1a87acc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/496780
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
The skvm implementation of pow2 uses a clever bit-twiddling trick to
generate a floating-point value that can be cast to integer, then bit-
punned to float, to generate its result. However, the bit trick fails
for large inputs, and the bit-punning step generates a nonsense result.
This is now fixed by using a well-positioned clamp.
Change-Id: I55143a98324f5f518d0875149a0b6ce6d734ded0
Bug: skia:12847
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/497283
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Adds makeVertexWriter[AtLeast] and makeIndexWriter[AtLeast] wrappers
around the vertex-space virtuals. Updates call sites of those functions
that immediately passed the returned pointer into a VertexWriter ctor
to call the new function.
This is simplification that will make changing the ctor of VertexWriter
easier (to come in another CL).
Change-Id: I8f4f1a9bed71e368828a42ed798fa6a93030a765
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/496776
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Internally, SkSL breaks apart multiple vardecls into individual vardecls
wrapped inside an unscoped Block. Previously, the Debugger did not
properly distinguish a scoped Block from an unscoped one, and the
variables inside unscoped Block would be considered as "out-of-scope" as
soon as the unscoped Block was closed. This would make them vanish from
the Local Variables pane of the debugger at the end of the vardecl
statement.
(Note that this transformation also means that Step stops once for each
individual variable, but that isn't a big deal.)
Change-Id: I2ee2409e8556d77b58d7645658bd497f87c31e39
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/497278
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Bug: oss-fuzz:43699
Change-Id: Ie856aed03b513a4ea84a09deda6a05b95b086b07
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/496876
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Introduce PathOpSubmitter which handles submitting ops for paths.
Use this in all the different flavors of path sub runs.
Change-Id: I5d6ce06e7ffbe921eec4f05181d8fa84b49cf590
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/496879
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
On Windows, with depot_tools, git might be a batch file called
git.bat. Add that to the default search list to make it easier
to find a git command.
Change-Id: I825432e0f7fc72c37a1f2394a68e2f3f3e65f958
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/497056
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Dominik Röttsches <drott@google.com>
While working on the debugger, I realized that we had no interface for
getting the current line of any stack frame other than the currently-
executing frame. This can be useful for letting users explore the call
chain on the stack.
(While I was here, I also renamed `tidy` to `tidyState` in order to
match the Typescript implementation.)
Change-Id: Ife8c30d81adc17389a109698e3fba7f93e523e9e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/496886
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
The goals here are to:
reduce the use of magic numbers
make casts a bit safer
Bug: skia:12701
Change-Id: I6b1628fff4041bd0998060a757412b6a7260be1e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/496378
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Change-Id: Ib7cffcbdfdb6edf0816151c6dff5961365cabf61
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/496882
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
When transforming a for loop with multiple variable initializers, e.g.
for (int x = 0, y = 0; ...), we rewrite it to:
{ int x = 0; int y = 0; for (;...)
But we would keep the symbol table containing x and y attached to the
for loop. This means that while walking the code tree, we would run
into the declarations for x and y before running into the symbol table
containing them. This poses problems for the dehydrator, which would
fail when running into this construct. This fix simply moves the
symbol table to the containing block instead.
Change-Id: Ic806bbda19c954224a726b4a315f3102852e26b1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/494717
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
This update removes an unused field (the "slot" value was redundant,
since we always emitted arrays in order and there are no gaps). This CL
mostly exists to test out the ramifications of updating the trace
version and make sure things don't break when we do.
Change-Id: I456837db682b0085fc5afbbc0bcb62af3440c6e5
Bug: skia:12755
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/496607
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
SkVx.h attempted to not use vector instructions if SKNX_NO_SIMD was set.
However, this was incomplete and could lead to a wasm build with
SKNX_NO_SIMD still trying to use some vector instructions which are
not present if __wasm_simd128__ is defined.
This change requires some additional "include what you use" includes
since some other files were depending on SkVx.h including the vector
instruction headers.
Bug: cl/421848579
Change-Id: I6a878d64b76677a925b94724926c62f3e42ddd4c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/496313
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
This was added with d2ccc772d "Changes to public.bzl to support building
on iOS with objc_library bazel target." [0]. A recent test showed
nothing that breaks by removing this define, so try removing it now.
[0] https://codereview.chromium.org/1639443002
Change-Id: I9938e6a66b29e18332d9e7c4f60e2f2b2a5355ff
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/496606
Commit-Queue: Ben Wagner <bungeman@google.com>
Auto-Submit: Ben Wagner <bungeman@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
This eliminates a handful of useless statements. They were harmless, but
presumably this saves optimization work for the GLSL compiler.
(Patterned after http://review.skia.org/496377 )
Change-Id: Ibe135750488a9917b982dcac67f22b3765412ee1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/496599
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
These are harmless, but they can cause the Metal compiler to emit a
warning, and these warnings are making some logs messy for Flutter.
Change-Id: I21b7a3c9ae661c55bbbe8bc13d097966180e977d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/496377
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Avoids needless creation of nearly-identical programs. If someone ever
animated a two-point conical gradient, this was a disaster waiting to
happen.
Change-Id: I49008591fec703ef86eb331d7df87f3405ff15ee
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/496603
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
This will give us better control (or, at least, the ability to provide a
cleaner error) when we make schema changes.
Change-Id: I4e9a41dd9084647d1c2ceb1d7815b2942f4903ce
Bug: skia:12755
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/496602
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
This returns a string_view of the JSON string (via begin() and size()).
Change-Id: I5f92848f4dfdd2be034beb0e48f3fb651ee97640
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/496600
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Florin Malita <fmalita@google.com>
Commit-Queue: Florin Malita <fmalita@google.com>
The blend/compose shader's dump method will need to recursively call SkPaintParamsKey::DumpBlock
Bug: skia:12701
Change-Id: Iab7c26bf5410c2429e4932859b91d741caeed4b5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/496311
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Change-Id: Ic664ad0134d61dcf939dcf585a81d53e29c6afcc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/496597
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Bug: skia:12701
Change-Id: Ifa6b600b445a78f4ba936bf763adb2a5bf4d7542
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/496299
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Bug: skia:12701
Change-Id: I067a28939a2d92b54d76fa519b659bd54bc99906
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/496309
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Previously, cloning such a node would have dereferenced a null pointer.
Change-Id: Id2f8248b3bbe3233f14e93d1383c95ee45ad6fc7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/496376
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Bug: skia:12817
Change-Id: Id555b205a8d99b204f211c1a6f51a25f8124cdfb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/496298
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
The previous command line parsing was extremely limited and did not
allow us to easily add additional flags. This generalizes the parse so
that we are not dependent on fixed numbers of arguments in fixed
positions.
In the future we may be able to use CommandLineFlags, but right now it
doesn't completely support our needs.
Change-Id: I55bdc993e9ea71a85678d11b991dfc69e151b014
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/496098
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
* Added namespace for local functions, etc.
* Change variables to use Skia nameing
* add this->
* enhanced SkGlyph with setImage()
* move MapOps to where it is used
* move SkFuzzDeserializeSkDescriptor to be globally visible
Change-Id: Id15acde9d3c6a1b116cff3262ab6f6c62d171b16
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/496237
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Bug: skia:12701
Change-Id: Id6ce588c28413b32b864f22cec73a5e90a9ec376
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/494756
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
This binary triggers a compiler bug when built with ThinLTO. Opt it out
of LTO to workaround the breakage.
Change-Id: Idf23d384328d19c5a146375d466a568ed2f0a827
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/495596
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Derek Sollenberger <djsollen@google.com>
Bug: skia:12633
Change-Id: Id0bd892375e3a3e2886714f19b7fd8da2232e4e2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/479736
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
The SwiftShader OpenGL frontend is officially unsupported. They strictly
support their Vulkan frontend only.
Bug: skia:12218
Bug: skia:12820
Bug: skia:12826
Bug: skia:12829
Change-Id: Ib2e43783e18fcabfa2df9268c29bcd610350e5a2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/437149
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Christopher Dalton <csmartdalton@google.com>
The tests for these methods are only handled in Javascript, so the type
mismatches weren't detected until I tried using the calls in Typescript
later.
Change-Id: Ifb233f871be1146d3f059b166b7de40bb401d4c9
Bug: skia:12818
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/495417
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>
We've run into drivers a few times now that have bugs where they only
expose vkGetInstaneProcAddr and not vkGetDeviceProcAddr. The latest
being swiftshader (which is getting fixed). To avoid this issue in the
future we can just have our tests use vkGetInstanceProcAddr to get
vkGetDeviceProcAddr.
Change-Id: I6d73abde507519c145b873042393f50ce6c4527c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/494822
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Just a placeholder for now until we have a better sense of what we want.
Bug: skia:12817
Change-Id: I75a76cb990c5a63bd2eefb5916ead3bff6742739
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/494036
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
We shouldn't be trying to run the convex routine on known non-convex
polygons, and the offset routine only works for simple polygons.
Bug: oss-fuzz:43588
Change-Id: Ia1c73d05d7b1496c9d0599ee36eafe1d58684fd6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/494818
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
This leads to a crash when trying to precompile otherwise.
Change-Id: I40264b9ec09078214f2ff01837d4ff945742994a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/494820
Auto-Submit: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>