diff options
author | Gurchetan Singh <gurchetansingh@chromium.org> | 2016-08-16 17:57:10 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2016-08-22 14:52:30 -0700 |
commit | bfba8c2697ef0dec00ba28eb7d976d56e3e61166 (patch) | |
tree | 79b292924ca619497f5bbd1d770ecf4868351898 /rockchip.c | |
parent | d7c84fd88fb71f30c90d3d13bd8dfc2c2d2541da (diff) |
minigbm: Added gralloc API to internal API
Added the drv analogues of the 2 flexible formats we need to support.
Added analogues of most of the gralloc use flags, except:
GRALLOC_USAGE_SW_READ_MASK
GRALLOC_USAGE_SW_WRITE_MASK
GRALLOC_USAGE_HW_MASK
GRALLOC_USAGE_FOREIGN_BUFFERS
GRALLOC_USAGE_ALLOC_MASK
These are used as masks and don't make sense as usage hints. In
addition, put the new flags in the drivers' supported lists and
added a flexible format query function.
BUG=chromium:616275
TEST=minigbm still builds
CQ-DEPEND=CL:371501
Change-Id: Idd2ecd6fde3e6c5caaaf3a8404d0d7db20b4ecf4
Reviewed-on: https://chromium-review.googlesource.com/372359
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
Diffstat (limited to 'rockchip.c')
-rw-r--r-- | rockchip.c | 43 |
1 files changed, 36 insertions, 7 deletions
@@ -93,20 +93,49 @@ static void *rockchip_bo_map(struct bo *bo) bo->drv->fd, gem_map.offset); } +drv_format_t rockchip_resolve_format(drv_format_t format) +{ + switch (format) { + case DRV_FORMAT_FLEX_IMPLEMENTATION_DEFINED: + /*HACK: See b/28671744 */ + return DRV_FORMAT_XBGR8888; + case DRV_FORMAT_FLEX_YCbCr_420_888: + return DRV_FORMAT_NV12; + default: + return format; + } +} + const struct backend backend_rockchip = { .name = "rockchip", .bo_create = rockchip_bo_create, .bo_destroy = drv_gem_bo_destroy, .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}, - {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_ABGR8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | DRV_BO_USE_RENDERING}, - {DRV_FORMAT_NV12, DRV_BO_USE_SCANOUT | DRV_BO_USE_RENDERING}, - {DRV_FORMAT_NV12, DRV_BO_USE_SCANOUT | DRV_BO_USE_LINEAR}, + {DRV_FORMAT_XRGB8888, DRV_BO_USE_SCANOUT | DRV_BO_USE_CURSOR | + DRV_BO_USE_RENDERING | DRV_BO_USE_HW_TEXTURE | + DRV_BO_USE_HW_RENDER | DRV_BO_USE_HW_2D | + 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 | + 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 | DRV_BO_USE_HW_TEXTURE | + DRV_BO_USE_HW_RENDER | DRV_BO_USE_HW_2D | + 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 | + 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 | DRV_BO_USE_HW_TEXTURE | + DRV_BO_USE_HW_RENDER | DRV_BO_USE_HW_2D | + DRV_BO_USE_SW_READ_RARELY | DRV_BO_USE_SW_WRITE_RARELY}, + {DRV_FORMAT_NV12, DRV_BO_USE_SCANOUT | DRV_BO_USE_RENDERING | + DRV_BO_USE_HW_TEXTURE | DRV_BO_USE_HW_RENDER | + DRV_BO_USE_HW_2D | DRV_BO_USE_SW_READ_RARELY | + DRV_BO_USE_SW_WRITE_RARELY}, + {DRV_FORMAT_NV12, DRV_BO_USE_SCANOUT | DRV_BO_USE_LINEAR | + DRV_BO_USE_SW_READ_OFTEN | DRV_BO_USE_SW_WRITE_OFTEN}, } }; |