st/dri: add handling of R8 and GR88 DRI fourcc formats
This helps to import dmabuf buffers from DRM_FORMAT_R8 and DRM_FORMAT_GR88 used for example by GStreamer for YUV to RGB conversion using shaders. Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
This commit is contained in:
parent
e9d3246a7a
commit
9d852a1f75
|
@ -75,6 +75,14 @@ static int convert_fourcc(int format, int *dri_components_p)
|
|||
format = __DRI_IMAGE_FORMAT_XBGR8888;
|
||||
dri_components = __DRI_IMAGE_COMPONENTS_RGB;
|
||||
break;
|
||||
case __DRI_IMAGE_FOURCC_R8:
|
||||
format = __DRI_IMAGE_FORMAT_R8;
|
||||
dri_components = __DRI_IMAGE_COMPONENTS_R;
|
||||
break;
|
||||
case __DRI_IMAGE_FOURCC_GR88:
|
||||
format = __DRI_IMAGE_FORMAT_GR88;
|
||||
dri_components = __DRI_IMAGE_COMPONENTS_RG;
|
||||
break;
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
|
@ -100,6 +108,12 @@ static int convert_to_fourcc(int format)
|
|||
case __DRI_IMAGE_FORMAT_XBGR8888:
|
||||
format = __DRI_IMAGE_FOURCC_XBGR8888;
|
||||
break;
|
||||
case __DRI_IMAGE_FORMAT_R8:
|
||||
format = __DRI_IMAGE_FOURCC_R8;
|
||||
break;
|
||||
case __DRI_IMAGE_FORMAT_GR88:
|
||||
format = __DRI_IMAGE_FOURCC_GR88;
|
||||
break;
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
|
@ -123,6 +137,12 @@ static enum pipe_format dri2_format_to_pipe_format (int format)
|
|||
case __DRI_IMAGE_FORMAT_ABGR8888:
|
||||
pf = PIPE_FORMAT_RGBA8888_UNORM;
|
||||
break;
|
||||
case __DRI_IMAGE_FORMAT_R8:
|
||||
pf = PIPE_FORMAT_R8_UNORM;
|
||||
break;
|
||||
case __DRI_IMAGE_FORMAT_GR88:
|
||||
pf = PIPE_FORMAT_RG88_UNORM;
|
||||
break;
|
||||
default:
|
||||
pf = PIPE_FORMAT_NONE;
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue