dix: Work around non-premultiplied ARGB cursor data harder
Turns out some apps (e.g. the Civilization VI game) use non-premultiplied cursor data which doesn't have any pixels with 0 alpha but non-0 non-alpha, but can still result in visual artifacts. This uses the method suggested by Kamil in https://bugs.freedesktop.org/92309#c19: check for pixels where any colour component value is larger than the alpha value, which isn't possible with premultiplied alpha. There can still be non-premultiplied data which won't be caught by this, but that should result in slightly incorrect colours and/or blending at the worst, not wildly incorrect colours such as shown in the bug report below. Bugzilla: https://bugs.freedesktop.org/108355 Suggested-by: Kamil Paral <kamil.paral@gmail.com>
parent
248d164e
Loading
Loading
Pipeline
#6813
passed
with stage
in
2 minutes and 28 seconds
Loading
-
mentioned in merge request !67 (merged)
-
mentioned in commit 6ef025a8
Please register or sign in to comment