Hi Thomas,

But does the host also support ARGB on the primary plane? We usually
> don't export formats that are not available in (virtual) hardware.


If you're asking about the hypervisor side providing the Virtual GPU,
Yes the host supports ARGB on primary plane. QEMU's virtio-gpu
supports this see qemu's include/hw/virtio/virtio-gpu-pixman.h:26
libkrun's virtio-gpu includes `B8G8R8A8_UNORM` in its
ResourceFormat enum and maps it to display backend formats.
Virglrenderer, which vhost-device-gpu also uses, maps
`GBM_FORMAT_ARGB8888` to `VIRGL_FORMAT_B8G8R8A8_UNORM`.
Other VMMs I've tested also support this format.

Also I see the cursor plane in the virtio-gpu driver already exposes
`DRM_FORMAT_HOST_ARGB8888`, confirming existing ARGB support
in backends. I tested this with the vhost-user-gpu backend from -
https://github.com/rust-vmm/vhost-device/tree/main/vhost-device-gpu
and the libkrun guest, glmark2-drm renders correctly with it.

BR,
Dorinda.


On Wed, Sep 30, 2026 at 5:04 PM Thomas Zimmermann <[email protected]>
wrote:

> Hi
>
> Am 30.09.26 um 15:27 schrieb Dorinda Bassey:
> > Add DRM_FORMAT_HOST_ARGB8888 to the list of supported formats for
> > virtio-gpu primary planes. Without this, glmark2-drm fails at
> > startup because it selects ARGB visual configs by default, which
> > don't match the XRGB-only plane capabilities. This causes
> > drmModeSetCrtc to fail with EINVAL.
>
> But does the host also support ARGB on the primary plane? We usually
> don't export formats that are not available in (virtual) hardware.
>
> Best regards
> Thomas
>
> >
> > The virtio_gpu_translate_format() function already handles
> > ARGB8888 translation to VIRTIO_GPU_FORMAT_B8G8R8A8_UNORM,
> > so this just exposes the existing capability to userspace.
> >
> > Signed-off-by: Dorinda Bassey <[email protected]>
> > ---
> >   drivers/gpu/drm/virtio/virtgpu_plane.c | 1 +
> >   1 file changed, 1 insertion(+)
> >
> > diff --git a/drivers/gpu/drm/virtio/virtgpu_plane.c
> b/drivers/gpu/drm/virtio/virtgpu_plane.c
> > index b422eba42a5f..5f0bc1b1931b 100644
> > --- a/drivers/gpu/drm/virtio/virtgpu_plane.c
> > +++ b/drivers/gpu/drm/virtio/virtgpu_plane.c
> > @@ -37,6 +37,7 @@
> >
> >   static const uint32_t virtio_gpu_formats[] = {
> >       DRM_FORMAT_HOST_XRGB8888,
> > +     DRM_FORMAT_HOST_ARGB8888,
> >   };
> >
> >   static const uint32_t virtio_gpu_cursor_formats[] = {
>
> --
> --
> Thomas Zimmermann
> Graphics Driver Developer
> SUSE Software Solutions Germany GmbH
> Frankenstr. 146, 90461 Nürnberg, Germany, www.suse.com
> GF: Stefan Gaiser, Jochen Jaser, Abhinav Puri, (HRB 36809, AG Nürnberg)
>
>
>

Reply via email to