From: Mike Frysinger Date: Sun, 9 Oct 2016 02:34:30 +0000 (+0000) Subject: Revert "Add new GBM_BO_IMPORT_FD_PLANAR" X-Git-Url: http://git.osdn.net/view?p=android-x86%2Fexternal-minigbm.git;a=commitdiff_plain;h=602bd16a60a01ebb0ce911712256047df18acaa5 Revert "Add new GBM_BO_IMPORT_FD_PLANAR" This reverts commit bb19d6abec19015eb16fe33d3a4128194f8c7f2f. This was chumped w/out explanation, and the bots have all been dead since due to graphics_Gbm check failures. Reverting in the hope it'll fix things. It can reland via the CQ. BUG=chromium:654245 Change-Id: I0d88f7731e9e90fffee1485056d787430eb0b850 Reviewed-on: https://chromium-review.googlesource.com/395727 Reviewed-by: Mike Frysinger Tested-by: Mike Frysinger --- diff --git a/drv.c b/drv.c index d4a50ce..f2376a2 100644 --- a/drv.c +++ b/drv.c @@ -315,7 +315,6 @@ struct bo *drv_bo_import(struct driver *drv, struct drv_import_fd_data *data) bo->strides[plane] = data->strides[plane]; bo->offsets[plane] = data->offsets[plane]; bo->sizes[plane] = data->sizes[plane]; - bo->format_modifiers[plane] = data->format_modifiers[plane]; pthread_mutex_lock(&drv->table_lock); drv_increment_reference_count(drv, bo, plane); diff --git a/drv.h b/drv.h index dbede51..cc7752a 100644 --- a/drv.h +++ b/drv.h @@ -135,7 +135,6 @@ struct drv_import_fd_data { uint32_t strides[DRV_MAX_PLANES]; uint32_t offsets[DRV_MAX_PLANES]; uint32_t sizes[DRV_MAX_PLANES]; - uint64_t format_modifiers[DRV_MAX_PLANES]; uint32_t width; uint32_t height; drv_format_t format; @@ -215,3 +214,4 @@ drv_resolve_format(struct driver *drv, drv_format_t format); #endif #endif + diff --git a/gbm.c b/gbm.c index 8769b8e..394aea0 100644 --- a/gbm.c +++ b/gbm.c @@ -158,34 +158,9 @@ gbm_bo_import(struct gbm_device *gbm, uint32_t type, struct gbm_bo *bo; struct drv_import_fd_data drv_data; struct gbm_import_fd_data *fd_data = buffer; - struct gbm_import_fd_planar_data *fd_planar_data = buffer; - int i; - memset(&drv_data, 0, sizeof(drv_data)); - - switch (type) { - case GBM_BO_IMPORT_FD: - drv_data.width = fd_data->width; - drv_data.height = fd_data->height; - drv_data.format = gbm_convert_format(fd_data->format); - drv_data.fds[0] = fd_data->fd; - drv_data.strides[0] = fd_data->stride; - break; - case GBM_BO_IMPORT_FD_PLANAR: - drv_data.width = fd_planar_data->width; - drv_data.height = fd_planar_data->height; - drv_data.format = gbm_convert_format(fd_planar_data->format); - for (i = 0; i < 4; i++) { - drv_data.fds[i] = fd_planar_data->fds[i]; - drv_data.offsets[i] = fd_planar_data->offsets[i]; - drv_data.strides[i] = fd_planar_data->strides[i]; - drv_data.format_modifiers[i] = - fd_planar_data->format_modifiers[i]; - } - break; - default: + if (type != GBM_BO_IMPORT_FD) return NULL; - } if (!gbm_device_is_format_supported(gbm, fd_data->format, usage)) return NULL; @@ -195,6 +170,21 @@ gbm_bo_import(struct gbm_device *gbm, uint32_t type, if (!bo) return NULL; + /* + * Minigbm only supports importing single-plane formats at moment. + * If multi-plane import is desired, the interface will have to be + * modified. + */ + + memset(&drv_data, 0, sizeof(drv_data)); + drv_data.fds[0] = fd_data->fd; + drv_data.strides[0] = fd_data->stride; + drv_data.offsets[0] = 0; + drv_data.sizes[0] = fd_data->height * fd_data->stride; + drv_data.width = fd_data->width; + drv_data.height = fd_data->height; + drv_data.format = gbm_convert_format(fd_data->format); + bo->bo = drv_bo_import(gbm->drv, &drv_data); if (!bo->bo) { diff --git a/gbm.h b/gbm.h index 87c1eb7..cc36b72 100644 --- a/gbm.h +++ b/gbm.h @@ -262,7 +262,6 @@ gbm_bo_create(struct gbm_device *gbm, #define GBM_BO_IMPORT_WL_BUFFER 0x5501 #define GBM_BO_IMPORT_EGL_IMAGE 0x5502 #define GBM_BO_IMPORT_FD 0x5503 -#define GBM_BO_IMPORT_FD_PLANAR 0x5504 struct gbm_import_fd_data { int fd; @@ -272,16 +271,6 @@ struct gbm_import_fd_data { uint32_t format; }; -struct gbm_import_fd_planar_data { - int fds[4]; - uint32_t width; - uint32_t height; - uint32_t format; - uint32_t offsets[4]; - uint32_t strides[4]; - uint64_t format_modifiers[4]; -}; - struct gbm_bo * gbm_bo_import(struct gbm_device *gbm, uint32_t type, void *buffer, uint32_t usage);