erase pp
authorJunkyeong Kim <jk0430.kim@samsung.com>
Fri, 1 Dec 2017 05:33:58 +0000 (14:33 +0900)
committerBoram Park <boram1288.park@samsung.com>
Fri, 1 Dec 2017 05:39:17 +0000 (14:39 +0900)
Change-Id: I18ebf9f6b84390f1e23622067ef388cb5c8c9ce5
Signed-off-by: Junkyeong Kim <jk0430.kim@samsung.com>
src/Makefile.am
src/tdm_vc4.c
src/tdm_vc4.h
src/tdm_vc4_display.c
src/tdm_vc4_pp.c [deleted file]
src/tdm_vc4_pp.h [deleted file]

index 01f7669..e62aca3 100644 (file)
@@ -9,6 +9,5 @@ libtdm_vc4_la_LIBADD = $(TDM_VC4_LIBS) -ldl
 
 libtdm_vc4_la_SOURCES = \
        tdm_vc4_format.c \
-       tdm_vc4_pp.c \
        tdm_vc4_display.c \
        tdm_vc4.c
index b111995..110908f 100644 (file)
@@ -10,8 +10,6 @@
 #include <tdm_helper.h>
 #include <tbm_drm_helper.h>
 
-#define ENABLE_PP
-
 #define TDM_DRM_NAME "vc4-drm"
 
 static tdm_vc4_data *vc4_data;
@@ -233,9 +231,6 @@ tdm_vc4_init(tdm_display *dpy, tdm_error *error)
        tdm_func_display vc4_func_display;
        tdm_func_output vc4_func_output;
        tdm_func_layer vc4_func_layer;
-#ifdef ENABLE_PP
-       tdm_func_pp vc4_func_pp;
-#endif
        tdm_error ret;
 
        if (!dpy) {
@@ -265,11 +260,9 @@ tdm_vc4_init(tdm_display *dpy, tdm_error *error)
 
        memset(&vc4_func_display, 0, sizeof(vc4_func_display));
        vc4_func_display.display_get_capability = vc4_display_get_capability;
-       vc4_func_display.display_get_pp_capability = vc4_display_get_pp_capability;
        vc4_func_display.display_get_outputs = vc4_display_get_outputs;
        vc4_func_display.display_get_fd = vc4_display_get_fd;
        vc4_func_display.display_handle_events = vc4_display_handle_events;
-       vc4_func_display.display_create_pp = vc4_display_create_pp;
 
        memset(&vc4_func_output, 0, sizeof(vc4_func_output));
        vc4_func_output.output_get_capability = vc4_output_get_capability;
@@ -297,15 +290,6 @@ tdm_vc4_init(tdm_display *dpy, tdm_error *error)
        vc4_func_layer.layer_set_buffer = vc4_layer_set_buffer;
        vc4_func_layer.layer_unset_buffer = vc4_layer_unset_buffer;
 
-#ifdef ENABLE_PP
-       memset(&vc4_func_pp, 0, sizeof(vc4_func_pp));
-       vc4_func_pp.pp_destroy = vc4_pp_destroy;
-       vc4_func_pp.pp_set_info = vc4_pp_set_info;
-       vc4_func_pp.pp_attach = vc4_pp_attach;
-       vc4_func_pp.pp_commit = vc4_pp_commit;
-       vc4_func_pp.pp_set_done_handler = vc4_pp_set_done_handler;
-#endif
-
        ret = tdm_backend_register_func_display(dpy, &vc4_func_display);
        if (ret != TDM_ERROR_NONE)
                goto failed;
@@ -318,12 +302,6 @@ tdm_vc4_init(tdm_display *dpy, tdm_error *error)
        if (ret != TDM_ERROR_NONE)
                goto failed;
 
-#ifdef ENABLE_PP
-       ret = tdm_backend_register_func_pp(dpy, &vc4_func_pp);
-       if (ret != TDM_ERROR_NONE)
-               goto failed;
-#endif
-
        vc4_data->dpy = dpy;
 
        /* The drm master fd can be opened by a tbm backend module in
index ad67ed5..6ed6ad3 100644 (file)
 
 /* drm backend functions (display) */
 tdm_error      vc4_display_get_capability(tdm_backend_data *bdata, tdm_caps_display *caps);
-tdm_error      vc4_display_get_pp_capability(tdm_backend_data *bdata, tdm_caps_pp *caps);
 tdm_output** vc4_display_get_outputs(tdm_backend_data *bdata, int *count, tdm_error *error);
 tdm_error      vc4_display_get_fd(tdm_backend_data *bdata, int *fd);
 tdm_error      vc4_display_handle_events(tdm_backend_data *bdata);
-tdm_pp*          vc4_display_create_pp(tdm_backend_data *bdata, tdm_error *error);
 tdm_error      vc4_output_get_capability(tdm_output *output, tdm_caps_output *caps);
 tdm_layer**  vc4_output_get_layers(tdm_output *output, int *count, tdm_error *error);
 tdm_error      vc4_output_set_property(tdm_output *output, unsigned int id, tdm_value value);
@@ -56,11 +54,6 @@ tdm_error    vc4_layer_set_info(tdm_layer *layer, tdm_info_layer *info);
 tdm_error      vc4_layer_get_info(tdm_layer *layer, tdm_info_layer *info);
 tdm_error      vc4_layer_set_buffer(tdm_layer *layer, tbm_surface_h buffer);
 tdm_error      vc4_layer_unset_buffer(tdm_layer *layer);
-void            vc4_pp_destroy(tdm_pp *pp);
-tdm_error      vc4_pp_set_info(tdm_pp *pp, tdm_info_pp *info);
-tdm_error      vc4_pp_attach(tdm_pp *pp, tbm_surface_h src, tbm_surface_h dst);
-tdm_error      vc4_pp_commit(tdm_pp *pp);
-tdm_error      vc4_pp_set_done_handler(tdm_pp *pp, tdm_pp_done_handler func, void *user_data);
 
 /* drm module internal macros, structures, functions */
 #define NEVER_GET_HERE() TDM_ERR("** NEVER GET HERE **")
index c59b60a..d2c7ada 100644 (file)
@@ -6,7 +6,6 @@
 #include <tdm_helper.h>
 
 #include "tdm_vc4.h"
-#include "tdm_vc4_pp.h"
 
 #define MIN_WIDTH   32
 
@@ -1006,12 +1005,6 @@ vc4_display_get_capability(tdm_backend_data *bdata, tdm_caps_display *caps)
        return TDM_ERROR_NONE;
 }
 
-tdm_error
-vc4_display_get_pp_capability(tdm_backend_data *bdata, tdm_caps_pp *caps)
-{
-       return tdm_vc4_pp_get_capability(bdata, caps);
-}
-
 tdm_output **
 vc4_display_get_outputs(tdm_backend_data *bdata, int *count, tdm_error *error)
 {
@@ -1088,16 +1081,6 @@ vc4_display_handle_events(tdm_backend_data *bdata)
        return TDM_ERROR_NONE;
 }
 
-tdm_pp *
-vc4_display_create_pp(tdm_backend_data *bdata, tdm_error *error)
-{
-       tdm_vc4_data *vc4_data = bdata;
-
-       RETURN_VAL_IF_FAIL(vc4_data, NULL);
-
-       return tdm_vc4_pp_create(vc4_data, error);
-}
-
 tdm_error
 vc4_output_get_capability(tdm_output *output, tdm_caps_output *caps)
 {
diff --git a/src/tdm_vc4_pp.c b/src/tdm_vc4_pp.c
deleted file mode 100644 (file)
index 2abcc6c..0000000
+++ /dev/null
@@ -1,404 +0,0 @@
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <pixman.h>
-
-#include "tdm_vc4.h"
-#include "tdm_helper.h"
-
-typedef struct _tdm_vc4_pp_buffer {
-       tbm_surface_h src;
-       tbm_surface_h dst;
-
-       struct list_head link;
-} tdm_vc4_pp_buffer;
-
-typedef struct _tdm_vc4_pp_data {
-       tdm_vc4_data *vc4_data;
-
-       tdm_info_pp info;
-
-       struct list_head pending_buffer_list;
-
-       tdm_pp_done_handler done_func;
-       void *done_user_data;
-
-       struct list_head link;
-} tdm_vc4_pp_data;
-
-
-static tbm_format pp_formats[] = {
-       TBM_FORMAT_ARGB8888,
-       TBM_FORMAT_XRGB8888,
-       TBM_FORMAT_YUV420,
-       TBM_FORMAT_YVU420
-};
-
-#define NUM_PP_FORMAT   (sizeof(pp_formats) / sizeof(pp_formats[0]))
-
-static int pp_list_init;
-static struct list_head pp_list;
-
-static pixman_format_code_t
-_tdm_vc4_pp_pixman_get_format(tbm_format tbmfmt)
-{
-       switch (tbmfmt) {
-       case TBM_FORMAT_ARGB8888:
-               return PIXMAN_a8r8g8b8;
-       case TBM_FORMAT_XRGB8888:
-               return PIXMAN_x8r8g8b8;
-       case TBM_FORMAT_YUV420:
-       case TBM_FORMAT_YVU420:
-               return PIXMAN_yv12;
-       default:
-               return 0;
-       }
-}
-
-int
-_tdm_vc4_pp_pixman_convert(pixman_op_t op,
-                                                  unsigned char *srcbuf, unsigned char *dstbuf,
-                                                  pixman_format_code_t src_format, pixman_format_code_t dst_format,
-                                                  int sbw, int sbh, int sx, int sy, int sw, int sh,
-                                                  int dbw, int dbh, int dx, int dy, int dw, int dh,
-                                                  int rotate, int hflip, int vflip)
-{
-       pixman_image_t  *src_img;
-       pixman_image_t  *dst_img;
-       struct pixman_f_transform ft;
-       pixman_transform_t transform;
-       int                             src_stride, dst_stride;
-       int                             src_bpp;
-       int                             dst_bpp;
-       double                   scale_x, scale_y;
-       int                             rotate_step;
-       int                             ret = 0;
-
-       RETURN_VAL_IF_FAIL(srcbuf != NULL, 0);
-       RETURN_VAL_IF_FAIL(dstbuf != NULL, 0);
-
-       TDM_DBG("src(%dx%d: %d,%d %dx%d) dst(%dx%d: %d,%d %dx%d) flip(%d,%d), rot(%d)",
-                       sbw, sbh, sx, sy, sw, sh, dbw, dbh, dx, dy, dw, dh, hflip, vflip, rotate);
-
-       src_bpp = PIXMAN_FORMAT_BPP(src_format) / 8;
-       RETURN_VAL_IF_FAIL(src_bpp > 0, 0);
-
-       dst_bpp = PIXMAN_FORMAT_BPP(dst_format) / 8;
-       RETURN_VAL_IF_FAIL(dst_bpp > 0, 0);
-
-       rotate_step = (rotate + 360) / 90 % 4;
-
-       src_stride = sbw * src_bpp;
-       dst_stride = dbw * dst_bpp;
-
-       src_img = pixman_image_create_bits(src_format, sbw, sbh, (uint32_t *)srcbuf,
-                                                                          src_stride);
-       dst_img = pixman_image_create_bits(dst_format, dbw, dbh, (uint32_t *)dstbuf,
-                                                                          dst_stride);
-
-       GOTO_IF_FAIL(src_img != NULL, CANT_CONVERT);
-       GOTO_IF_FAIL(dst_img != NULL, CANT_CONVERT);
-
-       pixman_f_transform_init_identity(&ft);
-
-       if (hflip) {
-               pixman_f_transform_scale(&ft, NULL, -1, 1);
-               pixman_f_transform_translate(&ft, NULL, dw, 0);
-       }
-
-       if (vflip) {
-               pixman_f_transform_scale(&ft, NULL, 1, -1);
-               pixman_f_transform_translate(&ft, NULL, 0, dh);
-       }
-
-       if (rotate_step > 0) {
-               int c = 0, s = 0, tx = 0, ty = 0;
-               if (rotate_step == 1) /* 90 degrees */
-                       s = -1, tx = -dw;
-               else if (rotate_step == 2) /* 180 degrees */
-                       c = -1, tx = -dw, ty = -dh;
-               else /* 270 degrees */
-                       s = 1, ty = -dh;
-
-               pixman_f_transform_translate(&ft, NULL, tx, ty);
-               pixman_f_transform_rotate(&ft, NULL, c, s);
-       }
-
-       if (rotate_step % 2 == 0) {
-               scale_x = (double)sw / dw;
-               scale_y = (double)sh / dh;
-       } else {
-               scale_x = (double)sw / dh;
-               scale_y = (double)sh / dw;
-       }
-
-       pixman_f_transform_scale(&ft, NULL, scale_x, scale_y);
-       pixman_f_transform_translate(&ft, NULL, sx, sy);
-
-       pixman_transform_from_pixman_f_transform(&transform, &ft);
-       pixman_image_set_transform(src_img, &transform);
-
-       pixman_image_composite(op, src_img, NULL, dst_img, 0, 0, 0, 0, dx, dy, dw, dh);
-
-       ret = 1;
-
-CANT_CONVERT:
-       if (src_img)
-               pixman_image_unref(src_img);
-       if (dst_img)
-               pixman_image_unref(dst_img);
-
-       return ret;
-}
-
-static tdm_error
-_tdm_vc4_pp_convert(tdm_vc4_pp_buffer *buffer, tdm_info_pp *info)
-{
-       tbm_surface_info_s src_info, dst_info;
-       pixman_format_code_t src_format, dst_format;
-       int sbw, dbw;
-       int rotate = 0, hflip = 0;
-       tbm_bo bo = NULL;
-       int bo_cnt = 0;
-       int bo_size = 0;
-
-       RETURN_VAL_IF_FAIL(buffer != NULL, TDM_ERROR_INVALID_PARAMETER);
-       RETURN_VAL_IF_FAIL(buffer->src != NULL, TDM_ERROR_INVALID_PARAMETER);
-       RETURN_VAL_IF_FAIL(buffer->dst != NULL, TDM_ERROR_INVALID_PARAMETER);
-       RETURN_VAL_IF_FAIL(info != NULL, TDM_ERROR_INVALID_PARAMETER);
-
-       bo_cnt = tbm_surface_internal_get_num_bos(buffer->src);
-       RETURN_VAL_IF_FAIL(bo_cnt == 1, TDM_ERROR_INVALID_PARAMETER);
-
-       bo_cnt = tbm_surface_internal_get_num_bos(buffer->dst);
-       RETURN_VAL_IF_FAIL(bo_cnt == 1, TDM_ERROR_INVALID_PARAMETER);
-
-       bo = tbm_surface_internal_get_bo(buffer->src, 0);
-       RETURN_VAL_IF_FAIL(bo != NULL, TDM_ERROR_INVALID_PARAMETER);
-
-       bo_size = tbm_bo_size(bo);
-
-       /* not handle buffers which have 2 more gem handles */
-
-       memset(&src_info, 0, sizeof(tbm_surface_info_s));
-       tbm_surface_map(buffer->src, TBM_OPTION_READ, &src_info);
-       GOTO_IF_FAIL(src_info.planes[0].ptr != NULL, fail_convert);
-
-       memset(&dst_info, 0, sizeof(tbm_surface_info_s));
-       tbm_surface_map(buffer->dst, TBM_OPTION_WRITE, &dst_info);
-       GOTO_IF_FAIL(dst_info.planes[0].ptr != NULL, fail_convert);
-
-       src_format = _tdm_vc4_pp_pixman_get_format(src_info.format);
-       GOTO_IF_FAIL(src_format > 0, fail_convert);
-       dst_format = _tdm_vc4_pp_pixman_get_format(dst_info.format);
-       GOTO_IF_FAIL(dst_format > 0, fail_convert);
-
-       if (src_info.format == TBM_FORMAT_YUV420) {
-               if (dst_info.format == TBM_FORMAT_XRGB8888)
-                       dst_format = PIXMAN_x8b8g8r8;
-               else if (dst_info.format == TBM_FORMAT_ARGB8888)
-                       dst_format = PIXMAN_a8b8g8r8;
-               else if (dst_info.format == TBM_FORMAT_YVU420) {
-                       TDM_ERR("can't convert %c%c%c%c to %c%c%c%c",
-                                       FOURCC_STR(src_info.format), FOURCC_STR(dst_info.format));
-                       goto fail_convert;
-               }
-       }
-       /* need checking for other formats also? */
-
-       if (IS_RGB(src_info.format))
-               sbw = src_info.planes[0].stride >> 2;
-       else
-               sbw = src_info.planes[0].stride;
-
-       if (IS_RGB(dst_info.format))
-               dbw = dst_info.planes[0].stride >> 2;
-       else
-               dbw = dst_info.planes[0].stride;
-
-       rotate = (info->transform % 4) * 90;
-       if (info->transform >= TDM_TRANSFORM_FLIPPED)
-               hflip = 1;
-
-       if (bo_size < src_info.planes[0].stride * src_info.height) {
-               TDM_WRN("bo size(%d) is smaller than the expected size(%d)",
-                               bo_size, src_info.planes[0].stride * src_info.height);
-               goto fail_convert;
-       }
-
-       _tdm_vc4_pp_pixman_convert(PIXMAN_OP_SRC,
-                                                          src_info.planes[0].ptr, dst_info.planes[0].ptr,
-                                                          src_format, dst_format,
-                                                          sbw, src_info.height,
-                                                          info->src_config.pos.x, info->src_config.pos.y,
-                                                          info->src_config.pos.w, info->src_config.pos.h,
-                                                          dbw, dst_info.height,
-                                                          info->dst_config.pos.x, info->dst_config.pos.y,
-                                                          info->dst_config.pos.w, info->dst_config.pos.h,
-                                                          rotate, hflip, 0);
-       tbm_surface_unmap(buffer->src);
-       tbm_surface_unmap(buffer->dst);
-
-       return TDM_ERROR_NONE;
-fail_convert:
-       tbm_surface_unmap(buffer->src);
-       tbm_surface_unmap(buffer->dst);
-       return TDM_ERROR_OPERATION_FAILED;
-}
-
-tdm_error
-tdm_vc4_pp_get_capability(tdm_vc4_data *vc4_data, tdm_caps_pp *caps)
-{
-       int i;
-
-       if (!caps) {
-               TDM_ERR("invalid params");
-               return TDM_ERROR_INVALID_PARAMETER;
-       }
-
-       caps->capabilities = TDM_PP_CAPABILITY_SYNC;
-
-       caps->format_count = NUM_PP_FORMAT;
-
-       /* will be freed in frontend */
-       caps->formats = calloc(1, sizeof pp_formats);
-       if (!caps->formats) {
-               TDM_ERR("alloc failed");
-               return TDM_ERROR_OUT_OF_MEMORY;
-       }
-       for (i = 0; i < caps->format_count; i++)
-               caps->formats[i] = pp_formats[i];
-
-       caps->min_w = 16;
-       caps->min_h = 8;
-       caps->max_w = -1;   /* not defined */
-       caps->max_h = -1;
-       caps->preferred_align = 16;
-
-       return TDM_ERROR_NONE;
-}
-
-tdm_pp *
-tdm_vc4_pp_create(tdm_vc4_data *vc4_data, tdm_error *error)
-{
-       tdm_vc4_pp_data *pp_data = calloc(1, sizeof(tdm_vc4_pp_data));
-       if (!pp_data) {
-               TDM_ERR("alloc failed");
-               if (error)
-                       *error = TDM_ERROR_OUT_OF_MEMORY;
-               return NULL;
-       }
-
-       pp_data->vc4_data = vc4_data;
-
-       LIST_INITHEAD(&pp_data->pending_buffer_list);
-
-       if (!pp_list_init) {
-               pp_list_init = 1;
-               LIST_INITHEAD(&pp_list);
-       }
-       LIST_ADDTAIL(&pp_data->link, &pp_list);
-
-       return pp_data;
-}
-
-void
-vc4_pp_destroy(tdm_pp *pp)
-{
-       tdm_vc4_pp_data *pp_data = pp;
-       tdm_vc4_pp_buffer *b = NULL, *bb = NULL;
-
-       if (!pp_data)
-               return;
-
-       LIST_FOR_EACH_ENTRY_SAFE(b, bb, &pp_data->pending_buffer_list, link) {
-               LIST_DEL(&b->link);
-               free(b);
-       }
-
-       LIST_DEL(&pp_data->link);
-
-       free(pp_data);
-}
-
-tdm_error
-vc4_pp_set_info(tdm_pp *pp, tdm_info_pp *info)
-{
-       tdm_vc4_pp_data *pp_data = pp;
-
-       RETURN_VAL_IF_FAIL(pp_data, TDM_ERROR_INVALID_PARAMETER);
-       RETURN_VAL_IF_FAIL(info, TDM_ERROR_INVALID_PARAMETER);
-
-       pp_data->info = *info;
-
-       return TDM_ERROR_NONE;
-}
-
-tdm_error
-vc4_pp_attach(tdm_pp *pp, tbm_surface_h src, tbm_surface_h dst)
-{
-       tdm_vc4_pp_data *pp_data = pp;
-       tdm_vc4_pp_buffer *buffer;
-
-       RETURN_VAL_IF_FAIL(pp_data, TDM_ERROR_INVALID_PARAMETER);
-       RETURN_VAL_IF_FAIL(src, TDM_ERROR_INVALID_PARAMETER);
-       RETURN_VAL_IF_FAIL(dst, TDM_ERROR_INVALID_PARAMETER);
-
-       if (tbm_surface_internal_get_num_bos(src) > 1 ||
-               tbm_surface_internal_get_num_bos(dst) > 1) {
-               TDM_ERR("can't handle multiple tbm bos");
-               return TDM_ERROR_OPERATION_FAILED;
-       }
-
-       buffer = calloc(1, sizeof(tdm_vc4_pp_buffer));
-       if (!buffer) {
-               TDM_ERR("alloc failed");
-               return TDM_ERROR_NONE;
-       }
-
-       LIST_ADDTAIL(&buffer->link, &pp_data->pending_buffer_list);
-
-       buffer->src = src;
-       buffer->dst = dst;
-
-       return TDM_ERROR_NONE;
-}
-
-tdm_error
-vc4_pp_commit(tdm_pp *pp)
-{
-       tdm_vc4_pp_data *pp_data = pp;
-       tdm_vc4_pp_buffer *b = NULL, *bb = NULL;
-
-       RETURN_VAL_IF_FAIL(pp_data, TDM_ERROR_INVALID_PARAMETER);
-
-       LIST_FOR_EACH_ENTRY_SAFE(b, bb, &pp_data->pending_buffer_list, link) {
-               LIST_DEL(&b->link);
-
-               _tdm_vc4_pp_convert(b, &pp_data->info);
-
-               if (pp_data->done_func)
-                       pp_data->done_func(pp_data,
-                                                          b->src,
-                                                          b->dst,
-                                                          pp_data->done_user_data);
-               free(b);
-       }
-
-       return TDM_ERROR_NONE;
-}
-
-tdm_error
-vc4_pp_set_done_handler(tdm_pp *pp, tdm_pp_done_handler func, void *user_data)
-{
-       tdm_vc4_pp_data *pp_data = pp;
-
-       RETURN_VAL_IF_FAIL(pp_data, TDM_ERROR_INVALID_PARAMETER);
-       RETURN_VAL_IF_FAIL(func, TDM_ERROR_INVALID_PARAMETER);
-
-       pp_data->done_func = func;
-       pp_data->done_user_data = user_data;
-
-       return TDM_ERROR_NONE;
-}
diff --git a/src/tdm_vc4_pp.h b/src/tdm_vc4_pp.h
deleted file mode 100644 (file)
index 4133332..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef _TDM_VC4_PP_H_
-#define _TDM_VC4_PP_H_
-
-#include "tdm_vc4.h"
-
-tdm_error      tdm_vc4_pp_get_capability(tdm_vc4_data *drm_data, tdm_caps_pp *caps);
-tdm_pp*          tdm_vc4_pp_create(tdm_vc4_data *drm_data, tdm_error *error);
-void            tdm_vc4_pp_handler(unsigned int prop_id, unsigned int *buf_idx,
-                                                                  unsigned int tv_sec, unsigned int tv_usec, void *data);
-void            tdm_vc4_pp_cb(int fd, unsigned int prop_id, unsigned int *buf_idx,
-                                                         unsigned int tv_sec, unsigned int tv_usec,
-                                                         void *user_data);
-#endif /* _TDM_VC4_PP_H_ */