[PATCH 2/2] drm/virtio: Add support for XRGB8888 and BGRX8888
Jocelyn Falempe
jfalempe at redhat.com
Thu Aug 22 17:22:01 UTC 2024
On big endian machine, fbdev wants BGRX8888, but gnome/wayland wants
XRGB8888, which wasn't possible because virtio-gpu could only support
one format. Now that it's fixed, it can supports both.
Signed-off-by: Jocelyn Falempe <jfalempe at redhat.com>
---
drivers/gpu/drm/virtio/virtgpu_display.c | 6 ++++--
drivers/gpu/drm/virtio/virtgpu_plane.c | 6 ++++--
2 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/virtio/virtgpu_display.c b/drivers/gpu/drm/virtio/virtgpu_display.c
index 3f18ee0fd5155..023a9dfa4788a 100644
--- a/drivers/gpu/drm/virtio/virtgpu_display.c
+++ b/drivers/gpu/drm/virtio/virtgpu_display.c
@@ -321,8 +321,10 @@ virtio_gpu_user_framebuffer_create(struct drm_device *dev,
struct virtio_gpu_object *bo;
int ret;
- if (mode_cmd->pixel_format != DRM_FORMAT_HOST_XRGB8888 &&
- mode_cmd->pixel_format != DRM_FORMAT_HOST_ARGB8888)
+ if (mode_cmd->pixel_format != DRM_FORMAT_XRGB8888 &&
+ mode_cmd->pixel_format != DRM_FORMAT_ARGB8888 &&
+ mode_cmd->pixel_format != DRM_FORMAT_BGRX8888 &&
+ mode_cmd->pixel_format != DRM_FORMAT_BGRA8888)
return ERR_PTR(-ENOENT);
/* lookup object associated with res handle */
diff --git a/drivers/gpu/drm/virtio/virtgpu_plane.c b/drivers/gpu/drm/virtio/virtgpu_plane.c
index a72a2dbda031c..32fbe30b45a46 100644
--- a/drivers/gpu/drm/virtio/virtgpu_plane.c
+++ b/drivers/gpu/drm/virtio/virtgpu_plane.c
@@ -30,11 +30,13 @@
#include "virtgpu_drv.h"
static const uint32_t virtio_gpu_formats[] = {
- DRM_FORMAT_HOST_XRGB8888,
+ DRM_FORMAT_XRGB8888,
+ DRM_FORMAT_BGRX8888,
};
static const uint32_t virtio_gpu_cursor_formats[] = {
- DRM_FORMAT_HOST_ARGB8888,
+ DRM_FORMAT_ARGB8888,
+ DRM_FORMAT_BGRA8888,
};
uint32_t virtio_gpu_translate_format(uint32_t drm_fourcc)
--
2.46.0
More information about the dri-devel
mailing list