minigbm: Switch to <drm_fourcc.h>
We were duplicating formats. The original rationale behind this was
DRV_FORMAT_* would be a superset of Android and DRM formats. However,
there are only 2 HAL flexible formats not defined by DRM, and we can
deal with these easily. The DRM format namespace is large enough to
handle any additions we may need.
BUG=NONE
TEST=Ran graphics_Gbm,
arc-cros-gralloc still builds
Change-Id: Ie173eee6ac6926947a3b98c3ae809e38a0ea8014
Reviewed-on: https://chromium-review.googlesource.com/405790
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
This commit is contained in:
parent
c746dca555
commit
f3b22da397
25 changed files with 249 additions and 453 deletions
10
amdgpu.c
10
amdgpu.c
|
|
@ -346,12 +346,12 @@ const struct backend backend_amdgpu = {
|
|||
.bo_destroy = drv_gem_bo_destroy,
|
||||
.format_list = {
|
||||
/* Linear support */
|
||||
{DRV_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_LINEAR},
|
||||
{DRV_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR},
|
||||
{DRM_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_LINEAR},
|
||||
{DRM_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR},
|
||||
/* Blocklinear support */
|
||||
{DRV_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_RENDERING},
|
||||
{DRV_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_RENDERING},
|
||||
{DRV_FORMAT_XBGR8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_RENDERING},
|
||||
{DRM_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_RENDERING},
|
||||
{DRM_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_RENDERING},
|
||||
{DRM_FORMAT_XBGR8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_RENDERING},
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
10
cirrus.c
10
cirrus.c
|
|
@ -14,10 +14,10 @@ const struct backend backend_cirrus =
|
|||
.bo_destroy = drv_dumb_bo_destroy,
|
||||
.bo_map = drv_dumb_bo_map,
|
||||
.format_list = {
|
||||
{DRV_FORMAT_RGB888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING},
|
||||
{DRV_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING},
|
||||
{DRV_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR},
|
||||
{DRV_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING},
|
||||
{DRV_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR},
|
||||
{DRM_FORMAT_RGB888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING},
|
||||
{DRM_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING},
|
||||
{DRM_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR},
|
||||
{DRM_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING},
|
||||
{DRM_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR},
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ static struct cros_gralloc_bo *cros_gralloc_bo_create(struct driver *drv,
|
|||
int format, int usage)
|
||||
{
|
||||
uint64_t drv_usage;
|
||||
drv_format_t drv_format;
|
||||
uint32_t drv_format;
|
||||
struct cros_gralloc_bo *bo;
|
||||
|
||||
drv_format = cros_gralloc_convert_format(format);
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ uint64_t cros_gralloc_convert_flags(int flags)
|
|||
return usage;
|
||||
}
|
||||
|
||||
drv_format_t cros_gralloc_convert_format(int format)
|
||||
uint32_t cros_gralloc_convert_format(int format)
|
||||
{
|
||||
/*
|
||||
* Conversion from HAL to fourcc-based DRV formats based on
|
||||
|
|
@ -65,24 +65,24 @@ drv_format_t cros_gralloc_convert_format(int format)
|
|||
|
||||
switch (format) {
|
||||
case HAL_PIXEL_FORMAT_BGRA_8888:
|
||||
return DRV_FORMAT_ARGB8888;
|
||||
return DRM_FORMAT_ARGB8888;
|
||||
case HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED:
|
||||
return DRV_FORMAT_FLEX_IMPLEMENTATION_DEFINED;
|
||||
return DRM_FORMAT_FLEX_IMPLEMENTATION_DEFINED;
|
||||
case HAL_PIXEL_FORMAT_RGB_565:
|
||||
return DRV_FORMAT_RGB565;
|
||||
return DRM_FORMAT_RGB565;
|
||||
case HAL_PIXEL_FORMAT_RGB_888:
|
||||
return DRV_FORMAT_RGB888;
|
||||
return DRM_FORMAT_RGB888;
|
||||
case HAL_PIXEL_FORMAT_RGBA_8888:
|
||||
return DRV_FORMAT_ABGR8888;
|
||||
return DRM_FORMAT_ABGR8888;
|
||||
case HAL_PIXEL_FORMAT_RGBX_8888:
|
||||
return DRV_FORMAT_XBGR8888;
|
||||
return DRM_FORMAT_XBGR8888;
|
||||
case HAL_PIXEL_FORMAT_YCbCr_420_888:
|
||||
return DRV_FORMAT_FLEX_YCbCr_420_888;
|
||||
return DRM_FORMAT_FLEX_YCbCr_420_888;
|
||||
case HAL_PIXEL_FORMAT_YV12:
|
||||
return DRV_FORMAT_YVU420;
|
||||
return DRM_FORMAT_YVU420;
|
||||
}
|
||||
|
||||
return DRV_FORMAT_NONE;
|
||||
return DRM_FORMAT_NONE;
|
||||
}
|
||||
|
||||
static int32_t cros_gralloc_query_rendernode(struct driver **drv,
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ constexpr uint32_t sw_write(void)
|
|||
|
||||
uint64_t cros_gralloc_convert_flags(int flags);
|
||||
|
||||
drv_format_t cros_gralloc_convert_format(int format);
|
||||
uint32_t cros_gralloc_convert_format(int format);
|
||||
|
||||
int32_t cros_gralloc_rendernode_open(struct driver **drv);
|
||||
|
||||
|
|
|
|||
|
|
@ -306,7 +306,7 @@ static int cros_gralloc_lock_ycbcr(struct gralloc_module_t const* module,
|
|||
offsets[p] = drv_bo_get_plane_offset(bo->bo, p);
|
||||
|
||||
switch (hnd->data.format) {
|
||||
case DRV_FORMAT_NV12:
|
||||
case DRM_FORMAT_NV12:
|
||||
ycbcr->y = addr;
|
||||
ycbcr->cb = addr + offsets[1];
|
||||
ycbcr->cr = addr + offsets[1] + 1;
|
||||
|
|
@ -314,7 +314,7 @@ static int cros_gralloc_lock_ycbcr(struct gralloc_module_t const* module,
|
|||
ycbcr->cstride = drv_bo_get_plane_stride(bo->bo, 1);
|
||||
ycbcr->chroma_step = 2;
|
||||
break;
|
||||
case DRV_FORMAT_YVU420:
|
||||
case DRM_FORMAT_YVU420:
|
||||
ycbcr->y = addr;
|
||||
ycbcr->cb = addr + offsets[2];
|
||||
ycbcr->cr = addr + offsets[1];
|
||||
|
|
@ -322,7 +322,7 @@ static int cros_gralloc_lock_ycbcr(struct gralloc_module_t const* module,
|
|||
ycbcr->cstride = drv_bo_get_plane_stride(bo->bo, 1);
|
||||
ycbcr->chroma_step = 1;
|
||||
break;
|
||||
case DRV_FORMAT_UYVY:
|
||||
case DRM_FORMAT_UYVY:
|
||||
ycbcr->y = addr + 1;
|
||||
ycbcr->cb = addr;
|
||||
ycbcr->cr = addr + 2;
|
||||
|
|
|
|||
120
drv.c
120
drv.c
|
|
@ -164,12 +164,12 @@ drv_get_name(struct driver *drv)
|
|||
return drv->backend->name;
|
||||
}
|
||||
|
||||
int drv_is_format_supported(struct driver *drv, drv_format_t format,
|
||||
int drv_is_format_supported(struct driver *drv, uint32_t format,
|
||||
uint64_t usage)
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
if (format == DRV_FORMAT_NONE || usage == DRV_BO_USE_NONE)
|
||||
if (format == DRM_FORMAT_NONE || usage == DRV_BO_USE_NONE)
|
||||
return 0;
|
||||
|
||||
for (i = 0 ; i < ARRAY_SIZE(drv->backend->format_list); i++)
|
||||
|
|
@ -186,7 +186,7 @@ int drv_is_format_supported(struct driver *drv, drv_format_t format,
|
|||
}
|
||||
|
||||
struct bo *drv_bo_new(struct driver *drv, uint32_t width, uint32_t height,
|
||||
drv_format_t format)
|
||||
uint32_t format)
|
||||
{
|
||||
|
||||
struct bo *bo;
|
||||
|
|
@ -210,7 +210,7 @@ struct bo *drv_bo_new(struct driver *drv, uint32_t width, uint32_t height,
|
|||
}
|
||||
|
||||
struct bo *drv_bo_create(struct driver *drv, uint32_t width, uint32_t height,
|
||||
drv_format_t format, uint64_t flags)
|
||||
uint32_t format, uint64_t flags)
|
||||
{
|
||||
int ret;
|
||||
size_t plane;
|
||||
|
|
@ -443,12 +443,12 @@ uint64_t drv_bo_get_plane_format_modifier(struct bo *bo, size_t plane)
|
|||
return bo->format_modifiers[plane];
|
||||
}
|
||||
|
||||
drv_format_t drv_bo_get_format(struct bo *bo)
|
||||
uint32_t drv_bo_get_format(struct bo *bo)
|
||||
{
|
||||
return bo->format;
|
||||
}
|
||||
|
||||
drv_format_t drv_resolve_format(struct driver *drv, drv_format_t format)
|
||||
uint32_t drv_resolve_format(struct driver *drv, uint32_t format)
|
||||
{
|
||||
if (drv->backend->resolve_format)
|
||||
return drv->backend->resolve_format(format);
|
||||
|
|
@ -471,8 +471,8 @@ int drv_stride_from_format(uint32_t format, uint32_t width, size_t plane)
|
|||
*/
|
||||
if (plane != 0) {
|
||||
switch (format) {
|
||||
case DRV_FORMAT_NV12:
|
||||
case DRV_FORMAT_YVU420:
|
||||
case DRM_FORMAT_NV12:
|
||||
case DRM_FORMAT_YVU420:
|
||||
stride = stride / 2;
|
||||
break;
|
||||
}
|
||||
|
|
@ -484,57 +484,57 @@ int drv_stride_from_format(uint32_t format, uint32_t width, size_t plane)
|
|||
size_t drv_num_planes_from_format(uint32_t format)
|
||||
{
|
||||
switch (format) {
|
||||
case DRV_FORMAT_C8:
|
||||
case DRV_FORMAT_R8:
|
||||
case DRV_FORMAT_RG88:
|
||||
case DRV_FORMAT_GR88:
|
||||
case DRV_FORMAT_RGB332:
|
||||
case DRV_FORMAT_BGR233:
|
||||
case DRV_FORMAT_XRGB4444:
|
||||
case DRV_FORMAT_XBGR4444:
|
||||
case DRV_FORMAT_RGBX4444:
|
||||
case DRV_FORMAT_BGRX4444:
|
||||
case DRV_FORMAT_ARGB4444:
|
||||
case DRV_FORMAT_ABGR4444:
|
||||
case DRV_FORMAT_RGBA4444:
|
||||
case DRV_FORMAT_BGRA4444:
|
||||
case DRV_FORMAT_XRGB1555:
|
||||
case DRV_FORMAT_XBGR1555:
|
||||
case DRV_FORMAT_RGBX5551:
|
||||
case DRV_FORMAT_BGRX5551:
|
||||
case DRV_FORMAT_ARGB1555:
|
||||
case DRV_FORMAT_ABGR1555:
|
||||
case DRV_FORMAT_RGBA5551:
|
||||
case DRV_FORMAT_BGRA5551:
|
||||
case DRV_FORMAT_RGB565:
|
||||
case DRV_FORMAT_BGR565:
|
||||
case DRV_FORMAT_YUYV:
|
||||
case DRV_FORMAT_YVYU:
|
||||
case DRV_FORMAT_UYVY:
|
||||
case DRV_FORMAT_VYUY:
|
||||
case DRV_FORMAT_RGB888:
|
||||
case DRV_FORMAT_BGR888:
|
||||
case DRV_FORMAT_XRGB8888:
|
||||
case DRV_FORMAT_XBGR8888:
|
||||
case DRV_FORMAT_RGBX8888:
|
||||
case DRV_FORMAT_BGRX8888:
|
||||
case DRV_FORMAT_ARGB8888:
|
||||
case DRV_FORMAT_ABGR8888:
|
||||
case DRV_FORMAT_RGBA8888:
|
||||
case DRV_FORMAT_BGRA8888:
|
||||
case DRV_FORMAT_XRGB2101010:
|
||||
case DRV_FORMAT_XBGR2101010:
|
||||
case DRV_FORMAT_RGBX1010102:
|
||||
case DRV_FORMAT_BGRX1010102:
|
||||
case DRV_FORMAT_ARGB2101010:
|
||||
case DRV_FORMAT_ABGR2101010:
|
||||
case DRV_FORMAT_RGBA1010102:
|
||||
case DRV_FORMAT_BGRA1010102:
|
||||
case DRV_FORMAT_AYUV:
|
||||
case DRM_FORMAT_C8:
|
||||
case DRM_FORMAT_R8:
|
||||
case DRM_FORMAT_RG88:
|
||||
case DRM_FORMAT_GR88:
|
||||
case DRM_FORMAT_RGB332:
|
||||
case DRM_FORMAT_BGR233:
|
||||
case DRM_FORMAT_XRGB4444:
|
||||
case DRM_FORMAT_XBGR4444:
|
||||
case DRM_FORMAT_RGBX4444:
|
||||
case DRM_FORMAT_BGRX4444:
|
||||
case DRM_FORMAT_ARGB4444:
|
||||
case DRM_FORMAT_ABGR4444:
|
||||
case DRM_FORMAT_RGBA4444:
|
||||
case DRM_FORMAT_BGRA4444:
|
||||
case DRM_FORMAT_XRGB1555:
|
||||
case DRM_FORMAT_XBGR1555:
|
||||
case DRM_FORMAT_RGBX5551:
|
||||
case DRM_FORMAT_BGRX5551:
|
||||
case DRM_FORMAT_ARGB1555:
|
||||
case DRM_FORMAT_ABGR1555:
|
||||
case DRM_FORMAT_RGBA5551:
|
||||
case DRM_FORMAT_BGRA5551:
|
||||
case DRM_FORMAT_RGB565:
|
||||
case DRM_FORMAT_BGR565:
|
||||
case DRM_FORMAT_YUYV:
|
||||
case DRM_FORMAT_YVYU:
|
||||
case DRM_FORMAT_UYVY:
|
||||
case DRM_FORMAT_VYUY:
|
||||
case DRM_FORMAT_RGB888:
|
||||
case DRM_FORMAT_BGR888:
|
||||
case DRM_FORMAT_XRGB8888:
|
||||
case DRM_FORMAT_XBGR8888:
|
||||
case DRM_FORMAT_RGBX8888:
|
||||
case DRM_FORMAT_BGRX8888:
|
||||
case DRM_FORMAT_ARGB8888:
|
||||
case DRM_FORMAT_ABGR8888:
|
||||
case DRM_FORMAT_RGBA8888:
|
||||
case DRM_FORMAT_BGRA8888:
|
||||
case DRM_FORMAT_XRGB2101010:
|
||||
case DRM_FORMAT_XBGR2101010:
|
||||
case DRM_FORMAT_RGBX1010102:
|
||||
case DRM_FORMAT_BGRX1010102:
|
||||
case DRM_FORMAT_ARGB2101010:
|
||||
case DRM_FORMAT_ABGR2101010:
|
||||
case DRM_FORMAT_RGBA1010102:
|
||||
case DRM_FORMAT_BGRA1010102:
|
||||
case DRM_FORMAT_AYUV:
|
||||
return 1;
|
||||
case DRV_FORMAT_NV12:
|
||||
case DRM_FORMAT_NV12:
|
||||
return 2;
|
||||
case DRV_FORMAT_YVU420:
|
||||
case DRM_FORMAT_YVU420:
|
||||
return 3;
|
||||
}
|
||||
|
||||
|
|
@ -542,15 +542,15 @@ size_t drv_num_planes_from_format(uint32_t format)
|
|||
return 0;
|
||||
}
|
||||
|
||||
uint32_t drv_size_from_format(drv_format_t format, uint32_t stride,
|
||||
uint32_t drv_size_from_format(uint32_t format, uint32_t stride,
|
||||
uint32_t height, size_t plane)
|
||||
{
|
||||
assert(plane < drv_num_planes_from_format(format));
|
||||
uint32_t vertical_subsampling;
|
||||
|
||||
switch (format) {
|
||||
case DRV_FORMAT_YVU420:
|
||||
case DRV_FORMAT_NV12:
|
||||
case DRM_FORMAT_YVU420:
|
||||
case DRM_FORMAT_NV12:
|
||||
vertical_subsampling = (plane == 0) ? 1 : 2;
|
||||
break;
|
||||
default:
|
||||
|
|
|
|||
102
drv.h
102
drv.h
|
|
@ -11,21 +11,11 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <drm_fourcc.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#define DRV_MAX_PLANES 4
|
||||
|
||||
/* Vendor ids and mod_code fourcc function must match gbm.h */
|
||||
#define DRV_FORMAT_MOD_NONE 0
|
||||
#define DRV_FORMAT_MOD_VENDOR_INTEL 0x01
|
||||
#define DRV_FORMAT_MOD_VENDOR_AMD 0x02
|
||||
#define DRV_FORMAT_MOD_VENDOR_NV 0x03
|
||||
#define DRV_FORMAT_MOD_VENDOR_SAMSUNG 0x04
|
||||
#define DRV_FORMAT_MOD_VENDOR_QCOM 0x05
|
||||
|
||||
#define drv_fourcc_mod_code(vendor, val) \
|
||||
((((__u64)DRV_FORMAT_MOD_VENDOR_## vendor) << 56) | (val & 0x00ffffffffffffffULL))
|
||||
|
||||
/* Use flags */
|
||||
#define DRV_BO_USE_NONE 0
|
||||
#define DRV_BO_USE_SCANOUT (1ull << 0)
|
||||
|
|
@ -47,72 +37,14 @@ extern "C" {
|
|||
#define DRV_BO_USE_HW_CAMERA_ZSL (1ull << 15)
|
||||
#define DRV_BO_USE_RENDERSCRIPT (1ull << 16)
|
||||
|
||||
typedef enum {
|
||||
DRV_FORMAT_NONE,
|
||||
DRV_FORMAT_C8,
|
||||
DRV_FORMAT_R8,
|
||||
DRV_FORMAT_RG88,
|
||||
DRV_FORMAT_GR88,
|
||||
DRV_FORMAT_RGB332,
|
||||
DRV_FORMAT_BGR233,
|
||||
DRV_FORMAT_XRGB4444,
|
||||
DRV_FORMAT_XBGR4444,
|
||||
DRV_FORMAT_RGBX4444,
|
||||
DRV_FORMAT_BGRX4444,
|
||||
DRV_FORMAT_ARGB4444,
|
||||
DRV_FORMAT_ABGR4444,
|
||||
DRV_FORMAT_RGBA4444,
|
||||
DRV_FORMAT_BGRA4444,
|
||||
DRV_FORMAT_XRGB1555,
|
||||
DRV_FORMAT_XBGR1555,
|
||||
DRV_FORMAT_RGBX5551,
|
||||
DRV_FORMAT_BGRX5551,
|
||||
DRV_FORMAT_ARGB1555,
|
||||
DRV_FORMAT_ABGR1555,
|
||||
DRV_FORMAT_RGBA5551,
|
||||
DRV_FORMAT_BGRA5551,
|
||||
DRV_FORMAT_RGB565,
|
||||
DRV_FORMAT_BGR565,
|
||||
DRV_FORMAT_RGB888,
|
||||
DRV_FORMAT_BGR888,
|
||||
DRV_FORMAT_XRGB8888,
|
||||
DRV_FORMAT_XBGR8888,
|
||||
DRV_FORMAT_RGBX8888,
|
||||
DRV_FORMAT_BGRX8888,
|
||||
DRV_FORMAT_ARGB8888,
|
||||
DRV_FORMAT_ABGR8888,
|
||||
DRV_FORMAT_RGBA8888,
|
||||
DRV_FORMAT_BGRA8888,
|
||||
DRV_FORMAT_XRGB2101010,
|
||||
DRV_FORMAT_XBGR2101010,
|
||||
DRV_FORMAT_RGBX1010102,
|
||||
DRV_FORMAT_BGRX1010102,
|
||||
DRV_FORMAT_ARGB2101010,
|
||||
DRV_FORMAT_ABGR2101010,
|
||||
DRV_FORMAT_RGBA1010102,
|
||||
DRV_FORMAT_BGRA1010102,
|
||||
DRV_FORMAT_YUYV,
|
||||
DRV_FORMAT_YVYU,
|
||||
DRV_FORMAT_UYVY,
|
||||
DRV_FORMAT_VYUY,
|
||||
DRV_FORMAT_AYUV,
|
||||
DRV_FORMAT_NV12,
|
||||
DRV_FORMAT_NV21,
|
||||
DRV_FORMAT_NV16,
|
||||
DRV_FORMAT_NV61,
|
||||
DRV_FORMAT_YUV410,
|
||||
DRV_FORMAT_YVU410,
|
||||
DRV_FORMAT_YUV411,
|
||||
DRV_FORMAT_YVU411,
|
||||
DRV_FORMAT_YUV420,
|
||||
DRV_FORMAT_YVU420,
|
||||
DRV_FORMAT_YUV422,
|
||||
DRV_FORMAT_YVU422,
|
||||
DRV_FORMAT_YUV444,
|
||||
DRV_FORMAT_YVU444,
|
||||
DRV_FORMAT_FLEX_IMPLEMENTATION_DEFINED,
|
||||
DRV_FORMAT_FLEX_YCbCr_420_888,
|
||||
} drv_format_t;
|
||||
/* This is our extension to <drm_fourcc.h>. We need to make sure we don't step
|
||||
* on the namespace of already defined formats, which can be done by using invalid
|
||||
* fourcc codes.
|
||||
*/
|
||||
|
||||
#define DRM_FORMAT_NONE fourcc_code('0', '0', '0', '0')
|
||||
#define DRM_FORMAT_FLEX_IMPLEMENTATION_DEFINED fourcc_code('9', '9', '9', '8')
|
||||
#define DRM_FORMAT_FLEX_YCbCr_420_888 fourcc_code('9', '9', '9', '9')
|
||||
|
||||
struct driver;
|
||||
struct bo;
|
||||
|
|
@ -133,7 +65,7 @@ struct drv_import_fd_data {
|
|||
uint64_t format_modifiers[DRV_MAX_PLANES];
|
||||
uint32_t width;
|
||||
uint32_t height;
|
||||
drv_format_t format;
|
||||
uint32_t format;
|
||||
};
|
||||
|
||||
struct driver *
|
||||
|
|
@ -149,16 +81,16 @@ const char *
|
|||
drv_get_name(struct driver *drv);
|
||||
|
||||
int
|
||||
drv_is_format_supported(struct driver *drv, drv_format_t format,
|
||||
drv_is_format_supported(struct driver *drv, uint32_t format,
|
||||
uint64_t usage);
|
||||
|
||||
struct bo *
|
||||
drv_bo_new(struct driver *drv, uint32_t width, uint32_t height,
|
||||
drv_format_t format);
|
||||
uint32_t format);
|
||||
|
||||
struct bo *
|
||||
drv_bo_create(struct driver *drv, uint32_t width, uint32_t height,
|
||||
drv_format_t format, uint64_t flags);
|
||||
uint32_t format, uint64_t flags);
|
||||
|
||||
void
|
||||
drv_bo_destroy(struct bo *bo);
|
||||
|
|
@ -203,11 +135,11 @@ drv_bo_get_plane_stride(struct bo *bo, size_t plane);
|
|||
uint64_t
|
||||
drv_bo_get_plane_format_modifier(struct bo *bo, size_t plane);
|
||||
|
||||
drv_format_t
|
||||
uint32_t
|
||||
drv_bo_get_format(struct bo *bo);
|
||||
|
||||
drv_format_t
|
||||
drv_resolve_format(struct driver *drv, drv_format_t format);
|
||||
uint32_t
|
||||
drv_resolve_format(struct driver *drv, uint32_t format);
|
||||
|
||||
int
|
||||
drv_stride_from_format(uint32_t format, uint32_t width, size_t plane);
|
||||
|
|
@ -216,7 +148,7 @@ size_t
|
|||
drv_num_planes_from_format(uint32_t format);
|
||||
|
||||
uint32_t
|
||||
drv_size_from_format(drv_format_t format, uint32_t stride, uint32_t height,
|
||||
drv_size_from_format(uint32_t format, uint32_t stride, uint32_t height,
|
||||
size_t plane);
|
||||
|
||||
uint32_t
|
||||
|
|
|
|||
|
|
@ -53,12 +53,12 @@ struct backend
|
|||
int (*init)(struct driver *drv);
|
||||
void (*close)(struct driver *drv);
|
||||
int (*bo_create)(struct bo *bo, uint32_t width, uint32_t height,
|
||||
drv_format_t format, uint32_t flags);
|
||||
uint32_t format, uint32_t flags);
|
||||
void* (*bo_map)(struct bo *bo, struct map_info *data, size_t plane);
|
||||
int (*bo_destroy)(struct bo *bo);
|
||||
drv_format_t (*resolve_format)(drv_format_t format);
|
||||
uint32_t (*resolve_format)(uint32_t format);
|
||||
struct format_supported {
|
||||
drv_format_t format;
|
||||
uint32_t format;
|
||||
uint64_t usage;
|
||||
}
|
||||
format_list[19];
|
||||
|
|
|
|||
8
evdi.c
8
evdi.c
|
|
@ -14,10 +14,10 @@ const struct backend backend_evdi =
|
|||
.bo_destroy = drv_dumb_bo_destroy,
|
||||
.bo_map = drv_dumb_bo_map,
|
||||
.format_list = {
|
||||
{DRV_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING},
|
||||
{DRV_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR},
|
||||
{DRV_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING},
|
||||
{DRV_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR},
|
||||
{DRM_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING},
|
||||
{DRM_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR},
|
||||
{DRM_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING},
|
||||
{DRM_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR},
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
14
exynos.c
14
exynos.c
|
|
@ -22,7 +22,7 @@ static int exynos_bo_create(struct bo *bo, uint32_t width, uint32_t height,
|
|||
{
|
||||
size_t plane;
|
||||
|
||||
if (format == DRV_FORMAT_NV12) {
|
||||
if (format == DRM_FORMAT_NV12) {
|
||||
uint32_t chroma_height;
|
||||
/* V4L2 s5p-mfc requires width to be 16 byte aligned and height 32. */
|
||||
width = ALIGN(width, 16);
|
||||
|
|
@ -34,7 +34,7 @@ static int exynos_bo_create(struct bo *bo, uint32_t width, uint32_t height,
|
|||
bo->sizes[1] = bo->strides[1] * chroma_height + 64;
|
||||
bo->offsets[0] = bo->offsets[1] = 0;
|
||||
bo->total_size = bo->sizes[0] + bo->sizes[1];
|
||||
} else if (format == DRV_FORMAT_XRGB8888 || format == DRV_FORMAT_ARGB8888) {
|
||||
} else if (format == DRM_FORMAT_XRGB8888 || format == DRM_FORMAT_ARGB8888) {
|
||||
bo->strides[0] = drv_stride_from_format(format, width, 0);
|
||||
bo->total_size = bo->sizes[0] = height * bo->strides[0];
|
||||
bo->offsets[0] = 0;
|
||||
|
|
@ -93,11 +93,11 @@ const struct backend backend_exynos =
|
|||
.bo_destroy = drv_gem_bo_destroy,
|
||||
.bo_map = drv_dumb_bo_map,
|
||||
.format_list = {
|
||||
{DRV_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING},
|
||||
{DRV_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR},
|
||||
{DRV_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING},
|
||||
{DRV_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR},
|
||||
{DRV_FORMAT_NV12, DRV_BO_USE_SCANOUT | DRV_BO_USE_RENDERING},
|
||||
{DRM_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING},
|
||||
{DRM_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR},
|
||||
{DRM_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING},
|
||||
{DRM_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR},
|
||||
{DRM_FORMAT_NV12, DRV_BO_USE_SCANOUT | DRV_BO_USE_RENDERING},
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
11
gbm.c
11
gbm.c
|
|
@ -34,17 +34,15 @@ PUBLIC int
|
|||
gbm_device_is_format_supported(struct gbm_device *gbm,
|
||||
uint32_t format, uint32_t usage)
|
||||
{
|
||||
uint32_t drv_format;
|
||||
uint64_t drv_usage;
|
||||
|
||||
if (usage & GBM_BO_USE_CURSOR &&
|
||||
usage & GBM_BO_USE_RENDERING)
|
||||
return 0;
|
||||
|
||||
drv_format = gbm_convert_format(format);
|
||||
drv_usage = gbm_convert_flags(usage);
|
||||
|
||||
return drv_is_format_supported(gbm->drv, drv_format, drv_usage);
|
||||
return drv_is_format_supported(gbm->drv, format, drv_usage);
|
||||
}
|
||||
|
||||
PUBLIC struct gbm_device *gbm_create_device(int fd)
|
||||
|
|
@ -127,8 +125,7 @@ PUBLIC struct gbm_bo *gbm_bo_create(struct gbm_device *gbm, uint32_t width,
|
|||
if (!bo)
|
||||
return NULL;
|
||||
|
||||
bo->bo = drv_bo_create(gbm->drv, width, height,
|
||||
gbm_convert_format(format),
|
||||
bo->bo = drv_bo_create(gbm->drv, width, height, format,
|
||||
gbm_convert_flags(flags));
|
||||
|
||||
if (!bo->bo) {
|
||||
|
|
@ -169,7 +166,7 @@ gbm_bo_import(struct gbm_device *gbm, uint32_t type,
|
|||
gbm_format = fd_data->format;
|
||||
drv_data.width = fd_data->width;
|
||||
drv_data.height = fd_data->height;
|
||||
drv_data.format = gbm_convert_format(fd_data->format);
|
||||
drv_data.format = fd_data->format;
|
||||
drv_data.fds[0] = fd_data->fd;
|
||||
drv_data.strides[0] = fd_data->stride;
|
||||
drv_data.sizes[0] = fd_data->height * fd_data->stride;
|
||||
|
|
@ -178,7 +175,7 @@ gbm_bo_import(struct gbm_device *gbm, uint32_t type,
|
|||
gbm_format = fd_planar_data->format;
|
||||
drv_data.width = fd_planar_data->width;
|
||||
drv_data.height = fd_planar_data->height;
|
||||
drv_data.format = gbm_convert_format(fd_planar_data->format);
|
||||
drv_data.format = fd_planar_data->format;
|
||||
num_planes = drv_num_planes_from_format(drv_data.format);
|
||||
|
||||
assert(num_planes);
|
||||
|
|
|
|||
132
gbm_helpers.c
132
gbm_helpers.c
|
|
@ -10,138 +10,6 @@
|
|||
#include "drv.h"
|
||||
#include "gbm.h"
|
||||
|
||||
drv_format_t gbm_convert_format(uint32_t format)
|
||||
{
|
||||
|
||||
switch (format) {
|
||||
case GBM_FORMAT_C8:
|
||||
return DRV_FORMAT_C8;
|
||||
case GBM_FORMAT_R8:
|
||||
return DRV_FORMAT_R8;
|
||||
case GBM_FORMAT_RG88:
|
||||
return DRV_FORMAT_RG88;
|
||||
case GBM_FORMAT_GR88:
|
||||
return DRV_FORMAT_GR88;
|
||||
case GBM_FORMAT_RGB332:
|
||||
return DRV_FORMAT_RGB332;
|
||||
case GBM_FORMAT_BGR233:
|
||||
return DRV_FORMAT_BGR233;
|
||||
case GBM_FORMAT_XRGB4444:
|
||||
return DRV_FORMAT_XRGB4444;
|
||||
case GBM_FORMAT_XBGR4444:
|
||||
return DRV_FORMAT_XBGR4444;
|
||||
case GBM_FORMAT_RGBX4444:
|
||||
return DRV_FORMAT_RGBX4444;
|
||||
case GBM_FORMAT_BGRX4444:
|
||||
return DRV_FORMAT_BGRX4444;
|
||||
case GBM_FORMAT_ARGB4444:
|
||||
return DRV_FORMAT_ARGB4444;
|
||||
case GBM_FORMAT_ABGR4444:
|
||||
return DRV_FORMAT_ABGR4444;
|
||||
case GBM_FORMAT_RGBA4444:
|
||||
return DRV_FORMAT_RGBA4444;
|
||||
case GBM_FORMAT_BGRA4444:
|
||||
return DRV_FORMAT_BGRA4444;
|
||||
case GBM_FORMAT_XRGB1555:
|
||||
return DRV_FORMAT_XRGB1555;
|
||||
case GBM_FORMAT_XBGR1555:
|
||||
return DRV_FORMAT_XBGR1555;
|
||||
case GBM_FORMAT_RGBX5551:
|
||||
return DRV_FORMAT_RGBX5551;
|
||||
case GBM_FORMAT_BGRX5551:
|
||||
return DRV_FORMAT_BGRX5551;
|
||||
case GBM_FORMAT_ARGB1555:
|
||||
return DRV_FORMAT_ARGB1555;
|
||||
case GBM_FORMAT_ABGR1555:
|
||||
return DRV_FORMAT_ABGR1555;
|
||||
case GBM_FORMAT_RGBA5551:
|
||||
return DRV_FORMAT_RGBA5551;
|
||||
case GBM_FORMAT_BGRA5551:
|
||||
return DRV_FORMAT_BGRA5551;
|
||||
case GBM_FORMAT_RGB565:
|
||||
return DRV_FORMAT_RGB565;
|
||||
case GBM_FORMAT_BGR565:
|
||||
return DRV_FORMAT_BGR565;
|
||||
case GBM_FORMAT_RGB888:
|
||||
return DRV_FORMAT_RGB888;
|
||||
case GBM_FORMAT_BGR888:
|
||||
return DRV_FORMAT_BGR888;
|
||||
case GBM_FORMAT_XRGB8888:
|
||||
return DRV_FORMAT_XRGB8888;
|
||||
case GBM_FORMAT_XBGR8888:
|
||||
return DRV_FORMAT_XBGR8888;
|
||||
case GBM_FORMAT_RGBX8888:
|
||||
return DRV_FORMAT_RGBX8888;
|
||||
case GBM_FORMAT_BGRX8888:
|
||||
return DRV_FORMAT_BGRX8888;
|
||||
case GBM_FORMAT_ARGB8888:
|
||||
return DRV_FORMAT_ARGB8888;
|
||||
case GBM_FORMAT_ABGR8888:
|
||||
return DRV_FORMAT_ABGR8888;
|
||||
case GBM_FORMAT_RGBA8888:
|
||||
return DRV_FORMAT_RGBA8888;
|
||||
case GBM_FORMAT_BGRA8888:
|
||||
return DRV_FORMAT_BGRA8888;
|
||||
case GBM_FORMAT_XRGB2101010:
|
||||
return DRV_FORMAT_XRGB2101010;
|
||||
case GBM_FORMAT_XBGR2101010:
|
||||
return DRV_FORMAT_XBGR2101010;
|
||||
case GBM_FORMAT_RGBX1010102:
|
||||
return DRV_FORMAT_RGBX1010102;
|
||||
case GBM_FORMAT_BGRX1010102:
|
||||
return DRV_FORMAT_BGRX1010102;
|
||||
case GBM_FORMAT_ARGB2101010:
|
||||
return DRV_FORMAT_ARGB2101010;
|
||||
case GBM_FORMAT_ABGR2101010:
|
||||
return DRV_FORMAT_ABGR2101010;
|
||||
case GBM_FORMAT_RGBA1010102:
|
||||
return DRV_FORMAT_RGBA1010102;
|
||||
case GBM_FORMAT_BGRA1010102:
|
||||
return DRV_FORMAT_BGRA1010102;
|
||||
case GBM_FORMAT_YUYV:
|
||||
return DRV_FORMAT_YUYV;
|
||||
case GBM_FORMAT_YVYU:
|
||||
return DRV_FORMAT_YVYU;
|
||||
case GBM_FORMAT_UYVY:
|
||||
return DRV_FORMAT_UYVY;
|
||||
case GBM_FORMAT_VYUY:
|
||||
return DRV_FORMAT_VYUY;
|
||||
case GBM_FORMAT_AYUV:
|
||||
return DRV_FORMAT_AYUV;
|
||||
case GBM_FORMAT_NV12:
|
||||
return DRV_FORMAT_NV12;
|
||||
case GBM_FORMAT_NV21:
|
||||
return DRV_FORMAT_NV21;
|
||||
case GBM_FORMAT_NV16:
|
||||
return DRV_FORMAT_NV16;
|
||||
case GBM_FORMAT_NV61:
|
||||
return DRV_FORMAT_NV61;
|
||||
case GBM_FORMAT_YUV410:
|
||||
return DRV_FORMAT_YUV410;
|
||||
case GBM_FORMAT_YVU410:
|
||||
return DRV_FORMAT_YVU410;
|
||||
case GBM_FORMAT_YUV411:
|
||||
return DRV_FORMAT_YUV411;
|
||||
case GBM_FORMAT_YVU411:
|
||||
return DRV_FORMAT_YVU411;
|
||||
case GBM_FORMAT_YUV420:
|
||||
return DRV_FORMAT_YUV420;
|
||||
case GBM_FORMAT_YVU420:
|
||||
return DRV_FORMAT_YVU420;
|
||||
case GBM_FORMAT_YUV422:
|
||||
return DRV_FORMAT_YUV422;
|
||||
case GBM_FORMAT_YVU422:
|
||||
return DRV_FORMAT_YVU422;
|
||||
case GBM_FORMAT_YUV444:
|
||||
return DRV_FORMAT_YVU444;
|
||||
case GBM_FORMAT_YVU444:
|
||||
return DRV_FORMAT_YVU444;
|
||||
}
|
||||
|
||||
fprintf(stderr, "minigbm: UNKNOWN FORMAT %d\n", format);
|
||||
return DRV_FORMAT_NONE;
|
||||
}
|
||||
|
||||
uint64_t gbm_convert_flags(uint32_t flags)
|
||||
{
|
||||
uint64_t usage = DRV_BO_USE_NONE;
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@
|
|||
#ifndef GBM_HELPERS_H
|
||||
#define GBM_HELPERS_H
|
||||
|
||||
drv_format_t gbm_convert_format(uint32_t format);
|
||||
uint64_t gbm_convert_flags(uint32_t flags);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
2
gma500.c
2
gma500.c
|
|
@ -14,6 +14,6 @@ const struct backend backend_gma500 =
|
|||
.bo_destroy = drv_dumb_bo_destroy,
|
||||
.bo_map = drv_dumb_bo_map,
|
||||
.format_list = {
|
||||
{DRV_FORMAT_RGBX8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING},
|
||||
{DRM_FORMAT_RGBX8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING},
|
||||
}
|
||||
};
|
||||
|
|
|
|||
100
helpers.c
100
helpers.c
|
|
@ -21,11 +21,11 @@ int drv_bpp_from_format(uint32_t format, size_t plane)
|
|||
assert(plane < drv_num_planes_from_format(format));
|
||||
|
||||
switch (format) {
|
||||
case DRV_FORMAT_C8:
|
||||
case DRV_FORMAT_R8:
|
||||
case DRV_FORMAT_RGB332:
|
||||
case DRV_FORMAT_BGR233:
|
||||
case DRV_FORMAT_YVU420:
|
||||
case DRM_FORMAT_C8:
|
||||
case DRM_FORMAT_R8:
|
||||
case DRM_FORMAT_RGB332:
|
||||
case DRM_FORMAT_BGR233:
|
||||
case DRM_FORMAT_YVU420:
|
||||
return 8;
|
||||
|
||||
/*
|
||||
|
|
@ -45,56 +45,56 @@ int drv_bpp_from_format(uint32_t format, size_t plane)
|
|||
* Y0_1, Cb01_01 and Cr01_01. So for a single pixel, 2 bytes of luma data
|
||||
* are required.
|
||||
*/
|
||||
case DRV_FORMAT_NV12:
|
||||
case DRM_FORMAT_NV12:
|
||||
return (plane == 0) ? 8 : 16;
|
||||
|
||||
case DRV_FORMAT_RG88:
|
||||
case DRV_FORMAT_GR88:
|
||||
case DRV_FORMAT_XRGB4444:
|
||||
case DRV_FORMAT_XBGR4444:
|
||||
case DRV_FORMAT_RGBX4444:
|
||||
case DRV_FORMAT_BGRX4444:
|
||||
case DRV_FORMAT_ARGB4444:
|
||||
case DRV_FORMAT_ABGR4444:
|
||||
case DRV_FORMAT_RGBA4444:
|
||||
case DRV_FORMAT_BGRA4444:
|
||||
case DRV_FORMAT_XRGB1555:
|
||||
case DRV_FORMAT_XBGR1555:
|
||||
case DRV_FORMAT_RGBX5551:
|
||||
case DRV_FORMAT_BGRX5551:
|
||||
case DRV_FORMAT_ARGB1555:
|
||||
case DRV_FORMAT_ABGR1555:
|
||||
case DRV_FORMAT_RGBA5551:
|
||||
case DRV_FORMAT_BGRA5551:
|
||||
case DRV_FORMAT_RGB565:
|
||||
case DRV_FORMAT_BGR565:
|
||||
case DRV_FORMAT_YUYV:
|
||||
case DRV_FORMAT_YVYU:
|
||||
case DRV_FORMAT_UYVY:
|
||||
case DRV_FORMAT_VYUY:
|
||||
case DRM_FORMAT_RG88:
|
||||
case DRM_FORMAT_GR88:
|
||||
case DRM_FORMAT_XRGB4444:
|
||||
case DRM_FORMAT_XBGR4444:
|
||||
case DRM_FORMAT_RGBX4444:
|
||||
case DRM_FORMAT_BGRX4444:
|
||||
case DRM_FORMAT_ARGB4444:
|
||||
case DRM_FORMAT_ABGR4444:
|
||||
case DRM_FORMAT_RGBA4444:
|
||||
case DRM_FORMAT_BGRA4444:
|
||||
case DRM_FORMAT_XRGB1555:
|
||||
case DRM_FORMAT_XBGR1555:
|
||||
case DRM_FORMAT_RGBX5551:
|
||||
case DRM_FORMAT_BGRX5551:
|
||||
case DRM_FORMAT_ARGB1555:
|
||||
case DRM_FORMAT_ABGR1555:
|
||||
case DRM_FORMAT_RGBA5551:
|
||||
case DRM_FORMAT_BGRA5551:
|
||||
case DRM_FORMAT_RGB565:
|
||||
case DRM_FORMAT_BGR565:
|
||||
case DRM_FORMAT_YUYV:
|
||||
case DRM_FORMAT_YVYU:
|
||||
case DRM_FORMAT_UYVY:
|
||||
case DRM_FORMAT_VYUY:
|
||||
return 16;
|
||||
|
||||
case DRV_FORMAT_RGB888:
|
||||
case DRV_FORMAT_BGR888:
|
||||
case DRM_FORMAT_RGB888:
|
||||
case DRM_FORMAT_BGR888:
|
||||
return 24;
|
||||
|
||||
case DRV_FORMAT_XRGB8888:
|
||||
case DRV_FORMAT_XBGR8888:
|
||||
case DRV_FORMAT_RGBX8888:
|
||||
case DRV_FORMAT_BGRX8888:
|
||||
case DRV_FORMAT_ARGB8888:
|
||||
case DRV_FORMAT_ABGR8888:
|
||||
case DRV_FORMAT_RGBA8888:
|
||||
case DRV_FORMAT_BGRA8888:
|
||||
case DRV_FORMAT_XRGB2101010:
|
||||
case DRV_FORMAT_XBGR2101010:
|
||||
case DRV_FORMAT_RGBX1010102:
|
||||
case DRV_FORMAT_BGRX1010102:
|
||||
case DRV_FORMAT_ARGB2101010:
|
||||
case DRV_FORMAT_ABGR2101010:
|
||||
case DRV_FORMAT_RGBA1010102:
|
||||
case DRV_FORMAT_BGRA1010102:
|
||||
case DRV_FORMAT_AYUV:
|
||||
case DRM_FORMAT_XRGB8888:
|
||||
case DRM_FORMAT_XBGR8888:
|
||||
case DRM_FORMAT_RGBX8888:
|
||||
case DRM_FORMAT_BGRX8888:
|
||||
case DRM_FORMAT_ARGB8888:
|
||||
case DRM_FORMAT_ABGR8888:
|
||||
case DRM_FORMAT_RGBA8888:
|
||||
case DRM_FORMAT_BGRA8888:
|
||||
case DRM_FORMAT_XRGB2101010:
|
||||
case DRM_FORMAT_XBGR2101010:
|
||||
case DRM_FORMAT_RGBX1010102:
|
||||
case DRM_FORMAT_BGRX1010102:
|
||||
case DRM_FORMAT_ARGB2101010:
|
||||
case DRM_FORMAT_ABGR2101010:
|
||||
case DRM_FORMAT_RGBA1010102:
|
||||
case DRM_FORMAT_BGRA1010102:
|
||||
case DRM_FORMAT_AYUV:
|
||||
return 32;
|
||||
}
|
||||
|
||||
|
|
@ -108,7 +108,7 @@ int drv_bpp_from_format(uint32_t format, size_t plane)
|
|||
* buffer object.
|
||||
*/
|
||||
int drv_bo_from_format(struct bo *bo, uint32_t width, uint32_t height,
|
||||
drv_format_t format)
|
||||
uint32_t format)
|
||||
{
|
||||
|
||||
size_t p, num_planes;
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
int drv_bpp_from_format(uint32_t format, size_t plane);
|
||||
int drv_bo_from_format(struct bo *bo, uint32_t width, uint32_t height,
|
||||
drv_format_t format);
|
||||
uint32_t format);
|
||||
int drv_dumb_bo_create(struct bo *bo, uint32_t width, uint32_t height,
|
||||
uint32_t format, uint32_t flags);
|
||||
int drv_dumb_bo_destroy(struct bo *bo);
|
||||
|
|
|
|||
46
i915.c
46
i915.c
|
|
@ -203,14 +203,14 @@ static void *i915_bo_map(struct bo *bo, struct map_info *data, size_t plane)
|
|||
bo->drv->fd, gem_map.offset);
|
||||
}
|
||||
|
||||
static drv_format_t i915_resolve_format(drv_format_t format)
|
||||
static uint32_t i915_resolve_format(uint32_t format)
|
||||
{
|
||||
switch (format) {
|
||||
case DRV_FORMAT_FLEX_IMPLEMENTATION_DEFINED:
|
||||
case DRM_FORMAT_FLEX_IMPLEMENTATION_DEFINED:
|
||||
/*HACK: See b/28671744 */
|
||||
return DRV_FORMAT_XBGR8888;
|
||||
case DRV_FORMAT_FLEX_YCbCr_420_888:
|
||||
return DRV_FORMAT_YVU420;
|
||||
return DRM_FORMAT_XBGR8888;
|
||||
case DRM_FORMAT_FLEX_YCbCr_420_888:
|
||||
return DRM_FORMAT_YVU420;
|
||||
default:
|
||||
return format;
|
||||
}
|
||||
|
|
@ -226,41 +226,41 @@ const struct backend backend_i915 =
|
|||
.bo_map = i915_bo_map,
|
||||
.resolve_format = i915_resolve_format,
|
||||
.format_list = {
|
||||
{DRV_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING
|
||||
{DRM_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING
|
||||
| DRV_BO_USE_SW_READ_RARELY | DRV_BO_USE_SW_WRITE_RARELY},
|
||||
{DRV_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR |
|
||||
{DRM_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR |
|
||||
DRV_BO_USE_SW_READ_OFTEN | DRV_BO_USE_SW_WRITE_OFTEN},
|
||||
{DRV_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING
|
||||
{DRM_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING
|
||||
| DRV_BO_USE_SW_READ_RARELY | DRV_BO_USE_SW_WRITE_RARELY},
|
||||
{DRV_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR |
|
||||
{DRM_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR |
|
||||
DRV_BO_USE_SW_READ_OFTEN | DRV_BO_USE_SW_WRITE_OFTEN},
|
||||
{DRV_FORMAT_XBGR8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING
|
||||
{DRM_FORMAT_XBGR8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING
|
||||
| DRV_BO_USE_SW_READ_RARELY | DRV_BO_USE_SW_WRITE_RARELY},
|
||||
{DRV_FORMAT_XBGR8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_RENDERING |
|
||||
{DRM_FORMAT_XBGR8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_RENDERING |
|
||||
DRV_BO_USE_SW_READ_OFTEN | DRV_BO_USE_SW_WRITE_OFTEN},
|
||||
{DRV_FORMAT_ABGR8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING
|
||||
{DRM_FORMAT_ABGR8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING
|
||||
| DRV_BO_USE_SW_READ_RARELY | DRV_BO_USE_SW_WRITE_RARELY},
|
||||
{DRV_FORMAT_ABGR8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_RENDERING | DRV_BO_USE_CURSOR
|
||||
{DRM_FORMAT_ABGR8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_RENDERING | DRV_BO_USE_CURSOR
|
||||
| DRV_BO_USE_SW_READ_OFTEN | DRV_BO_USE_SW_WRITE_OFTEN},
|
||||
{DRV_FORMAT_XRGB1555, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING
|
||||
{DRM_FORMAT_XRGB1555, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING
|
||||
| DRV_BO_USE_SW_READ_RARELY | DRV_BO_USE_SW_WRITE_RARELY},
|
||||
{DRV_FORMAT_ARGB1555, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING
|
||||
{DRM_FORMAT_ARGB1555, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING
|
||||
| DRV_BO_USE_SW_READ_RARELY | DRV_BO_USE_SW_WRITE_RARELY},
|
||||
{DRV_FORMAT_RGB565, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING
|
||||
{DRM_FORMAT_RGB565, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING
|
||||
| DRV_BO_USE_SW_READ_RARELY | DRV_BO_USE_SW_WRITE_RARELY},
|
||||
{DRV_FORMAT_UYVY, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING
|
||||
{DRM_FORMAT_UYVY, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING
|
||||
| DRV_BO_USE_SW_READ_RARELY | DRV_BO_USE_SW_WRITE_RARELY},
|
||||
{DRV_FORMAT_UYVY, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR |
|
||||
{DRM_FORMAT_UYVY, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR |
|
||||
DRV_BO_USE_SW_READ_OFTEN | DRV_BO_USE_SW_WRITE_OFTEN},
|
||||
{DRV_FORMAT_YUYV, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING
|
||||
{DRM_FORMAT_YUYV, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING
|
||||
| DRV_BO_USE_SW_READ_RARELY | DRV_BO_USE_SW_WRITE_RARELY},
|
||||
{DRV_FORMAT_YUYV, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR |
|
||||
{DRM_FORMAT_YUYV, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR |
|
||||
DRV_BO_USE_SW_READ_OFTEN | DRV_BO_USE_SW_WRITE_OFTEN},
|
||||
{DRV_FORMAT_R8, DRV_BO_USE_SCANOUT | DRV_BO_USE_LINEAR |
|
||||
{DRM_FORMAT_R8, DRV_BO_USE_SCANOUT | DRV_BO_USE_LINEAR |
|
||||
DRV_BO_USE_SW_READ_OFTEN | DRV_BO_USE_SW_WRITE_OFTEN},
|
||||
{DRV_FORMAT_GR88, DRV_BO_USE_SCANOUT | DRV_BO_USE_LINEAR |
|
||||
{DRM_FORMAT_GR88, DRV_BO_USE_SCANOUT | DRV_BO_USE_LINEAR |
|
||||
DRV_BO_USE_SW_READ_OFTEN | DRV_BO_USE_SW_WRITE_OFTEN},
|
||||
{DRV_FORMAT_YVU420, DRV_BO_USE_RENDERING | DRV_BO_USE_SW_READ_RARELY |
|
||||
{DRM_FORMAT_YVU420, DRV_BO_USE_RENDERING | DRV_BO_USE_SW_READ_RARELY |
|
||||
DRV_BO_USE_SW_WRITE_RARELY},
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -16,10 +16,10 @@ const struct backend backend_marvell =
|
|||
.bo_destroy = drv_dumb_bo_destroy,
|
||||
.bo_map = drv_dumb_bo_map,
|
||||
.format_list = {
|
||||
{DRV_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING},
|
||||
{DRV_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR},
|
||||
{DRV_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING},
|
||||
{DRV_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR},
|
||||
{DRM_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING},
|
||||
{DRM_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR},
|
||||
{DRM_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING},
|
||||
{DRM_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR},
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
26
mediatek.c
26
mediatek.c
|
|
@ -60,14 +60,14 @@ static void *mediatek_bo_map(struct bo *bo, struct map_info *data, size_t plane)
|
|||
bo->drv->fd, gem_map.offset);
|
||||
}
|
||||
|
||||
static drv_format_t mediatek_resolve_format(drv_format_t format)
|
||||
static uint32_t mediatek_resolve_format(uint32_t format)
|
||||
{
|
||||
switch (format) {
|
||||
case DRV_FORMAT_FLEX_IMPLEMENTATION_DEFINED:
|
||||
case DRM_FORMAT_FLEX_IMPLEMENTATION_DEFINED:
|
||||
/*HACK: See b/28671744 */
|
||||
return DRV_FORMAT_XBGR8888;
|
||||
case DRV_FORMAT_FLEX_YCbCr_420_888:
|
||||
return DRV_FORMAT_YVU420;
|
||||
return DRM_FORMAT_XBGR8888;
|
||||
case DRM_FORMAT_FLEX_YCbCr_420_888:
|
||||
return DRM_FORMAT_YVU420;
|
||||
default:
|
||||
return format;
|
||||
}
|
||||
|
|
@ -81,23 +81,23 @@ const struct backend backend_mediatek =
|
|||
.bo_map = mediatek_bo_map,
|
||||
.resolve_format = mediatek_resolve_format,
|
||||
.format_list = {
|
||||
{DRV_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING
|
||||
{DRM_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING
|
||||
| DRV_BO_USE_SW_READ_RARELY | DRV_BO_USE_SW_WRITE_RARELY},
|
||||
{DRV_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR
|
||||
{DRM_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR
|
||||
| DRV_BO_USE_SW_READ_OFTEN | DRV_BO_USE_SW_WRITE_OFTEN},
|
||||
{DRV_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING
|
||||
{DRM_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING
|
||||
| DRV_BO_USE_SW_READ_RARELY | DRV_BO_USE_SW_WRITE_RARELY},
|
||||
{DRV_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR |
|
||||
{DRM_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR |
|
||||
DRV_BO_USE_SW_READ_OFTEN | DRV_BO_USE_SW_WRITE_OFTEN},
|
||||
{DRV_FORMAT_ABGR8888, DRV_BO_USE_RENDERING
|
||||
{DRM_FORMAT_ABGR8888, DRV_BO_USE_RENDERING
|
||||
| DRV_BO_USE_SW_READ_OFTEN | DRV_BO_USE_SW_WRITE_OFTEN
|
||||
| DRV_BO_USE_SW_READ_RARELY | DRV_BO_USE_SW_WRITE_RARELY},
|
||||
{DRV_FORMAT_XBGR8888, DRV_BO_USE_RENDERING
|
||||
{DRM_FORMAT_XBGR8888, DRV_BO_USE_RENDERING
|
||||
| DRV_BO_USE_SW_READ_OFTEN | DRV_BO_USE_SW_WRITE_OFTEN
|
||||
| DRV_BO_USE_SW_READ_RARELY | DRV_BO_USE_SW_WRITE_RARELY},
|
||||
{DRV_FORMAT_RGB565, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING
|
||||
{DRM_FORMAT_RGB565, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING
|
||||
| DRV_BO_USE_SW_READ_RARELY | DRV_BO_USE_SW_WRITE_RARELY},
|
||||
{DRV_FORMAT_YVU420, DRV_BO_USE_RENDERING | DRV_BO_USE_SW_READ_RARELY |
|
||||
{DRM_FORMAT_YVU420, DRV_BO_USE_RENDERING | DRV_BO_USE_SW_READ_RARELY |
|
||||
DRV_BO_USE_SW_WRITE_RARELY},
|
||||
}
|
||||
};
|
||||
|
|
|
|||
34
rockchip.c
34
rockchip.c
|
|
@ -24,7 +24,7 @@ static int rockchip_bo_create(struct bo *bo, uint32_t width, uint32_t height,
|
|||
size_t plane;
|
||||
struct drm_rockchip_gem_create gem_create;
|
||||
|
||||
if (format == DRV_FORMAT_NV12) {
|
||||
if (format == DRM_FORMAT_NV12) {
|
||||
uint32_t w_mbs = DIV_ROUND_UP(ALIGN(width, 16), 16);
|
||||
uint32_t h_mbs = DIV_ROUND_UP(ALIGN(width, 16), 16);
|
||||
|
||||
|
|
@ -78,14 +78,14 @@ static void *rockchip_bo_map(struct bo *bo, struct map_info *data, size_t plane)
|
|||
bo->drv->fd, gem_map.offset);
|
||||
}
|
||||
|
||||
static drv_format_t rockchip_resolve_format(drv_format_t format)
|
||||
static uint32_t rockchip_resolve_format(uint32_t format)
|
||||
{
|
||||
switch (format) {
|
||||
case DRV_FORMAT_FLEX_IMPLEMENTATION_DEFINED:
|
||||
case DRM_FORMAT_FLEX_IMPLEMENTATION_DEFINED:
|
||||
/*HACK: See b/28671744 */
|
||||
return DRV_FORMAT_XBGR8888;
|
||||
case DRV_FORMAT_FLEX_YCbCr_420_888:
|
||||
return DRV_FORMAT_NV12;
|
||||
return DRM_FORMAT_XBGR8888;
|
||||
case DRM_FORMAT_FLEX_YCbCr_420_888:
|
||||
return DRM_FORMAT_NV12;
|
||||
default:
|
||||
return format;
|
||||
}
|
||||
|
|
@ -99,29 +99,29 @@ const struct backend backend_rockchip =
|
|||
.bo_map = rockchip_bo_map,
|
||||
.resolve_format = rockchip_resolve_format,
|
||||
.format_list = {
|
||||
{DRV_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING
|
||||
{DRM_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING
|
||||
| DRV_BO_USE_SW_READ_RARELY | DRV_BO_USE_SW_WRITE_RARELY},
|
||||
{DRV_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR |
|
||||
{DRM_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR |
|
||||
DRV_BO_USE_SW_READ_OFTEN | DRV_BO_USE_SW_WRITE_OFTEN},
|
||||
{DRV_FORMAT_XBGR8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING
|
||||
{DRM_FORMAT_XBGR8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING
|
||||
| DRV_BO_USE_SW_READ_OFTEN | DRV_BO_USE_SW_WRITE_OFTEN
|
||||
| DRV_BO_USE_SW_READ_RARELY | DRV_BO_USE_SW_WRITE_RARELY},
|
||||
{DRV_FORMAT_XBGR8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR |
|
||||
{DRM_FORMAT_XBGR8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR |
|
||||
DRV_BO_USE_SW_READ_OFTEN | DRV_BO_USE_SW_WRITE_OFTEN},
|
||||
{DRV_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING
|
||||
{DRM_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING
|
||||
| DRV_BO_USE_SW_READ_RARELY | DRV_BO_USE_SW_WRITE_RARELY},
|
||||
{DRV_FORMAT_RGB565, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING
|
||||
{DRM_FORMAT_RGB565, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING
|
||||
| DRV_BO_USE_SW_READ_RARELY | DRV_BO_USE_SW_WRITE_RARELY},
|
||||
{DRV_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR |
|
||||
{DRM_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR |
|
||||
DRV_BO_USE_SW_READ_OFTEN | DRV_BO_USE_SW_WRITE_OFTEN},
|
||||
{DRV_FORMAT_ABGR8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING
|
||||
{DRM_FORMAT_ABGR8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING
|
||||
| DRV_BO_USE_SW_READ_OFTEN | DRV_BO_USE_SW_WRITE_OFTEN
|
||||
| DRV_BO_USE_SW_READ_RARELY | DRV_BO_USE_SW_WRITE_RARELY},
|
||||
{DRV_FORMAT_NV12, DRV_BO_USE_SCANOUT | DRV_BO_USE_RENDERING |
|
||||
{DRM_FORMAT_NV12, DRV_BO_USE_SCANOUT | DRV_BO_USE_RENDERING |
|
||||
DRV_BO_USE_SW_READ_RARELY | DRV_BO_USE_SW_WRITE_RARELY},
|
||||
{DRV_FORMAT_NV12, DRV_BO_USE_SCANOUT | DRV_BO_USE_LINEAR |
|
||||
{DRM_FORMAT_NV12, DRV_BO_USE_SCANOUT | DRV_BO_USE_LINEAR |
|
||||
DRV_BO_USE_SW_READ_OFTEN | DRV_BO_USE_SW_WRITE_OFTEN},
|
||||
{DRV_FORMAT_YVU420, DRV_BO_USE_RENDERING | DRV_BO_USE_SW_READ_RARELY |
|
||||
{DRM_FORMAT_YVU420, DRV_BO_USE_RENDERING | DRV_BO_USE_SW_READ_RARELY |
|
||||
DRV_BO_USE_SW_WRITE_RARELY},
|
||||
}
|
||||
};
|
||||
|
|
|
|||
10
tegra.c
10
tegra.c
|
|
@ -135,7 +135,7 @@ static int tegra_bo_create(struct bo *bo, uint32_t width, uint32_t height,
|
|||
/* Encode blocklinear parameters for EGLImage creation. */
|
||||
bo->tiling = (kind & 0xff) |
|
||||
((block_height_log2 & 0xf) << 8);
|
||||
bo->format_modifiers[0] = drv_fourcc_mod_code(NV, bo->tiling);
|
||||
bo->format_modifiers[0] = fourcc_mod_code(NV, bo->tiling);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
@ -170,14 +170,14 @@ const struct backend backend_tegra =
|
|||
.bo_map = tegra_bo_map,
|
||||
.format_list = {
|
||||
/* Linear support */
|
||||
{DRV_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR
|
||||
{DRM_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR
|
||||
| DRV_BO_USE_SW_READ_OFTEN | DRV_BO_USE_SW_WRITE_OFTEN},
|
||||
{DRV_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR
|
||||
{DRM_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR
|
||||
| DRV_BO_USE_SW_READ_OFTEN | DRV_BO_USE_SW_WRITE_OFTEN},
|
||||
/* Blocklinear support */
|
||||
{DRV_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_RENDERING |
|
||||
{DRM_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_RENDERING |
|
||||
DRV_BO_USE_SW_READ_RARELY | DRV_BO_USE_SW_WRITE_RARELY},
|
||||
{DRV_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_RENDERING |
|
||||
{DRM_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_RENDERING |
|
||||
DRV_BO_USE_SW_READ_RARELY | DRV_BO_USE_SW_WRITE_RARELY},
|
||||
}
|
||||
};
|
||||
|
|
|
|||
8
udl.c
8
udl.c
|
|
@ -14,9 +14,9 @@ const struct backend backend_udl =
|
|||
.bo_destroy = drv_dumb_bo_destroy,
|
||||
.bo_map = drv_dumb_bo_map,
|
||||
.format_list = {
|
||||
{DRV_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING},
|
||||
{DRV_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR},
|
||||
{DRV_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING},
|
||||
{DRV_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR},
|
||||
{DRM_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING},
|
||||
{DRM_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR},
|
||||
{DRM_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING},
|
||||
{DRM_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR},
|
||||
}
|
||||
};
|
||||
|
|
|
|||
14
vgem.c
14
vgem.c
|
|
@ -7,14 +7,14 @@
|
|||
#include "drv_priv.h"
|
||||
#include "helpers.h"
|
||||
|
||||
static drv_format_t vgem_resolve_format(drv_format_t format)
|
||||
static uint32_t vgem_resolve_format(uint32_t format)
|
||||
{
|
||||
switch (format) {
|
||||
case DRV_FORMAT_FLEX_IMPLEMENTATION_DEFINED:
|
||||
case DRM_FORMAT_FLEX_IMPLEMENTATION_DEFINED:
|
||||
/*HACK: See b/28671744 */
|
||||
return DRV_FORMAT_XBGR8888;
|
||||
case DRV_FORMAT_FLEX_YCbCr_420_888:
|
||||
return DRV_FORMAT_YVU420;
|
||||
return DRM_FORMAT_XBGR8888;
|
||||
case DRM_FORMAT_FLEX_YCbCr_420_888:
|
||||
return DRM_FORMAT_YVU420;
|
||||
default:
|
||||
return format;
|
||||
}
|
||||
|
|
@ -28,9 +28,9 @@ const struct backend backend_vgem =
|
|||
.bo_map = drv_dumb_bo_map,
|
||||
.resolve_format = vgem_resolve_format,
|
||||
.format_list = {
|
||||
{DRV_FORMAT_ABGR8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_RENDERING | DRV_BO_USE_CURSOR
|
||||
{DRM_FORMAT_ABGR8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_RENDERING | DRV_BO_USE_CURSOR
|
||||
| DRV_BO_USE_SW_READ_OFTEN | DRV_BO_USE_SW_WRITE_OFTEN},
|
||||
{DRV_FORMAT_YVU420, DRV_BO_USE_SCANOUT | DRV_BO_USE_RENDERING |
|
||||
{DRM_FORMAT_YVU420, DRV_BO_USE_SCANOUT | DRV_BO_USE_RENDERING |
|
||||
DRV_BO_USE_SW_READ_RARELY | DRV_BO_USE_SW_WRITE_RARELY},
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -14,10 +14,10 @@ const struct backend backend_virtio_gpu =
|
|||
.bo_destroy = drv_dumb_bo_destroy,
|
||||
.bo_map = drv_dumb_bo_map,
|
||||
.format_list = {
|
||||
{DRV_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING},
|
||||
{DRV_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR},
|
||||
{DRV_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING},
|
||||
{DRV_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR},
|
||||
{DRM_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING},
|
||||
{DRM_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR},
|
||||
{DRM_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING},
|
||||
{DRM_FORMAT_ARGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR},
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue