From: Michel Dänzer Date: Fri, 5 Oct 2018 10:17:47 +0000 (+0200) Subject: st/dri: Handle BGRA5551 format X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e7e033ed8a9eaf3b568a84476c932845a10af795;p=mesa.git st/dri: Handle BGRA5551 format Reviewed-by: Marek Olšák --- diff --git a/src/gallium/state_trackers/dri/dri2.c b/src/gallium/state_trackers/dri/dri2.c index b17c5e16ede..4efc4334b65 100644 --- a/src/gallium/state_trackers/dri/dri2.c +++ b/src/gallium/state_trackers/dri/dri2.c @@ -101,6 +101,10 @@ static int convert_fourcc(int format, int *dri_components_p) { int dri_components; switch(format) { + case __DRI_IMAGE_FOURCC_ARGB1555: + format = __DRI_IMAGE_FORMAT_ARGB1555; + dri_components = __DRI_IMAGE_COMPONENTS_RGBA; + break; case __DRI_IMAGE_FOURCC_RGB565: format = __DRI_IMAGE_FORMAT_RGB565; dri_components = __DRI_IMAGE_COMPONENTS_RGB; @@ -187,6 +191,9 @@ static int convert_fourcc(int format, int *dri_components_p) static int convert_to_fourcc(int format) { switch(format) { + case __DRI_IMAGE_FORMAT_ARGB1555: + format = __DRI_IMAGE_FOURCC_ARGB1555; + break; case __DRI_IMAGE_FORMAT_RGB565: format = __DRI_IMAGE_FOURCC_RGB565; break; @@ -231,6 +238,9 @@ static enum pipe_format dri2_format_to_pipe_format (int format) enum pipe_format pf; switch (format) { + case __DRI_IMAGE_FORMAT_ARGB1555: + pf = PIPE_FORMAT_B5G5R5A1_UNORM; + break; case __DRI_IMAGE_FORMAT_RGB565: pf = PIPE_FORMAT_B5G6R5_UNORM; break; @@ -523,6 +533,9 @@ dri_image_drawable_get_buffers(struct dri_drawable *drawable, } switch (pf) { + case PIPE_FORMAT_B5G5R5A1_UNORM: + image_format = __DRI_IMAGE_FORMAT_ARGB1555; + break; case PIPE_FORMAT_B5G6R5_UNORM: image_format = __DRI_IMAGE_FORMAT_RGB565; break;