This template is only used for GrBuffers now.
Change-Id: Ia9e95576b01124657e64007231fbc0a83276e13f
Reviewed-on: https://skia-review.googlesource.com/19484
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
No behavior change here, just using the safe, non-asserting API...
Change-Id: I982079a44dad311850b383d1ef44c6f0f4d3edea
Reviewed-on: https://skia-review.googlesource.com/19486
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
This fixes some correctness issues introduced by the previous workaround in MSAA gm images. It hopefully improves performance regressions introduced in MSAA benchmarks from calling glFlush.
A comment on the workaround is updated to indicate that the original line-drop-out bug was seen on the N5 running driver 127.0. It simply showed up in different GMs that on the N7 running 127.0
Bug: skia:6755
Change-Id: Ief066fd9b223c043a80e7fe07ff13aac07a48970
Reviewed-on: https://skia-review.googlesource.com/19481
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
This logically shouldn't change anything, but it does a bit:
- no diffs in 565
- sRGB and 8888 show minor diffs, only when unpremul is non-trivial
- f16 shows minor diffs all over, and major ones in shallow gradients
I think the shallow gradient diffs make sense. F16's high-precision is
being quantized down to a much narrower range (something like 10-40
values), so where the lines are drawn between sRGB bits will come down
to all sorts of things, especially rounding.
Change-Id: I156b7c613b73d6d6089221e61d0c529798ac1f9f
Reviewed-on: https://skia-review.googlesource.com/19449
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
This just cleans up an unused half->float entry point.
Change-Id: I7b869d3fd049d807453745c3cca4eab1162848d8
Reviewed-on: https://skia-review.googlesource.com/19451
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).
Please review the expectation changes, and LGTM+CQ.
More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
depot_tools:
https://crrev.com/59a74ed5585087e85ff4b7fa2ac18ef3648d05b0 Add cleanup dir, use with bot_update. (dnj@chromium.org)
Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I9021158a90cb8ba0c939a45c2d480271506da65b
Reviewed-on: https://skia-review.googlesource.com/19099
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
SkArithmeticMode is unreachable, so delete it
Bug: skia:
Change-Id: Ibe4c48fcf756280569c4b302da8d96bd4e21b717
Reviewed-on: https://skia-review.googlesource.com/19394
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Centralize the clamping in ClampIfNeeded, and switch it to clamp_1.
Change-Id: I056ac029d3ddc81e3f0f194f2b9c9924cad4caae
Reviewed-on: https://skia-review.googlesource.com/19401
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
This was relying on TextureSampler::proxy() which crashes if the proxy is not valid.
Bug: skia:
Change-Id: I8452f5cea3a71b5ced15259aede52a44ab152cf2
Reviewed-on: https://skia-review.googlesource.com/19403
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
enables lots of code to delete
CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD
Bug: skia:
Change-Id: I13631ead68a9232bd8c13c5ef54727f44def26ca
Reviewed-on: https://skia-review.googlesource.com/19278
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Reed <reed@google.com>
A recent change broke the case where the entire bezier is inside the
loop segment.
Bug: skia:4410
Change-Id: Ib534d459eaa4461d6760e894a8826e3019584ee8
Reviewed-on: https://skia-review.googlesource.com/19333
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
This began as cleaning up SkSpecialImage.h & spiraled out of control from there.
Change-Id: I9a570ecd2a7af9ee724ebfebe4e9185748f38bbc
Reviewed-on: https://skia-review.googlesource.com/19290
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Change-Id: Iaded9025a1518d8c69dbe366deb1035e0bd4295b
Reviewed-on: https://skia-review.googlesource.com/19289
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
Bug: skia:6457 skia:6401
Change-Id: I18e45617765aa55c3a2837bb735cefc3d93fad22
Reviewed-on: https://skia-review.googlesource.com/19273
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Bug: skia:
Change-Id: Ib9bd9083da1d8a9fa90ae7c710386e6903541fd5
Reviewed-on: https://skia-review.googlesource.com/18148
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Moves cubic root finding logic out of GrPathUtils and
PathOpsCubicIntersectionTest, and unifies it in SkGeometry.
"Normalizes" the homogeneous parameter values of the roots, rather
than the cubic inflection function. Does this normalization by
twiddling the exponents instead of division (which causes a loss of
precision).
Abandons the built-in derivatives in GrCubicEffect. These don't have
high enough precision on many mobile gpus. Instead we pass the KLM
matrix to the vertex shader via uniform, where we can use it to set up
new linear functionals from which the fragment shader can calculate
the gradient of the implicit function.
Bug: skia:4410
Change-Id: Ibd64e999520adc8cdef7803a492d3699995aef5a
Reviewed-on: https://skia-review.googlesource.com/19017
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Verified that this fixes the wrongness of a few of the colorImage
diffs in Gold.
Bug: skia:6738
Change-Id: Icf0b7573ccb87268b480d7cc0a6cfe6fa8ae73f7
Reviewed-on: https://skia-review.googlesource.com/19271
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Matt Sarett <msarett@google.com>
This was never fully integrated with our automated image testing.
I feel it has limited usefulness in terms of catching bugs.
Bug: skia:
Change-Id: Iecd0a4e9b664ab0b351debde45ada864379de7ec
Reviewed-on: https://skia-review.googlesource.com/19267
Reviewed-by: Leon Scroggins <scroggo@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>
This reverts commit eb86b70947.
Reason for revert: May be responsible for Command Buffer failure?
Original change's description:
> Handle too many (or too large) paths in GrDefaultPathRenderer
>
> PathGeoBuilder constructs the geometry with the same basic
> technique as before, but allows interrupting the process
> to emit multiple draws.
>
> Original test case was 2000 non-AA stroked circles, which
> created ~66000 vertices. That now renders, as do various
> tests with a single large path (as well as filled paths).
>
> TODO: I think that this could be extracted and re-used for
> MSAA path renderer without too much work? I need to read
> that code more carefully to make sure it lines up.
>
> Re-land of: https://skia-review.googlesource.com/18360
>
> Bug: skia:6695
> Change-Id: Ibdedeb0ea2570a8847ba42328588bd7203411573
> Reviewed-on: https://skia-review.googlesource.com/18983
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Brian Osman <brianosman@google.com>
TBR=bsalomon@google.com,robertphillips@google.com,brianosman@google.com
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:6695
Change-Id: I2cb010db502c315b3e2f7212818aea5503ecb28c
Reviewed-on: https://skia-review.googlesource.com/19270
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Bug: skia:6319
Change-Id: Id5ad27b4e85516dfdad0c127655e6272bc0a39ac
Reviewed-on: https://skia-review.googlesource.com/19089
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
The existing logic looks wrong to me:
- clamp premul to [0,1]
- unpremul, ignoring zero alpha
It seems like we should do:
- unpremul, avoiding any divide by zero
- clamp unpremul to [0,1]
Am I misunderstanding this or has this just always been wrong?
Change-Id: I9636b9566c746bc05371e1e660f4e59dde16827b
Reviewed-on: https://skia-review.googlesource.com/19264
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
PathGeoBuilder constructs the geometry with the same basic
technique as before, but allows interrupting the process
to emit multiple draws.
Original test case was 2000 non-AA stroked circles, which
created ~66000 vertices. That now renders, as do various
tests with a single large path (as well as filled paths).
TODO: I think that this could be extracted and re-used for
MSAA path renderer without too much work? I need to read
that code more carefully to make sure it lines up.
Re-land of: https://skia-review.googlesource.com/18360
Bug: skia:6695
Change-Id: Ibdedeb0ea2570a8847ba42328588bd7203411573
Reviewed-on: https://skia-review.googlesource.com/18983
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Bug: skia:6309
Change-Id: I354c678ca4e833c523a89b3196804fbe1adcf9d1
Reviewed-on: https://skia-review.googlesource.com/19087
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>