tbm_bufmgr: change tbm_bo_alloc_with_format name 00/259900/1
authorSooChan Lim <sc1.lim@samsung.com>
Wed, 16 Jun 2021 05:40:40 +0000 (14:40 +0900)
committerSooChan Lim <sc1.lim@samsung.com>
Wed, 16 Jun 2021 06:03:08 +0000 (15:03 +0900)
change tbm_bo_alloc_with_format into tbm_bufmgr_internal_alloc_bo_with_format
and move this function to tbm_bufmgr.c

Change-Id: I1827f2ee05534ad7a56221b4c704a33dc965c432

src/tbm_bo.c
src/tbm_bufmgr.c
src/tbm_bufmgr_int.h
src/tbm_module.c
src/tbm_surface_internal.c

index daefd18..8872848 100644 (file)
@@ -34,8 +34,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #include "tbm_bufmgr_int.h"
 #include "list.h"
 
-#define TBM_BO_MAGIC 0xBF011234
-
 /* check condition */
 #define TBM_BO_RETURN_IF_FAIL(cond) {\
        if (!(cond)) {\
@@ -403,51 +401,6 @@ alloc_fail:
 
 /* LCOV_EXCL_START */
 tbm_bo
-tbm_bo_alloc_with_format(tbm_bufmgr bufmgr, int format, int bo_idx, int width,
-                                               int height, int bpp, tbm_bo_memory_type flags, tbm_error_e *error)
-{
-       tbm_bo bo = NULL;
-
-       _tbm_bufmgr_mutex_lock();
-       _tbm_set_last_result(TBM_ERROR_NONE);
-
-       TBM_BO_RETURN_VAL_IF_FAIL(TBM_BUFMGR_IS_VALID(bufmgr), NULL);
-
-       bo = calloc(1, sizeof(struct _tbm_bo));
-       if (!bo) {
-               /* LCOV_EXCL_START */
-               TBM_ERR("error: fail to tbm_bo_alloc_with_format fmt(%s) idx(%d) w(%d) h(%d) mem_types(%s)\n",
-                               FOURCC_STR(format), bo_idx, width, height, _tbm_flag_to_str(flags));
-               _tbm_set_last_result(TBM_ERROR_OUT_OF_MEMORY);
-               /* LCOV_EXCL_STOP */
-               goto fail;
-       }
-
-       _tbm_util_check_bo_cnt(bufmgr);
-
-       bo->bo_data = tbm_module_bufmgr_bo_alloc_with_format(bufmgr->module, format, bo_idx, width, height, bpp, flags, error);
-       if (!bo->bo_data) {
-               /* LCOV_EXCL_START */
-               _tbm_set_last_result(*error);
-               /* LCOV_EXCL_STOP */
-               goto fail;
-       }
-
-       _tbm_bo_init(bufmgr, bo, flags);
-
-       _tbm_bufmgr_mutex_unlock();
-
-       return bo;
-
-fail:
-       if (bo)
-               free(bo);
-       _tbm_bufmgr_mutex_unlock();
-
-       return NULL;
-}
-
-tbm_bo
 tbm_bo_alloc_with_bo_data(tbm_bufmgr bufmgr, tbm_backend_bo_data *bo_data, int flags)
 {
        tbm_bo bo, bo2 = NULL;
index 43906f1..b235029 100644 (file)
@@ -77,6 +77,33 @@ void _tbm_bufmgr_mutex_unlock(void);
 
 /* LCOV_EXCL_START */
 
+static void
+_tbm_bufmgr_check_bo_cnt(tbm_bufmgr bufmgr)
+{
+       static int last_chk_bo_cnt = 0;
+
+       if ((bufmgr->bo_cnt >= 500) && ((bufmgr->bo_cnt % 20) == 0) &&
+               (bufmgr->bo_cnt > last_chk_bo_cnt)) {
+               TBM_DBG("============TBM BO CNT DEBUG: bo_cnt=%d\n", bufmgr->bo_cnt);
+               tbm_bufmgr_debug_show(bufmgr);
+               last_chk_bo_cnt = bufmgr->bo_cnt;
+       }
+}
+
+static void
+_tbm_bufmgr_initialize_bo(tbm_bufmgr bufmgr, tbm_bo bo, int flags)
+{
+       bo->bufmgr = bufmgr;
+       bo->flags = flags;
+       bo->magic = TBM_BO_MAGIC;
+       bo->ref_cnt = 1;
+
+       LIST_INITHEAD(&bo->user_data_list);
+
+       bufmgr->bo_cnt++;
+       LIST_ADD(&bo->item_link, &bufmgr->bo_list);
+}
+
 void
 _tbm_bufmgr_mutex_lock(void)
 {
@@ -885,4 +912,50 @@ tbm_bufmgr_internal_find_bo(tbm_bufmgr bufmgr, tbm_bo bo)
        return NULL;
 }
 
+/* LCOV_EXCL_START */
+
+tbm_bo
+tbm_bufmgr_internal_alloc_bo_with_format(tbm_bufmgr bufmgr, int format, int bo_idx, int width,
+                                               int height, int bpp, tbm_bo_memory_type flags, tbm_error_e *error)
+{
+       tbm_bo bo = NULL;
+
+       _tbm_bufmgr_mutex_lock();
+       _tbm_set_last_result(TBM_ERROR_NONE);
+
+       TBM_BUFMGR_RETURN_VAL_IF_FAIL(TBM_BUFMGR_IS_VALID(bufmgr), NULL);
+
+       _tbm_bufmgr_check_bo_cnt(bufmgr);
+
+       bo = calloc(1, sizeof(struct _tbm_bo));
+       if (!bo) {
+               /* LCOV_EXCL_START */
+               TBM_ERR("memory allocationc failed.");
+               _tbm_set_last_result(TBM_ERROR_OUT_OF_MEMORY);
+               /* LCOV_EXCL_STOP */
+               goto fail;
+       }
+
+       bo->bo_data = tbm_module_bufmgr_bo_alloc_with_format(bufmgr->module, format, bo_idx, width, height, bpp, flags, error);
+       if (!bo->bo_data) {
+               /* LCOV_EXCL_START */
+               _tbm_set_last_result(*error);
+               /* LCOV_EXCL_STOP */
+               goto fail;
+       }
+
+       _tbm_bufmgr_initialize_bo(bufmgr, bo, flags);
+
+       _tbm_bufmgr_mutex_unlock();
+
+       return bo;
+
+fail:
+       if (bo)
+               free(bo);
+       _tbm_bufmgr_mutex_unlock();
+
+       return NULL;
+}
+
 /* LCOV_EXCL_STOP */
index 8a19f80..c5cba30 100644 (file)
@@ -64,6 +64,8 @@ extern tbm_bufmgr gBufMgr;
 extern int b_dump_queue;
 extern int trace_mask;
 
+#define TBM_BO_MAGIC 0xBF011234
+
 #define C(b, m)                (((b) >> (m)) & 0xFF)
 #define B(c, s)                ((((unsigned int)(c)) & 0xff) << (s))
 #define FOURCC(a, b, c, d)     (B(d, 24) | B(c, 16) | B(b, 8) | B(a, 0))
@@ -347,7 +349,7 @@ void _tbm_bufmgr_mutex_lock(void);
 void _tbm_bufmgr_mutex_unlock(void);
 tbm_bo tbm_bufmgr_internal_find_bo(tbm_bufmgr bufmgr, tbm_bo bo);
 
-tbm_bo tbm_bo_alloc_with_format(tbm_bufmgr bufmgr, int format, int bo_idx, int width, int bpp, int height, tbm_bo_memory_type flags, tbm_error_e *error);
+tbm_bo tbm_bufmgr_internal_alloc_bo_with_format(tbm_bufmgr bufmgr, int format, int bo_idx, int width, int bpp, int height, tbm_bo_memory_type flags, tbm_error_e *error);
 tbm_bo tbm_bo_alloc_with_bo_data(tbm_bufmgr bufmgr, tbm_backend_bo_data *bo_data, int flags);
 
 /* tbm_module functions */
index bd2eeb8..140392a 100644 (file)
@@ -709,7 +709,7 @@ tbm_module_bufmgr_bo_alloc_with_format(tbm_module *module, int format, int bo_id
                break;
        case TBM_MODULE_TYPE_BUFMGR_BACKEND:
                TBM_WRN("!!WARNING: This backend interface will be DEPRECATED after Tizen 6.5.");
-               TBM_ERR("error: not supported tbm_bo_alloc_with_format.");
+               TBM_ERR("error: not supported tbm_bufmgr_internal_alloc_bo_with_format.");
 
                *error = TBM_ERROR_NOT_SUPPORTED;
                break;
index b85363b..8c6fc39 100644 (file)
@@ -661,7 +661,7 @@ _tbm_surface_internal_create_surface(tbm_bufmgr bufmgr, int width, int height, i
                                bo_size += surf->info.planes[j].size;
                }
 
-               surf->bos[i] = tbm_bo_alloc_with_format(bufmgr, format, i, width, height, surf->info.bpp/8, flags, error);
+               surf->bos[i] = tbm_bufmgr_internal_alloc_bo_with_format(bufmgr, format, i, width, height, surf->info.bpp/8, flags, error);
                if (!surf->bos[i]) {
                        surf->bos[i] = tbm_bo_alloc(bufmgr, bo_size, flags);
                        if (!surf->bos[i]) {
@@ -806,7 +806,7 @@ _tbm_surface_internal_hal_tbm_create_surface(tbm_bufmgr bufmgr, int width, int h
                                        bo_size += surf->info.planes[j].size;
                        }
 
-                       surf->bos[i] = tbm_bo_alloc_with_format(bufmgr, format, i, width, height, surf->info.bpp / 8, flags, error);
+                       surf->bos[i] = tbm_bufmgr_internal_alloc_bo_with_format(bufmgr, format, i, width, height, surf->info.bpp / 8, flags, error);
                        if (*error == TBM_ERROR_NOT_SUPPORTED) {
                                surf->bos[i] = tbm_bo_alloc(bufmgr, bo_size, flags);
                                if (!surf->bos[i]) {