New issue
Advanced search Search tips

Issue 892711 link

Starred by 3 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocking:
issue 863890



Sign in to add a comment

GPU-rendered gradients use texture fallback under certain conditions

Project Member Reported by michaelludwig@google.com, Oct 5

Issue description

What steps will reproduce the problem?
(1) Specify a CSS gradient that has more than 8 intervals, with at least one hard stop to make it obvious
(2) Apply the gradient to a fairly large div so that it is stretched
(3) Notice the blurred edge of the hard stop

What is the expected result?

The gradient should have a non-blurred hard stop.

What happens instead?

While the GPU analytic gradient updates from https://skia-review.googlesource.com/c/skia/+/157569 fix many of the common gradient cases, it is limited to gradients that have less than 8 intervals (9 - 16 total colors). When exceeding these conditions, all platforms fall back to the prior texture gradient implementation. Gradients that have very small intervals rendered on platforms without 32-bit floats also fall back to the textured gradient, regardless of the color count.

--

This issue also tracks a number of older bugs that are now fixed in the common case, but can still occur if their examples are updated to use gradients that trigger the texture fallback: issues 414254, 696603, 729727, 796479

--

This is also the source of the rendering defect in issue 863890, which will go away automatically if the texture fallback is no longer needed.


 

Comment 1 Deleted

Comment 2 Deleted

Comment 3 Deleted

Comment 4 Deleted

Note that the blurred gradients found in issue 887971 are not caused by the texture fallback, but from where the gradient is rendered and how it is applied as a background image.

Sign in to add a comment