st/dri2: Add buffer handling for BGR[A/X]1010102 formats.

Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
Mario Kleiner 2017-12-15 23:05:05 +01:00 committed by Marek Olšák
parent f52aa596d4
commit 893723a64b

View file

@ -405,10 +405,14 @@ dri2_drawable_get_buffers(struct dri_drawable *drawable,
* may occur as the stvis->color_format.
*/
switch(format) {
case PIPE_FORMAT_B10G10R10A2_UNORM:
case PIPE_FORMAT_BGRA8888_UNORM:
case PIPE_FORMAT_RGBA8888_UNORM:
depth = 32;
break;
case PIPE_FORMAT_B10G10R10X2_UNORM:
depth = 30;
break;
case PIPE_FORMAT_BGRX8888_UNORM:
case PIPE_FORMAT_RGBX8888_UNORM:
depth = 24;
@ -492,6 +496,12 @@ dri_image_drawable_get_buffers(struct dri_drawable *drawable,
case PIPE_FORMAT_RGBA8888_UNORM:
image_format = __DRI_IMAGE_FORMAT_ABGR8888;
break;
case PIPE_FORMAT_B10G10R10X2_UNORM:
image_format = __DRI_IMAGE_FORMAT_XRGB2101010;
break;
case PIPE_FORMAT_B10G10R10A2_UNORM:
image_format = __DRI_IMAGE_FORMAT_ARGB2101010;
break;
default:
image_format = __DRI_IMAGE_FORMAT_NONE;
break;
@ -538,6 +548,9 @@ dri2_allocate_buffer(__DRIscreen *sPriv,
case 32:
pf = PIPE_FORMAT_BGRA8888_UNORM;
break;
case 30:
pf = PIPE_FORMAT_B10G10R10X2_UNORM;
break;
case 24:
pf = PIPE_FORMAT_BGRX8888_UNORM;
break;