X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=exynos.c;h=0d935ebf13cce5f93e5d8239d22f278d06c548ca;hb=4b5d0bf2ab4da0f475f01575fb369b7eb9415d7c;hp=a18261e219b7e5adecbcf166caa455dc1dcc0e2b;hpb=1b1d56ae4018eaed1da9d6e7032554156b7be020;p=android-x86%2Fexternal-minigbm.git diff --git a/exynos.c b/exynos.c index a18261e..0d935eb 100644 --- a/exynos.c +++ b/exynos.c @@ -19,12 +19,24 @@ #include "helpers.h" #include "util.h" -static const uint32_t supported_formats[] = { DRM_FORMAT_ARGB8888, DRM_FORMAT_NV12, - DRM_FORMAT_XRGB8888 }; +static const uint32_t render_target_formats[] = { DRM_FORMAT_ARGB8888, DRM_FORMAT_XRGB8888 }; + +static const uint32_t texture_source_formats[] = { DRM_FORMAT_NV12 }; static int exynos_init(struct driver *drv) { - return drv_add_linear_combinations(drv, supported_formats, ARRAY_SIZE(supported_formats)); + int ret; + ret = drv_add_combinations(drv, render_target_formats, ARRAY_SIZE(render_target_formats), + &LINEAR_METADATA, BO_USE_RENDER_MASK); + if (ret) + return ret; + + ret = drv_add_combinations(drv, texture_source_formats, ARRAY_SIZE(texture_source_formats), + &LINEAR_METADATA, BO_USE_TEXTURE_MASK); + if (ret) + return ret; + + return drv_modify_linear_combinations(drv); } static int exynos_bo_create(struct bo *bo, uint32_t width, uint32_t height, uint32_t format, @@ -65,8 +77,7 @@ static int exynos_bo_create(struct bo *bo, uint32_t width, uint32_t height, uint ret = drmIoctl(bo->drv->fd, DRM_IOCTL_EXYNOS_GEM_CREATE, &gem_create); if (ret) { - fprintf(stderr, "drv: DRM_IOCTL_EXYNOS_GEM_CREATE failed " - "(size=%zu)\n", + fprintf(stderr, "drv: DRM_IOCTL_EXYNOS_GEM_CREATE failed (size=%zu)\n", size); goto cleanup_planes; }