Bug 1720893 Comment 0 Edit History

Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.

Most gradients are rendered via a cached render task and composited with the image shader. We limit the resolution of the cached gradients to 1024 pixels. Most gradients are only smooth transitions so the artifacts aren't very visible. However, when there are hard stops it can cause some very visible pixelation artifacts. Today this should only affect radial and conic gradients. 

There's a few bugs on file already for various cases revolving around the same root cause so I'm going to group them under this meta-bug.


Potential solutions:
 - Increase the maximum resolution for cached gradients with hard stops. Not really a fix per se but easy and might be enough.
 - Roll back to having brush shaders for radial and conic gradients in addition to the cached ones, and use them for large gradients with hard stops. That's the most correct route but our code isn't well organized for doing this wihout duplicating a large amount of code. It would be nice to refactor some of this tech debt beforehand if we go this route.
Edit: This started as a meta bug for pixelated gradients and ended up covering all gradient quality/correctness issues. Pixelated gradients are now tracked by bug 1889093.

----

Most gradients are rendered via a cached render task and composited with the image shader. We limit the resolution of the cached gradients to 1024 pixels. Most gradients are only smooth transitions so the artifacts aren't very visible. However, when there are hard stops it can cause some very visible pixelation artifacts. Today this should only affect radial and conic gradients. 

There's a few bugs on file already for various cases revolving around the same root cause so I'm going to group them under this meta-bug.


Potential solutions:
 - Increase the maximum resolution for cached gradients with hard stops. Not really a fix per se but easy and might be enough.
 - Roll back to having brush shaders for radial and conic gradients in addition to the cached ones, and use them for large gradients with hard stops. That's the most correct route but our code isn't well organized for doing this wihout duplicating a large amount of code. It would be nice to refactor some of this tech debt beforehand if we go this route.

Back to Bug 1720893 Comment 0