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) > > >
