Message ID | 20230914013151.805363-1-Ken.Xue@amd.com |
---|---|
State | New |
Headers | show |
Series | ui: add XBGR8888 and ABGR8888 in drm_format_pixman_map | expand |
Cc'ing maintainers: $ ./scripts/get_maintainer.pl -f ui/qemu-pixman.c Gerd Hoffmann <kraxel@redhat.com> (odd fixer:Graphics) "Marc-André Lureau" <marcandre.lureau@redhat.com> (odd fixer:Graphics) On 14/9/23 03:31, Ken Xue wrote: > Android uses XBGR8888 and ABGR8888 as default scanout buffer, But qemu > does not support them for qemu_pixman_to_drm_format conversion within > virtio_gpu_create_dmabuf for virtio gpu. > > so, add those 2 formats into drm_format_pixman_map. > > Signed-off-by: Ken Xue <Ken.Xue@amd.com> > --- > include/ui/qemu-pixman.h | 4 ++++ > ui/qemu-pixman.c | 4 +++- > 2 files changed, 7 insertions(+), 1 deletion(-) > > diff --git a/include/ui/qemu-pixman.h b/include/ui/qemu-pixman.h > index 51f870932791..e587c48b1fde 100644 > --- a/include/ui/qemu-pixman.h > +++ b/include/ui/qemu-pixman.h > @@ -32,6 +32,8 @@ > # define PIXMAN_LE_r8g8b8 PIXMAN_b8g8r8 > # define PIXMAN_LE_a8r8g8b8 PIXMAN_b8g8r8a8 > # define PIXMAN_LE_x8r8g8b8 PIXMAN_b8g8r8x8 > +# define PIXMAN_LE_a8b8g8r8 PIXMAN_r8g8b8a8 > +# define PIXMAN_LE_x8b8g8r8 PIXMAN_r8g8b8x8 > #else > # define PIXMAN_BE_r8g8b8 PIXMAN_b8g8r8 > # define PIXMAN_BE_x8r8g8b8 PIXMAN_b8g8r8x8 > @@ -45,6 +47,8 @@ > # define PIXMAN_LE_r8g8b8 PIXMAN_r8g8b8 > # define PIXMAN_LE_a8r8g8b8 PIXMAN_a8r8g8b8 > # define PIXMAN_LE_x8r8g8b8 PIXMAN_x8r8g8b8 > +# define PIXMAN_LE_a8b8g8r8 PIXMAN_a8b8g8r8 > +# define PIXMAN_LE_x8b8g8r8 PIXMAN_x8b8g8r8 > #endif > > #define QEMU_PIXMAN_COLOR(r, g, b) \ > diff --git a/ui/qemu-pixman.c b/ui/qemu-pixman.c > index be00a96340d3..b43ec38bf0e9 100644 > --- a/ui/qemu-pixman.c > +++ b/ui/qemu-pixman.c > @@ -96,7 +96,9 @@ static const struct { > } drm_format_pixman_map[] = { > { DRM_FORMAT_RGB888, PIXMAN_LE_r8g8b8 }, > { DRM_FORMAT_ARGB8888, PIXMAN_LE_a8r8g8b8 }, > - { DRM_FORMAT_XRGB8888, PIXMAN_LE_x8r8g8b8 } > + { DRM_FORMAT_XRGB8888, PIXMAN_LE_x8r8g8b8 }, > + { DRM_FORMAT_XBGR8888, PIXMAN_LE_x8b8g8r8 }, > + { DRM_FORMAT_ABGR8888, PIXMAN_LE_a8b8g8r8 }, > }; > > pixman_format_code_t qemu_drm_format_to_pixman(uint32_t drm_format) > > base-commit: 9a8af699677cdf58e92ff43f38ea74bbe9d37ab0
On Thu, Sep 14, 2023 at 9:26 AM Ken Xue <Ken.Xue@amd.com> wrote: > > Android uses XBGR8888 and ABGR8888 as default scanout buffer, But qemu > does not support them for qemu_pixman_to_drm_format conversion within > virtio_gpu_create_dmabuf for virtio gpu. > > so, add those 2 formats into drm_format_pixman_map. > > Signed-off-by: Ken Xue <Ken.Xue@amd.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> > --- > include/ui/qemu-pixman.h | 4 ++++ > ui/qemu-pixman.c | 4 +++- > 2 files changed, 7 insertions(+), 1 deletion(-) > > diff --git a/include/ui/qemu-pixman.h b/include/ui/qemu-pixman.h > index 51f870932791..e587c48b1fde 100644 > --- a/include/ui/qemu-pixman.h > +++ b/include/ui/qemu-pixman.h > @@ -32,6 +32,8 @@ > # define PIXMAN_LE_r8g8b8 PIXMAN_b8g8r8 > # define PIXMAN_LE_a8r8g8b8 PIXMAN_b8g8r8a8 > # define PIXMAN_LE_x8r8g8b8 PIXMAN_b8g8r8x8 > +# define PIXMAN_LE_a8b8g8r8 PIXMAN_r8g8b8a8 > +# define PIXMAN_LE_x8b8g8r8 PIXMAN_r8g8b8x8 > #else > # define PIXMAN_BE_r8g8b8 PIXMAN_b8g8r8 > # define PIXMAN_BE_x8r8g8b8 PIXMAN_b8g8r8x8 > @@ -45,6 +47,8 @@ > # define PIXMAN_LE_r8g8b8 PIXMAN_r8g8b8 > # define PIXMAN_LE_a8r8g8b8 PIXMAN_a8r8g8b8 > # define PIXMAN_LE_x8r8g8b8 PIXMAN_x8r8g8b8 > +# define PIXMAN_LE_a8b8g8r8 PIXMAN_a8b8g8r8 > +# define PIXMAN_LE_x8b8g8r8 PIXMAN_x8b8g8r8 > #endif > > #define QEMU_PIXMAN_COLOR(r, g, b) \ > diff --git a/ui/qemu-pixman.c b/ui/qemu-pixman.c > index be00a96340d3..b43ec38bf0e9 100644 > --- a/ui/qemu-pixman.c > +++ b/ui/qemu-pixman.c > @@ -96,7 +96,9 @@ static const struct { > } drm_format_pixman_map[] = { > { DRM_FORMAT_RGB888, PIXMAN_LE_r8g8b8 }, > { DRM_FORMAT_ARGB8888, PIXMAN_LE_a8r8g8b8 }, > - { DRM_FORMAT_XRGB8888, PIXMAN_LE_x8r8g8b8 } > + { DRM_FORMAT_XRGB8888, PIXMAN_LE_x8r8g8b8 }, > + { DRM_FORMAT_XBGR8888, PIXMAN_LE_x8b8g8r8 }, > + { DRM_FORMAT_ABGR8888, PIXMAN_LE_a8b8g8r8 }, > }; > > pixman_format_code_t qemu_drm_format_to_pixman(uint32_t drm_format) > > base-commit: 9a8af699677cdf58e92ff43f38ea74bbe9d37ab0 > -- > 2.35.1 > >
diff --git a/include/ui/qemu-pixman.h b/include/ui/qemu-pixman.h index 51f870932791..e587c48b1fde 100644 --- a/include/ui/qemu-pixman.h +++ b/include/ui/qemu-pixman.h @@ -32,6 +32,8 @@ # define PIXMAN_LE_r8g8b8 PIXMAN_b8g8r8 # define PIXMAN_LE_a8r8g8b8 PIXMAN_b8g8r8a8 # define PIXMAN_LE_x8r8g8b8 PIXMAN_b8g8r8x8 +# define PIXMAN_LE_a8b8g8r8 PIXMAN_r8g8b8a8 +# define PIXMAN_LE_x8b8g8r8 PIXMAN_r8g8b8x8 #else # define PIXMAN_BE_r8g8b8 PIXMAN_b8g8r8 # define PIXMAN_BE_x8r8g8b8 PIXMAN_b8g8r8x8 @@ -45,6 +47,8 @@ # define PIXMAN_LE_r8g8b8 PIXMAN_r8g8b8 # define PIXMAN_LE_a8r8g8b8 PIXMAN_a8r8g8b8 # define PIXMAN_LE_x8r8g8b8 PIXMAN_x8r8g8b8 +# define PIXMAN_LE_a8b8g8r8 PIXMAN_a8b8g8r8 +# define PIXMAN_LE_x8b8g8r8 PIXMAN_x8b8g8r8 #endif #define QEMU_PIXMAN_COLOR(r, g, b) \ diff --git a/ui/qemu-pixman.c b/ui/qemu-pixman.c index be00a96340d3..b43ec38bf0e9 100644 --- a/ui/qemu-pixman.c +++ b/ui/qemu-pixman.c @@ -96,7 +96,9 @@ static const struct { } drm_format_pixman_map[] = { { DRM_FORMAT_RGB888, PIXMAN_LE_r8g8b8 }, { DRM_FORMAT_ARGB8888, PIXMAN_LE_a8r8g8b8 }, - { DRM_FORMAT_XRGB8888, PIXMAN_LE_x8r8g8b8 } + { DRM_FORMAT_XRGB8888, PIXMAN_LE_x8r8g8b8 }, + { DRM_FORMAT_XBGR8888, PIXMAN_LE_x8b8g8r8 }, + { DRM_FORMAT_ABGR8888, PIXMAN_LE_a8b8g8r8 }, }; pixman_format_code_t qemu_drm_format_to_pixman(uint32_t drm_format)
Android uses XBGR8888 and ABGR8888 as default scanout buffer, But qemu does not support them for qemu_pixman_to_drm_format conversion within virtio_gpu_create_dmabuf for virtio gpu. so, add those 2 formats into drm_format_pixman_map. Signed-off-by: Ken Xue <Ken.Xue@amd.com> --- include/ui/qemu-pixman.h | 4 ++++ ui/qemu-pixman.c | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) base-commit: 9a8af699677cdf58e92ff43f38ea74bbe9d37ab0