mirror of
https://github.com/torvalds/linux.git
synced 2026-10-11 12:58:02 +02:00
drm/virtio: Add pixel blend mode property to cursor plane
The cursor plane exposes a format with an alpha channel (DRM_FORMAT_ARGB8888) without a pixel blend mode property. Since commit860e748bdd("drm: ensure blend mode supported if pixel format with alpha exposed") this triggers a warning during drm_mode_config_validate(): [ 0.649020] ------------[ cut here ]------------ [ 0.649040] [PLANE:36:plane-1] pixel format with alpha exposed but blend mode not setup [ 0.649081] WARNING: drivers/gpu/drm/drm_mode_config.c:872 at drm_mode_config_validate ...... [ 0.649761] Call trace: [ 0.649764] drm_mode_config_validate+0x398/0x558 [drm] (P) [ 0.649912] drm_dev_register+0x1cc/0x2a0 [drm] [ 0.650058] virtio_gpu_probe+0xd4/0x1c0 [virtio_gpu] [ 0.650088] virtio_dev_probe+0x1c8/0x310 ...... [ 0.650261] ---[ end trace 0000000000000000 ]--- Create the property with the only supported blend mode, DRM_MODE_BLEND_PREMULTI, which is also the property's default and matches what userspace had to assume before the property existed. Fixes:860e748bdd("drm: ensure blend mode supported if pixel format with alpha exposed") Reported-by: Ye Liu <liuye@kylinos.cn> Signed-off-by: Shixiong Ou <oushixiong@kylinos.cn> Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com> Link: https://patch.msgid.link/20260828090123.784944-1-oushixiong1025@163.com
This commit is contained in:
parent
846b3c64fe
commit
6947b78df4
|
|
@ -589,6 +589,7 @@ struct drm_plane *virtio_gpu_plane_init(struct virtio_gpu_device *vgdev,
|
|||
struct drm_plane *plane;
|
||||
const uint32_t *formats;
|
||||
int nformats;
|
||||
int ret;
|
||||
|
||||
if (type == DRM_PLANE_TYPE_CURSOR) {
|
||||
formats = virtio_gpu_cursor_formats;
|
||||
|
|
@ -614,5 +615,17 @@ struct drm_plane *virtio_gpu_plane_init(struct virtio_gpu_device *vgdev,
|
|||
drm_plane_create_blend_mode_property(plane,
|
||||
BIT(DRM_MODE_BLEND_PREMULTI));
|
||||
|
||||
if (type == DRM_PLANE_TYPE_CURSOR) {
|
||||
/*
|
||||
* The cursor plane exposes a format with an alpha channel,
|
||||
* which requires a blend mode property. The host blends
|
||||
* premultiplied alpha, matching the property's default.
|
||||
*/
|
||||
ret = drm_plane_create_blend_mode_property(plane,
|
||||
BIT(DRM_MODE_BLEND_PREMULTI));
|
||||
if (ret)
|
||||
return ERR_PTR(ret);
|
||||
}
|
||||
|
||||
return plane;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user