The code which sets up the Globals struct is separate from the code
which populates the struct. Occasionally, these two blocks of code do
not emit the same items in the same order. (e.g., global variables
without associated values do not get added to fInitNonConstGlobalVars,
so they are missing entirely from the globalStruct setup.)
Previously, globalStruct was initialized via this syntax:
Globals globalStruct{&a, b, c, d};
Which meant that any mismatch between the above two sections of code
would initialize the globals incorrectly.
Initialization now uses the following form, which should be forgiving
of any gaps or reordering, but will hopefully generate the same code
for a tightly-packed structure:
Globals globalStruct;
globalStruct.a = &a;
globalStruct.b = b;
globalStruct.c = c;
globalStruct.d = d;
This fixes the DM 'vertices_data_lerp' in Metal.
Change-Id: I793e3893a1a0f7db20de1006f7a9cb2ecca22d6b
Bug: skia:10287
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292729
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 is a reland of daa573eb91
Original change's description:
> Improve matrix construction abilities in Metal codegen.
>
> GLSL (and thus SkSL) is flexible about the input parameters to a matrix
> constructor. You can mix vectors and scalars freely, and it will
> populate them into your matrix as if it was a flat list of scalars.
>
> Metal does not natively support this, and requires the proper number of
> floatNs to be passed in. However, the Metal code generator will now emit
> constructor helper functions that will fix this up automatically.
>
> Additionally, this CL simplifies the Metal codegen for single-scalar
> matrix construction. This should create a matrix with the passed-in
> scalar running along the matrix diagonal. The Metal codegen previously
> emitted a helper function to do this work on our behalf. However,
> that's not necessary; Metal already contains a single-argument matrix
> constructor that will do this work automatically for us.
>
> Change-Id: I76901bfe167502797aa4cb98d0e8986d9ebc51e5
> Bug: skia:10280
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292477
> Auto-Submit: John Stiles <johnstiles@google.com>
> Commit-Queue: Brian Osman <brianosman@google.com>
> Reviewed-by: Brian Osman <brianosman@google.com>
> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Bug: skia:10280
Change-Id: If5591392bb96e1cfb643d4e3c19a0ee4affec58d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292689
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 is mostly about consolidating and removing use of
icu::UnicodeString. It was used mostly as an intermediary for
conversion, and the new conversions should make one fewer copy of the
data.
Change-Id: I1d0e5f0dc21c47ed7c80f456b9129c4c9a36b09a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292718
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
This is a simple safeguard to prevent against code that compiles
properly in full Skia builds, but fails in a SkSL standalone build.
A few SkASSERT(false) calls have been replaced with
SkDEBUGFAIL("message") in order to exercise the new call.
This CL should unblock
https://skia-review.googlesource.com/c/skia/+/292689
Change-Id: I83b0b9d28bd74c5cb1869510b0fb34792c6b2385
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292693
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Also enables ccpr and makes flags parsing more robust.
Change-Id: Ia98467403de87423a63167681b2ee635b0fa593a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292690
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
If ever CanvasKit accepts an array as a parameter, if the array
provided was produced by Malloc, CanvasKit will use the pointer
of that array and not free it after.
Change-Id: I4806a48e5e030edd787944f652984ea3516b3022
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292561
Reviewed-by: Nathaniel Nifong <nifong@google.com>
We can compute these directly, and avoid a whole extra matrix uniform
and multiply to get the same effect.
Change-Id: I25146932fd577f64567abee8df2c001a830ef78f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292574
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
A null clip represents no high-level clipping is necessary (the implicit
clip to the render target's logical dimensions is fine).
This also removes GrNoClip and GrFixedClip::Disabled() since they are
replaced with just nullptr.
By allowing nullptr to represent no intended clipping, it makes it easier
to require GrClip and GrAppliedClip objects to know about the dimensions
of the device. If we required a non-null clip object to represent no
clipping, we'd have to have an instance for each device based on its
size and that just became cumbersome.
Bug: skia:10205
Change-Id: Ie30cc71820b92d99356d393a4c98c8677082e761
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290539
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Most of the lines here are the result of running iwyu to get the right
includes after removing all the offending includes. A few constants need
to be had from the C api instead of the C++ API to make this work. The
SkParagraphTest and SkParagraphImpl are still using C++ API with
icu::UnicodeString, which will be cleaned up later.
Change-Id: I0f7f630d55bc600eaa8700c8b48758ee6af2c3fb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292676
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
1. Uses device coordinates instead of local coordinates
2. For both int and float variations, interleaves x and (x^y) instead of
x and y. This matches CPU backend and definition of ordered dithering.
Handling xor in float was a little tricky, but I don't think it's that
many more operations than the step/mod over vec4s from before. It's an
extra operation but restricted to vec2s.
I also updated the way the dither range was provided to the shader.
The float is returned directly from the dither_range_for_color_type function,
and embedded in the shader, instead of mapping from an int to the
appropriate range value. While doing this, I also updated the range value
to be used for 1010102 color types (matching the SkVMBlitter's range),
and a new, appropriate value for 16-bit colors. Float and half color
types now are not dithered at all (matching raster backend). Previously
these were all treated as a range of 1/255.
We can revisit the range choice before landing this CL if there was
history that made 1/255 a more visually pleasing choice for these high
bit depth color types.
Bug: skia:10290
Change-Id: Ia05c0b84be94efacb83cae295ed2177171c6b249
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292263
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Doesn't build with `skia_compile_processors = true`
This reverts commit daa573eb91.
Reason for revert: <INSERT REASONING HERE>
Original change's description:
> Improve matrix construction abilities in Metal codegen.
>
> GLSL (and thus SkSL) is flexible about the input parameters to a matrix
> constructor. You can mix vectors and scalars freely, and it will
> populate them into your matrix as if it was a flat list of scalars.
>
> Metal does not natively support this, and requires the proper number of
> floatNs to be passed in. However, the Metal code generator will now emit
> constructor helper functions that will fix this up automatically.
>
> Additionally, this CL simplifies the Metal codegen for single-scalar
> matrix construction. This should create a matrix with the passed-in
> scalar running along the matrix diagonal. The Metal codegen previously
> emitted a helper function to do this work on our behalf. However,
> that's not necessary; Metal already contains a single-argument matrix
> constructor that will do this work automatically for us.
>
> Change-Id: I76901bfe167502797aa4cb98d0e8986d9ebc51e5
> Bug: skia:10280
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292477
> Auto-Submit: John Stiles <johnstiles@google.com>
> Commit-Queue: Brian Osman <brianosman@google.com>
> Reviewed-by: Brian Osman <brianosman@google.com>
> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
TBR=brianosman@google.com,ethannicholas@google.com,johnstiles@google.com
Change-Id: I18610167e980eb1437842930deb9cc7509364f70
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:10280
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292573
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
The new loader works by checking for a "slide" flag, and if it ends in
".skp", then we treat the slide name as a URL and try to pull it in with
an HTTP request and parse it as an SkPicture.
It is the user's responsibility to copy or link skps into their
canvaskit server directory.
Change-Id: Iaafa84300d36d2d5a0bb29c47761ec67076c0f50
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292204
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
GLSL (and thus SkSL) is flexible about the input parameters to a matrix
constructor. You can mix vectors and scalars freely, and it will
populate them into your matrix as if it was a flat list of scalars.
Metal does not natively support this, and requires the proper number of
floatNs to be passed in. However, the Metal code generator will now emit
constructor helper functions that will fix this up automatically.
Additionally, this CL simplifies the Metal codegen for single-scalar
matrix construction. This should create a matrix with the passed-in
scalar running along the matrix diagonal. The Metal codegen previously
emitted a helper function to do this work on our behalf. However,
that's not necessary; Metal already contains a single-argument matrix
constructor that will do this work automatically for us.
Change-Id: I76901bfe167502797aa4cb98d0e8986d9ebc51e5
Bug: skia:10280
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292477
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Adds a simple system for the user to supply flags via the location hash.
e.g., "http://.../viewer.html#msaa:8"
Implements the msaa flag by rendering to a multisampled offscreen
framebuffer, then blitting it to the main canvas framebuffer.
Change-Id: I7f2b8b769e491f2169fd6b967a72a8ea9c8ffb8b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292199
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
This is how SkShaper_harfbuzz currently avoids using SkLoadICU when it
may not exist.
Change-Id: I4ff9a6dc4297db97481cce1de53da9921d47a4ad
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292566
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Weston Tracey <westont@google.com>
Bug: skia:10274
Change-Id: Ifb2ef8bf031e74d9d5c8183efe5aff4e6f3d2e7c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292562
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Change-Id: I6af3673a9dedf0a5acfbd588bfbbb447b5c68013
Bug: skia:9935
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292576
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Together with similar programs in other repositories, this helps find
disagreements between Chromium's, Skia's and Wuffs' image decoders.
Change-Id: I9a0d8aabb47b1d5bd29f9139755e76bf56ab4bbe
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290618
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
Most lines have one run in them, so avoid extra allocations in this
case. As a side effect, mark TextLine as moveable but not mem-movable.
The TextLine class used to be used as a mem-movable class, but the
addition of an SkSTArray made it non-mem-movable. Correct this and make
TextLine moveable and document its non-copyable nature. This avoids
ASAN use after free issues.
Change-Id: Icf45a464004e9f270ec46e1c2ddcf29fd356c90a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292441
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
ICU needs to be initialized, at least in the Windows build where the
data isn't statically linked. This should be done internally, and not as
an external requirement.
Change-Id: I796b67c6f0a84c75d1557631ff38cf58d1b6a236
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292440
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Julia Lavrova <jlavrova@google.com>
This makes it more obvious that these files really are part of
SkParagraph and integrate with the Skia test framework and are not part
of core Skia. This is more like how Skottie is setup and helps prevent
misunderstandings about where additional files like this should go and
how the build should be structured.
Change-Id: Iaac060c97cffd2b0c29833c7b0403521d91bdb6a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292439
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
This reverts commit be997df079.
Reason for revert: not sure SkSTArray is movable
Original change's description:
> prealloc space for a simple fRunsInVisualOrder
>
> Change-Id: I38e5ffbecdf5ca6870ccaccf43be149675a1d638
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/291972
> Reviewed-by: Ben Wagner <bungeman@google.com>
> Commit-Queue: Mike Reed <reed@google.com>
TBR=bungeman@google.com,herb@google.com,reed@google.com,jlavrova@google.com
Change-Id: Icddabe180d83ab0054ba5a5eebbe09e1fd5a15b4
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292556
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
5b4c627389..6a184fe947
2020-05-28 ynovikov@chromium.org Fix use_libfuzzer build
2020-05-27 cnorthrop@google.com docs: Update ANGLE for Android documentation
2020-05-27 kbr@chromium.org Emulate unsized depth/stencil textures on ES 3.0 without OES_depth_texture.
2020-05-27 tobine@google.com Vulkan:Initial worker thread disabled by default
2020-05-27 timvp@google.com Vulkan: Increase GLES support to 3.1
2020-05-27 jonahr@google.com GL: Support GL_OES_texture_cube_map_array in shader translator
2020-05-27 jonahr@google.com GL: Support GL_OES_texture_cube_map_array in frontend/GL backend
2020-05-27 ianelliott@google.com Vulkan: Rotate gl_FragCoord for Android pre-rotation
2020-05-27 nguyenmh@google.com Store non-string, non-enum data in binary file.
2020-05-27 gbiv@chromium.org translator: explicitly specify underlying types for enums
2020-05-27 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 79dcb2a5abbd to 9e718f962f87 (1 revision)
2020-05-27 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SPIRV-Tools from 9cb2571a184c to d3d89bb90cbd (2 revisions)
2020-05-27 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Vulkan-Loader from 3e390a159761 to 006586926ade (2 revisions)
2020-05-27 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Vulkan-Tools from 0c4ea014bf28 to 2bc4fcd9eba5 (3 revisions)
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 westont@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/+doc/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: chromium:1084580
Tbr: westont@google.com
Test: Test: CQ
Change-Id: I18cdad76242cb6ef262d4c65cfb1bea97d7db18f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292460
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
This is needed for the inline dither effect to use device coordinates
instead of local coords for dithering.
The builtin is not "in float4" because that trips up the runtime effect
assertions about what types of in variables are allowed.
Change-Id: I580fc461fdc9cbd812592b2571f51868a7a3ea4b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292262
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
If you used 'in float foo' in a runtime effect it would always have the
value cast to an int. I don't think we saw this in .fp files because
the cpp generation handled those values directly (if I remember correctly)
Just uses a union of float and int, differentiated by fKind, so that it
compiles in standalone mode (vs. using SkFloat2Bits, etc.).
Also updated to add a unit test.
Change-Id: I420f43d1b54638883af0b8df6ccba2416c587868
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292315
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Consider rendering an SkPicture to a 1080p, 4x msaa render target:
1920 * 1080 * (4 color bytes + 1 stencil byte) * 4 samples = 40Mb!
But SkCanvas::drawPicture calls saveLayer, which allocates a duplicate
render target:
40Mb * 2 = 80Mb!!
So with the original 96MB, a quite conservative msaa render target
almost blows out the entire resource cache just on the backing. This
CL bumps up the default cache size to 256MB.
Change-Id: I756c62f4ee6b9c62b1a3e535f31e15a1ecc3d63f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292265
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
This reverts commit 5f689779d2.
Reason for revert: Breaking housekeeper bot because it no longer compiles in standalone mode (skia_compile_processors = true in gn args)
Original change's description:
> Store float value for SkSL settings
>
> If you used 'in float foo' in a runtime effect it would always have the
> value cast to an int. I don't think we saw this in .fp files because
> the cpp generation handled those values directly (if I remember correctly)
>
> Change-Id: I336469eaad9c98fc9290f9a93dc6f0221ab5545a
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292261
> Commit-Queue: Brian Osman <brianosman@google.com>
> Auto-Submit: Michael Ludwig <michaelludwig@google.com>
> Reviewed-by: Brian Osman <brianosman@google.com>
TBR=brianosman@google.com,ethannicholas@google.com,michaelludwig@google.com
Change-Id: I1989765ecfd6a3d8ec674df4864c395cd8c70692
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292312
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
This reverts commit 2dd272bf15.
Reason for revert: breaking angle
Original change's description:
> Revert "Revert "SkSL function inlining""
>
> This reverts commit 1b63b4ac69.
>
> Change-Id: I8120bb10cecc6889f4f4fd7b4c3a61d250e49219
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/291358
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
TBR=bsalomon@google.com,brianosman@google.com,ethannicholas@google.com
# Not skipping CQ checks because this is a reland.
Change-Id: Ib3117efd1b77e97899e636bcbc4d84200118bc36
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292264
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Additionally, fixed up doxygen comment markers that were accidentally
in reverse order.
Change-Id: I498df30acb416dfd28f6c7508da0261de3b0919d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/291959
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
If you used 'in float foo' in a runtime effect it would always have the
value cast to an int. I don't think we saw this in .fp files because
the cpp generation handled those values directly (if I remember correctly)
Change-Id: I336469eaad9c98fc9290f9a93dc6f0221ab5545a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292261
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Additional minor cleanup:
- Removed temporary #define that was no longer in service.
Change-Id: Ib444ed4d4a5c0959d0b8642da676eb2b3db41b22
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/291897
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
This reverts commit 1b63b4ac69.
Change-Id: I8120bb10cecc6889f4f4fd7b4c3a61d250e49219
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/291358
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Bug: skia:10269
Change-Id: Id89fdeee92c23a2e207e7995a2e82d2cdac2365a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292236
Commit-Queue: Ravi Mistry <rmistry@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Following up on old bugs... might as well get this going.
Convert SkRasterPipelineBlitter's dither approach to match
SkVMBlitter and the GPU backend by dithering just after the
color filter, instead of just before storing to memory.
Bug: skia:10000
Change-Id: I5271706f707f553ef54d72ef029fd43331c2e25e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/291876
Commit-Queue: Mike Reed <reed@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
This reverts commit 4730f29993.
Reason for revert: Fix WIP
Original change's description:
> Revert "Simplify GrRTC::clean APIs"
>
> This reverts commit 6cbd7c2e57.
>
> Reason for revert: mac/generated files failures
>
> Original change's description:
> > Simplify GrRTC::clean APIs
> >
> > The CanClearFullscreen enum type is removed. Most usages of clear() had
> > kYes because a null scissor rect was provided, or had kNo because the
> > scissor was really critical to the behavior. A few places did provide a
> > scissor and kYes (e.g. for initializing the target).
> >
> > To simplify this, the public GrRTC has two variants of clear(). One with
> > only a color (for fullscreen clears), and one with a rect for partial
> > clears. The private API also adds a clearAtLeast() function that replaces
> > the several cases where we'd have a scissor but could expand to fullscreen.
> >
> > I find the current control flow in internalClear() to be hard to
> > follow (albeit I was the one to make it that way...), but later CLs
> > will improve it.
> >
> > Bug: skia:10205
> > Change-Id: I87cf8d688c58fbe58ee854fbc4ffe22482d969c6
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290256
> > Reviewed-by: Brian Salomon <bsalomon@google.com>
> > Commit-Queue: Michael Ludwig <michaelludwig@google.com>
>
> TBR=bsalomon@google.com,csmartdalton@google.com,michaelludwig@google.com
>
> Change-Id: I7131df6f5323f4f9c120cbcfd9bc57e627e2eb65
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: skia:10205
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/291842
> Reviewed-by: Michael Ludwig <michaelludwig@google.com>
> Commit-Queue: Michael Ludwig <michaelludwig@google.com>
# Not skipping CQ checks because this is a reland.
Bug: skia:10205
Change-Id: Id5db153d7c2500279cca8478818b66f67a53e143
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/291844
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>