Open Bug 1680882 Opened 10 months ago Updated 9 months ago

WebRender misrenders gradients with large number of stops with small differences

Categories

(Core :: Graphics: WebRender, task)

task

Tracking

()

People

(Reporter: ntim, Unassigned)

References

Details

Attachments

(1 file)

See: https://twitter.com/layflags/status/1334611029779734531

FWIW, Firefox with Skia seems to be rendering this correctly. Not sure with D2D.

Web platform tests should be added to cover this particular case.

This should render the same as repeating-conic-gradient(white 0grad, white 1grad, black 1grad, black 2grad) or repeating-conic-gradient(white 0grad 1grad, black 1grad 2grad).

Seems like a problem only with WebRender (D2D is fine) for all gradient types.

Conic gradients: https://codepen.io/layflags/full/OJRMmMb

Radial gradients:
data:text/html;base64,PCFET0NUWVBFIGh0bWw+CiAgICA8aHRtbD4KICAgIDxoZWFkPgogICAgICA8dGl0bGU+UHJvdG90eXBlPC90aXRsZT4KICAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogICAgICA8c3R5bGU+CiAgICAgICAgLyogQ1NTICovCiAgICAgIDwvc3R5bGU+CiAgICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9hcXVhcmVsbGUvMS4wLjAvQXF1YXJlbGxlLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8L2hlYWQ+CiAgICA8Ym9keT4KICAgICAgPCEtLSBIVE1MIC0tPgogICAgICA8c2NyaXB0PgogICAgICAgIChmdW5jdGlvbigpewogICAgICAgICAgLy8gSlMKY29uc3QgZGF0YSA9IEFycmF5KDQwMCkKICAuZmlsbCgpCiAgLm1hcCgoeCwgaSkgPT4gYCR7aSAlIDIgPyAiYmxhY2siIDogIndoaXRlIn0gJHtpLzEwMH1weCAke2kgKyAxLzEwMH1weGApCiAgLmpvaW4oKTsKY29uc3QgZWxlbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwpjb25zdCBzdHlsZSA9IGBwb3NpdGlvbjpmaXhlZDt6LWluZGV4Ojk5OTk7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoJHtkYXRhfSlgOwpjb25zb2xlLmxvZyhzdHlsZSk7CmVsZW0uc3R5bGU9c3R5bGU7CmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbSk7CgogICAgICAgIH0pKCk7CiAgICAgIDwvc2NyaXB0PgogICAgPC9ib2R5PgogICAgPC9odG1sPgogICAg

Summary: WebRender misrenders https://codepen.io/layflags/full/OJRMmMb → WebRender misrenders
Summary: WebRender misrenders → WebRender misrender gradients with large number of stops with small differences
Summary: WebRender misrender gradients with large number of stops with small differences → WebRender misrenders gradients with large number of stops with small differences
Component: Graphics → Graphics: WebRender
Blocks: 1673300
Blocks: gfx-triage
No longer blocks: 1673300
Attached image chrome vs firefox
No longer blocks: gfx-triage
Severity: -- → S3
You need to log in before you can comment on or make changes to this bug.