This is mainly to make make MtlBackendContext available.
GrTypes has to go to GraphiteTypes due to a name collision with Types.h in in sktext.
Bug: skia:12466
Change-Id: If073d5540c3dbf3fbfb404808d80deab42c40aa6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/453497
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Bug: skia:12466
Change-Id: I2ba1f1541c273ba90032c93a92ed3770dc5b0080
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/453756
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Auto-Submit: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
6f19094398..a52c6df38a
Pick up fixes for component depth tracking.
Also ensure all build files are listed to simplify updating the build
when rolling. Add a check to the roll script to check for source files
listed multiple times.
Change-Id: I5aa5fb5246cd123019b43fe5207a47d9672752d0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/453576
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Updates SDC's state to be a current DL and a list of pending passes,
RenderPassTask then takes over the DrawPasses.
Does not rename SDC to DrawContext as discussed in 9/27 meeting.
Bug: skia:12466
Change-Id: I358d15bc93663729438e5b6f7163eee22dc6769f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/453296
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Bug: skia:12466
Change-Id: I83ebf7dbea0d67b3c121b011f62e7b729f5e5257
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/453577
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
A test of GREATER, as opposed to GEQUAL, allows us to avoid double
blends during stroking.
Change-Id: I1d39b54416934ee354146fe42c58299f00f7a6e9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/453616
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
This is now enforced using OWNERS
Change-Id: Iee0c639731376d7bc4c3deaa65ccadef3fae53f4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/445642
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Now that DSLParser is used for everything we can get rid of this
unused code.
Change-Id: I7b586a7d7a51ac9df7d2c52baa1f525233f489b9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/443076
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
RubberStamper won't +1 changes that modify include/*.h or other
non-trivial files, unless they are a clean revert.
Even after this change, someone on include/OWNERS will be needed
to verify actual API changes, one won't be able to just use
rubber-stamper to bypass the check.
Bug: skia:12124
Change-Id: I0e6af8b7e384c1013cf1d5b61bd8c3e55df0046e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/453484
Owners-Override: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Ravi Mistry <rmistry@google.com>
This reverts commit 65967ab2c9.
Reason for revert: used in Android - http://screen/3fk6K3RUWZG8x5f
Original change's description:
> Remove SkRuntimeShader::makeImage.
>
> We don't have any known users, and it no longer exposes anything that
> a user can't just do directly.
>
> Change-Id: Id653a6be3f265a2847b1670f3e6c054cf2d094a2
> Bug: skia:12482
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/453142
> Auto-Submit: John Stiles <johnstiles@google.com>
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: John Stiles <johnstiles@google.com>
Bug: skia:12482
Change-Id: I6cc2e79796f53c42e9f53b7d9927c853e7e2d71c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/453317
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Owners-Override: Kevin Lubick <kjlubick@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Bug: skia:12466
Change-Id: Ie949a17166b3ab5c529b74a6762c8a6f8ca8052f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/453061
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
This reverts commit ef96fa9e83.
Reason for revert: Breaks Chrome's pixel and layout tests.
Original change's description:
> lowp bilerp_clamp_8888
>
> Use scaling multipy, _mm_mulhrs_epi16(Intel) and vqrdmulhq_s16(ARM),
> to implement bilerp_8888_clamp.
>
> This CL results in 756usec to 590usec improvement for
> samplingoptions_filter_1_mipmap_0 on Intel. For ARM, this improvement
> is 1180usec -> 897usec.
>
> This CL introduces scaled_mult which takes fixed-point numbers on the
> interval [-1, 1) and returns a result which is rescaled to the
> interval [-1, 1).
>
> It also introduces the notion of constrained_add(I16, U16) where the
> result is guaranteed to be U16. This avoids moving to a 32-bit integer
> for during the computation.
>
> Change-Id: I410e494364039df63e5976f433f7e68355e9cfbf
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/443896
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Herb Derby <herb@google.com>
Change-Id: I715be7bdbb706725770560e49a4d9f0777d2c22b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/453256
Auto-Submit: Herb Derby <herb@google.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
We don't have any known users, and it no longer exposes anything that
a user can't just do directly.
Change-Id: Id653a6be3f265a2847b1670f3e6c054cf2d094a2
Bug: skia:12482
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/453142
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
368e957887..6f19094398
With HarfBuzz past 3.0.0 the subsetter API is now public and stable.
Also add a roll script to ease rolling.
Change-Id: I206b54a38321e8887bdaee5778079b4d0e560ba9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/453097
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Change-Id: I1affffe2fbc2f38a99d43485ec112a4809b8cac4
Bug: skia:12482
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/453141
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>
This reverts commit cc91452f0a.
Change-Id: I7eff0ddeebef4ce298893f9b3ba410b09647e9a4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/453138
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
This reverts commit a909dd6b8d.
Turns out those reportPendingErrors() calls I removed were in fact
necessary, just not on any of the CQ bots.
Change-Id: I8be0898ac0b41dbb703a35f705cac06ca716c0b7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/453077
Reviewed-by: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
The Skia build of HarfBuzz does not use ICU, so there is no need to
initialize it. If a user uses a HarfBuzz build which does use ICU, they
will need enuse that ICU is initialized in their own way.
Change-Id: I89bd518dbf3c58aaaee2463a26d6402738dfbf97
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/453140
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Use scaling multipy, _mm_mulhrs_epi16(Intel) and vqrdmulhq_s16(ARM),
to implement bilerp_8888_clamp.
This CL results in 756usec to 590usec improvement for
samplingoptions_filter_1_mipmap_0 on Intel. For ARM, this improvement
is 1180usec -> 897usec.
This CL introduces scaled_mult which takes fixed-point numbers on the
interval [-1, 1) and returns a result which is rescaled to the
interval [-1, 1).
It also introduces the notion of constrained_add(I16, U16) where the
result is guaranteed to be U16. This avoids moving to a 32-bit integer
for during the computation.
Change-Id: I410e494364039df63e5976f433f7e68355e9cfbf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/443896
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
This is a reland of be0e255c3e
Original change's description:
> Add OWNERS to include (and include/private) to enforce API review
>
> Change-Id: I3ae83fbdcb4b3b13150df8b6a6461c36cbeaa55e
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/445641
> Reviewed-by: Ravi Mistry <rmistry@google.com>
> Reviewed-by: Kevin Lubick <kjlubick@google.com>
> Commit-Queue: Brian Osman <brianosman@google.com>
Change-Id: I090456a05128865bc134b9c4df4e5ffcb5d0e1dc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/450479
Commit-Queue: Ravi Mistry <rmistry@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Some group effects (including layer opacity) are not applied upfront,
via an expensive saveLayer, but are deferred until we can determine
whether they can be folded into an atomic draw's paint (to avoid the
extra layer).
At the moment, the MotionTile custom render node drops all pending
paint effects on the floor (ignores |ctx|). Update to apply via the
shader paint.
Also update a couple of related tests to animate opacity.
Change-Id: I1f5cd2459ec81b170749528e8818d0be598a7ca7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/452723
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Jorge Betancourt <jmbetancourt@google.com>
We no longer clamp colors to premul. Updated the examples and
explanation.
Bug: skia:12483
Change-Id: Idb0eec3ac1db5f81c657104093fa8a647529209a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/453137
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Bug: skia:12478
Change-Id: I4e2bc1eb441c19d7b4cf2bcea65b852f7f0aa59b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/453136
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
Prereq changes have landed in chrome.
Bug: skia:11809
Change-Id: Id727cd4146104ef93c682f495b4ed37e793a5aa1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/453076
Commit-Queue: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Auto-Submit: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
The current HueSaturation effect implementation relies on a simple
HSLA color matrix operation and assumes the controls are linear.
Turns out AE's saturation is more sophisticated, both in implementation
and in control mapping.
Updating the effect to use a chain of specialized color filters:
- keep HSLAMatrix() for hue adjustments
- introduce a custom runtime effect for saturation
(following AE's semantics)
- use a plain Matrix() CF for lightness adjustments
Change-Id: Iba6c9f7fd8c01dc33c1cd00822ea546867c057ac
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/452976
Commit-Queue: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Renames SDCTask -> RenderPassTask and adds comments describing its
purpose. Has SDC use a DrawList and expose similar drawing functions.
Stubs out all Device methods that will eventually need to be supported,
but groups them into in-scope and out-of-scope sections. Implements the
drawing functions in terms of drawPath() and has drawPath() invoke the
SDC functions (with untested support for path effects, hairline, etc.).
Bug: skia:12466
Change-Id: Id661fc987aeb35f0dfa536c0cb0b6210742cf32c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/452233
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Bug: skia:12466
Change-Id: I51dc73a213e672578767b41c01c487c942465964
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/452722
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Change-Id: Ibb4155f507ee6b9c61438cbff1aa50adf3ca724a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/452796
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
This removes SkSLParser from the last code path where it was still in
use, now instead using DSLParser for module loading.
Change-Id: I3858729ee2949e2900f0bcfc3f622aa4b5ef3d5d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/452719
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
This is a reland of 949dfb5ffd
Original change's description:
> Use a single FBO for EXT_multisampled_render_to_texture targets
>
> Uses a single FBO and changes the attachments based on whether we need
> multisample or not. This is an effort to work around presumed driver
> bugs from having the same texture bound to different FBOs with different
> sample counts.
>
> Bug: chromium:1222095
> Change-Id: I1347a149524be95181a4d3fb0a0da7bfe92a2ec9
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/442737
> Commit-Queue: Jim Van Verth <jvanverth@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>
Change-Id: I678ae8b5f7a3e8cca354526a47c9edb822607a38
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/452317
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Bug: skia:12466
Change-Id: I8cfbd2b61819cb55b4fa70cfcfe523dbcb903fd8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/452725
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Bug: skia:12466
Change-Id: I30b53802d706406faf8045264c09a75ee3bf9126
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/452232
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Right now the crop image filter is hidden in src/ and is only used in
a new GM to test out its functionality. In later CLs the plan will be to
migrate individual filter effects away from the built-in crop rect to
composing themselves with this image filter.
Eventually, the crop filter will be made public as part of the
SkImageFilters factories so there can be independent control on input
and output cropping. Its features will also be expanded to support more
tile modes than just kDecal.
Once all other effects rely on this crop filter, the legacy system can
be deleted and the effects can be more easily updated to the rest of the
new image filter API. This crop filter is actually the first image
filter to be implemented only in terms of the new API (and skif coord
space types). This highlighted a few pain points that still exist in
terms of the API, where I have added comments to capture how they could
be improved. Unfortunately, they aren't addressable until the rest of
the implementations have been migrated.
Bug: skia:9296
Change-Id: I12e96b679c246a9ec4e1e61f640414a11f1b6bb5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/451597
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>