From 7a105d2256426d58cb253253cd0ee1acb5054d5e Mon Sep 17 00:00:00 2001 From: Junkyeong Kim Date: Wed, 16 Oct 2019 19:04:28 +0900 Subject: [PATCH 01/16] tdm_hwc: make hwc_vblank set/unset function if set hwc vblank, use vblank instead of hwc commit handler. Change-Id: I9329473bb21dec6cee84fe60cd7e33eca80c2875 Signed-off-by: Junkyeong Kim --- src/tdm_hwc.c | 125 ++++++++++++++++++++++++++++++++++++++++++++++-- src/tdm_private.h | 4 ++ src/tdm_private_types.h | 1 + 3 files changed, 127 insertions(+), 3 deletions(-) diff --git a/src/tdm_hwc.c b/src/tdm_hwc.c index f6d1808..3131ebd 100644 --- a/src/tdm_hwc.c +++ b/src/tdm_hwc.c @@ -70,6 +70,8 @@ TDM_RETURN_IF_FAIL(private_output != NULL); \ private_display = private_output->private_display +static int hwc_use_vblank; +static unsigned int hwc_vblank_fps; static tdm_private_hwc_window * _tdm_hwc_find_private_hwc_window(tdm_private_hwc *private_hwc, tdm_hwc_window *hwc_window_backend) @@ -152,6 +154,9 @@ _tdm_hwc_cb_commit(tdm_hwc *hwc_backend, unsigned int sequence, tdm_thread_cb_hwc_commit hwc_commit; tdm_error ret; + if (hwc_commit_handler && hwc_commit_handler->use_vblank) + return; + if (hwc_commit_handler) private_hwc = hwc_commit_handler->private_hwc; else @@ -171,6 +176,96 @@ _tdm_hwc_cb_commit(tdm_hwc *hwc_backend, unsigned int sequence, TDM_WARNING_IF_FAIL(ret == TDM_ERROR_NONE); } +static void +_tdm_hwc_got_wait_vblank(unsigned int sequence, + unsigned int tv_sec, unsigned int tv_usec, void *user_data) +{ + tdm_private_hwc_commit_handler *hwc_commit_handler = user_data; + tdm_private_hwc *private_hwc; + tdm_thread_cb_hwc_commit hwc_commit; + + private_hwc = hwc_commit_handler->private_hwc; + private_hwc->private_output->layer_waiting_vblank = 0; + + memset(&hwc_commit, 0, sizeof hwc_commit); + hwc_commit.base.type = TDM_THREAD_CB_HWC_COMMIT; + hwc_commit.base.length = sizeof hwc_commit; + hwc_commit.base.object_stamp = private_hwc->stamp; + hwc_commit.base.data = hwc_commit_handler; + hwc_commit.base.sync = 0; + hwc_commit.sequence = sequence; + hwc_commit.tv_sec = tv_sec; + hwc_commit.tv_usec = tv_usec; + + _tdm_hwc_thread_cb_commit(private_hwc->private_output->private_display, private_hwc, &hwc_commit.base, user_data); +} + +static void +_tdm_hwc_cb_wait_vblank(tdm_vblank *vblank, tdm_error error, unsigned int sequence, + unsigned int tv_sec, unsigned int tv_usec, void *user_data) +{ + tdm_private_hwc_commit_handler *hwc_commit_handler = user_data; + tdm_private_output *private_output = NULL; + tdm_private_display *private_display; + + if (!hwc_commit_handler->use_vblank) + return; + + TDM_RETURN_IF_FAIL(hwc_commit_handler != NULL); + + private_output = hwc_commit_handler->private_hwc->private_output; + TDM_RETURN_IF_FAIL(private_output != NULL); + + private_display = private_output->private_display; + + _pthread_mutex_lock(&private_display->lock); + + _tdm_hwc_got_wait_vblank(sequence, tv_sec, tv_usec, user_data); + + _pthread_mutex_unlock(&private_display->lock); +} + +static tdm_error +_tdm_hwc_vblank(tdm_private_hwc *private_hwc, tdm_private_hwc_commit_handler *hwc_commit_handler) +{ + tdm_private_display *private_display; + tdm_private_output *private_output; + tdm_error ret = TDM_ERROR_NONE; + + private_output = private_hwc->private_output; + TDM_RETURN_VAL_IF_FAIL(private_output != NULL, TDM_ERROR_INVALID_PARAMETER); + private_display = private_output->private_display; + + if (!private_output->vblank) { + /* tdm_vblank APIs is for server. it should be called in unlock status*/ + _pthread_mutex_unlock(&private_display->lock); + private_output->vblank = tdm_vblank_create(private_display, private_output, NULL); + _pthread_mutex_lock(&private_display->lock); + TDM_RETURN_VAL_IF_FAIL(private_output->vblank != NULL, TDM_ERROR_OPERATION_FAILED); + } + + if (!private_output->layer_waiting_vblank) { + ret = tdm_vblank_set_fps(private_output->vblank, hwc_vblank_fps); + if (ret != TDM_ERROR_NONE) + goto done; + + /* tdm_vblank APIs is for server. it should be called in unlock status*/ + _pthread_mutex_unlock(&private_display->lock); + ret = tdm_vblank_wait(private_output->vblank, 0, 0, 1, _tdm_hwc_cb_wait_vblank, hwc_commit_handler); + _pthread_mutex_lock(&private_display->lock); + if (ret != TDM_ERROR_NONE) { + if (!TDM_OUTPUT_DPMS_VSYNC_IS_OFF(private_output->current_dpms_value)) + goto done; + } + + hwc_commit_handler->use_vblank = 1; + private_output->layer_waiting_vblank = 1; + } + +done: + return ret; +} + INTERN tdm_error tdm_hwc_init(tdm_private_display *private_display) { @@ -179,6 +274,20 @@ tdm_hwc_init(tdm_private_display *private_display) return TDM_ERROR_NONE; } +INTERN void +tdm_hwc_set_vblank(unsigned int fps) +{ + hwc_use_vblank = 1; + hwc_vblank_fps = fps; +} + +INTERN void +tdm_hwc_unset_vblank(void) +{ + hwc_use_vblank = 0; + hwc_vblank_fps = 0; +} + EXTERN tdm_hwc_window * tdm_hwc_create_window(tdm_hwc *hwc, tdm_error *error) { @@ -635,9 +744,19 @@ tdm_hwc_commit(tdm_hwc *hwc, int sync, tdm_hwc_commit_handler func, void *user_d ret = func_hwc->hwc_commit(private_hwc->hwc_backend, sync, hwc_commit_handler); TDM_GOTO_IF_FAIL(ret == TDM_ERROR_NONE, commit_failed); - if (tdm_debug_module & TDM_DEBUG_COMMIT) - TDM_INFO("hwc(%d) backend commit: handle(%p) func(%p) user_data(%p)", - private_hwc->index, hwc_commit_handler, func, user_data); + if (hwc_use_vblank) { + ret = _tdm_hwc_vblank(private_hwc, hwc_commit_handler); + if (ret == TDM_ERROR_NONE) { + if (tdm_debug_module & TDM_DEBUG_COMMIT) + TDM_INFO("hwc(%d) backend commit: wait vblank handle(%p) func(%p) user_data(%p)", + private_hwc->index, hwc_commit_handler, func, user_data); + } else + goto commit_failed; + } else { + if (tdm_debug_module & TDM_DEBUG_COMMIT) + TDM_INFO("hwc(%d) backend commit: handle(%p) func(%p) user_data(%p)", + private_hwc->index, hwc_commit_handler, func, user_data); + } _pthread_mutex_unlock(&private_display->lock); diff --git a/src/tdm_private.h b/src/tdm_private.h index 33904da..e8e3c08 100644 --- a/src/tdm_private.h +++ b/src/tdm_private.h @@ -184,6 +184,10 @@ tdm_pp_destroy_internal(tdm_private_pp *private_pp); tdm_error tdm_hwc_init(tdm_private_display *private_display); +void +tdm_hwc_set_vblank(unsigned int fps); +void +tdm_hwc_unset_vblank(void); tdm_hwc_window * tdm_hwc_window_create_internal(tdm_private_hwc *private_hwc, tdm_error *error); void diff --git a/src/tdm_private_types.h b/src/tdm_private_types.h index a778e25..bbc83cd 100644 --- a/src/tdm_private_types.h +++ b/src/tdm_private_types.h @@ -501,6 +501,7 @@ struct _tdm_private_hwc_commit_handler { void *user_data; pid_t owner_tid; + int use_vblank; }; struct _tdm_private_layer_commit_handler { -- 2.7.4 From d2fa49d3857fe065de1eefcb8afb5acdc69ca346 Mon Sep 17 00:00:00 2001 From: Junkyeong Kim Date: Wed, 16 Oct 2019 19:13:35 +0900 Subject: [PATCH 02/16] tdm_vblank: execute hwc_vblank set and unset when tdm_vblank_enable_global_fps called Change-Id: Ia6f39e191079ad8089337a5b54563c5bfc66887d Signed-off-by: Junkyeong Kim --- src/tdm_vblank.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/tdm_vblank.c b/src/tdm_vblank.c index 977e402..fe72c64 100644 --- a/src/tdm_vblank.c +++ b/src/tdm_vblank.c @@ -597,6 +597,12 @@ tdm_vblank_enable_global_fps(unsigned int enable, unsigned int fps) v->check_HW_or_SW = 1; } + + if (enable) + tdm_hwc_set_vblank(fps); + else + tdm_hwc_unset_vblank(); + pthread_mutex_unlock(&valid_list_lock); return TDM_ERROR_NONE; -- 2.7.4 From cfc2ab0711fd65a2060f28d360bd2fa298daf8e6 Mon Sep 17 00:00:00 2001 From: SooChan Lim Date: Fri, 1 Nov 2019 13:15:27 +0900 Subject: [PATCH 03/16] package version up to 2.10.0 tizen 6.0 starts here. Change-Id: Id0d8986d728499f6c39b9674260a32c865707cc1 --- packaging/libtdm.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/libtdm.spec b/packaging/libtdm.spec index db7f805..de1a348 100644 --- a/packaging/libtdm.spec +++ b/packaging/libtdm.spec @@ -2,7 +2,7 @@ %define HALTESTS_GCOV 0 Name: libtdm -Version: 2.9.6 +Version: 2.10.0 Release: 0 Summary: User Library of Tizen Display Manager Group: Development/Libraries -- 2.7.4 From aee1916ab7a92750dad9e3a9b71ddd5859be05d6 Mon Sep 17 00:00:00 2001 From: Junkyeong Kim Date: Tue, 5 Nov 2019 17:14:52 +0900 Subject: [PATCH 04/16] tdm_virtual_hwc: fix a typing error Change-Id: I5c9215625205df38e17bc62cb951bf26c2236c75 Signed-off-by: Junkyeong Kim --- backends/virtual/tdm_virtual_hwc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backends/virtual/tdm_virtual_hwc.c b/backends/virtual/tdm_virtual_hwc.c index 42031cc..cd72e5c 100644 --- a/backends/virtual/tdm_virtual_hwc.c +++ b/backends/virtual/tdm_virtual_hwc.c @@ -182,7 +182,7 @@ _virtual_hwc_apply_policy(tdm_virtual_hwc_data *hwc_data , tdm_hwc_window **comp return; } - /* use onyl target_window */ + /* use only target_window */ for (i = 0; i < num_wnds; i++) { composited_list[i]->validated_type = TDM_HWC_WIN_COMPOSITION_CLIENT; composited_list[i]->lzpos = ZPOS_NONE; -- 2.7.4 From 1f039353972978e5babb3cc6b09d76c82122e7f2 Mon Sep 17 00:00:00 2001 From: Junkyeong Kim Date: Wed, 6 Nov 2019 14:05:56 +0900 Subject: [PATCH 05/16] tdm_client: add log to check vblank list validation Change-Id: I27bee79bf7f5b7bd87dd0815c9fbf4b0f897439b Signed-off-by: Junkyeong Kim --- client/tdm_client.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/client/tdm_client.c b/client/tdm_client.c index bde7a1f..543805c 100644 --- a/client/tdm_client.c +++ b/client/tdm_client.c @@ -225,6 +225,17 @@ _tdm_client_vblank_cb_stamp(void *data, struct wl_tdm_vblank *wl_tdm_vblank, uin } /* LCOV_EXCL_START */ +static int +_tdm_client_vblank_wait_list_validation_check(tdm_private_client_vblank *private_vblank) +{ + if (private_vblank->wait_list.next == NULL || private_vblank->wait_list.prev == NULL) { + TDM_ERR("vblank(%p) wait_list broken. prev(%p), next(%p) pid(%d)", + private_vblank, private_vblank->wait_list.prev, private_vblank->wait_list.next, getpid()); + } + + return 0; +} + static void _tdm_client_vblank_cb_done(void *data, struct wl_tdm_vblank *wl_tdm_vblank, uint32_t req_id, uint32_t sequence, uint32_t tv_sec, @@ -243,6 +254,8 @@ _tdm_client_vblank_cb_done(void *data, struct wl_tdm_vblank *wl_tdm_vblank, TDM_DBG("vblank(%p) req_id(%u) sequence(%u) time(%.6f)", private_vblank, req_id, sequence, TDM_TIME(tv_sec, tv_usec)); + _tdm_client_vblank_wait_list_validation_check(private_vblank); + LIST_FOR_EACH_ENTRY(w, &private_vblank->wait_list, link) { if (w->req_id != req_id) continue; -- 2.7.4 From bba097bfa37e259cd0d59e00b1f7d24db54fe5e9 Mon Sep 17 00:00:00 2001 From: Changyeon Lee Date: Thu, 12 Dec 2019 13:25:25 +0900 Subject: [PATCH 06/16] tdm_helper: set up error handling when dump png Change-Id: Id3c9d591057b3ab73358ab810fb551452ee7cba0 --- src/tdm_helper.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/tdm_helper.c b/src/tdm_helper.c index 804a112..08477f1 100644 --- a/src/tdm_helper.c +++ b/src/tdm_helper.c @@ -136,6 +136,13 @@ _tdm_helper_dump_png(const char *file, const void *data, int width, return; } + if (setjmp(png_jmpbuf(pPngStruct))) { + /* if png has problem of writing the file, we get here */ + png_destroy_write_struct(&pPngStruct, &pPngInfo); + fclose(fp); + return; + } + png_init_io(pPngStruct, fp); png_set_IHDR(pPngStruct, pPngInfo, -- 2.7.4 From 00e93c2550c7ecf3af1ee6f6b52efdff19987e11 Mon Sep 17 00:00:00 2001 From: Changyeon Lee Date: Thu, 12 Dec 2019 13:58:27 +0900 Subject: [PATCH 07/16] package version up to 2.10.1 Change-Id: I56cac312280a9da8cf227acc36ca43d6b8936b1e --- packaging/libtdm.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/libtdm.spec b/packaging/libtdm.spec index de1a348..35db5b4 100644 --- a/packaging/libtdm.spec +++ b/packaging/libtdm.spec @@ -2,7 +2,7 @@ %define HALTESTS_GCOV 0 Name: libtdm -Version: 2.10.0 +Version: 2.10.1 Release: 0 Summary: User Library of Tizen Display Manager Group: Development/Libraries -- 2.7.4 From caf84724385f90c3855462fee4258a586d846ef1 Mon Sep 17 00:00:00 2001 From: Seunghun Lee Date: Tue, 7 Jan 2020 18:19:37 +0900 Subject: [PATCH 08/16] haltest: silence warning due to dangling-else. Change-Id: I0a0337dd73d2ffb4fbbce2aa1054ffe92795f461 --- haltests/Makefile.am | 3 +++ 1 file changed, 3 insertions(+) diff --git a/haltests/Makefile.am b/haltests/Makefile.am index 278e1ef..c0da6de 100644 --- a/haltests/Makefile.am +++ b/haltests/Makefile.am @@ -22,9 +22,12 @@ tdm_haltests_SOURCES = \ tdm_haltests_SOURCES += \ ../tools/buffers.c +EXTRA_CFLAGS="-Wno-dangling-else" + tdm_haltests_CXXFLAGS = \ $(CXXFLAGS) \ $(TDM_CFLAGS) \ + $(EXTRA_CFLAGS) \ -I../src \ -I../include \ -I../client \ -- 2.7.4 From ec8499987ff827caef610435c4368a1139e7198d Mon Sep 17 00:00:00 2001 From: Seunghun Lee Date: Tue, 7 Jan 2020 18:23:13 +0900 Subject: [PATCH 09/16] silence format truncation warning. add nul byte at the end of array to fix warning about possible truncation by snprintf. Change-Id: Ib399a9a2f2d552e427fa4c240a616e46267df584 --- src/tdm.c | 7 ++++++- src/tdm_layer.c | 6 +++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/tdm.c b/src/tdm.c index c7289e8..76c1c5e 100644 --- a/src/tdm.c +++ b/src/tdm.c @@ -464,6 +464,7 @@ _tdm_display_update_caps_output(tdm_private_module *private_module, int pipe, char temp[TDM_NAME_LEN]; tdm_error ret; double stamp; + int n; stamp = tdm_helper_get_time(); ret = func_output->output_get_capability(output_backend, caps); @@ -476,7 +477,11 @@ _tdm_display_update_caps_output(tdm_private_module *private_module, int pipe, } /* FIXME: Use model for tdm client to distinguish amoung outputs */ - snprintf(temp, TDM_NAME_LEN, "%s-%d", caps->model, pipe); + n = snprintf(temp, sizeof(temp), "%s-%d", caps->model, pipe); + if ((size_t)n >= sizeof(temp)) { + temp[sizeof(temp) - 1] = '\0'; + } + snprintf(caps->model, TDM_NAME_LEN, "%s", temp); return TDM_ERROR_NONE; diff --git a/src/tdm_layer.c b/src/tdm_layer.c index 22cdb47..488f498 100644 --- a/src/tdm_layer.c +++ b/src/tdm_layer.c @@ -343,6 +343,7 @@ _tdm_layer_dump_buffer(tdm_layer *layer, tbm_surface_h buffer) tdm_private_layer *l = NULL; char *p = bufs; int *remain = &len; + int n; pipe = private_output->pipe; zpos = private_layer->caps.zpos; @@ -354,7 +355,10 @@ _tdm_layer_dump_buffer(tdm_layer *layer, tbm_surface_h buffer) TDM_SNPRINTF(p, remain, "_%p", l->showing_buffer->buffer); } - snprintf(fname, sizeof(fname), "tdm_%d_lyr_%d%s", pipe, zpos, bufs); + n = snprintf(fname, sizeof(fname), "tdm_%d_lyr_%d%s", pipe, zpos, bufs); + if ((size_t)n >= sizeof(fname)) { + fname[sizeof(fname) - 1] = '\0'; + } tbm_surface_internal_dump_buffer(buffer, fname); TDM_DBG("%s dump excute", fname); -- 2.7.4 From 0c0b6f5c9111594f3323dc28381d0788bae24881 Mon Sep 17 00:00:00 2001 From: Seunghun Lee Date: Tue, 7 Jan 2020 18:29:19 +0900 Subject: [PATCH 10/16] silence stringio truncation warning give a bigger number as a size and add nul byte at the end of array in case of causing truncation. Change-Id: I8db4fb74774810b83c2f92bd21ed4d1a0943b063 --- src/tdm_helper.c | 2 +- src/tdm_server.c | 11 ++++++----- tools/tdm_test_client.c | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/tdm_helper.c b/src/tdm_helper.c index 08477f1..5fe5403 100644 --- a/src/tdm_helper.c +++ b/src/tdm_helper.c @@ -295,7 +295,7 @@ tdm_helper_dump_buffer(tbm_surface_h buffer, const char *file) strncat(p, file, len); p += len; *(p++) = '.'; - strncat(p, ext, 3); + strncat(p, ext, 4); p += 3; *p = '\0'; } else { diff --git a/src/tdm_server.c b/src/tdm_server.c index 25ad51d..3c32a54 100644 --- a/src/tdm_server.c +++ b/src/tdm_server.c @@ -148,12 +148,11 @@ _tdm_server_get_process_name(pid_t pid, char *name, unsigned int size) len = fread(pname, sizeof(char), TDM_NAME_LEN, h); if (len == 0) { - strncpy(pname, "NO NAME", 7); - len = 8; + strncpy(pname, "NO NAME", sizeof(pname)); + pname[sizeof(pname) - 1] = '\0'; } - pname[len - 1] = '\0'; - strncpy(name, pname, size - 1); + strncpy(name, pname, size); name[size - 1] = '\0'; fclose(h); @@ -1403,7 +1402,9 @@ _tdm_server_cb_debug(struct wl_client *client, struct wl_resource *resource, con char buffer[TDM_DEBUG_REPLY_MSG_LEN]; int copylen = TDM_MIN(size, sizeof(buffer) - 1); - strncpy(buffer, m, copylen); + strncpy(buffer, m, sizeof(buffer)); + buffer[sizeof(buffer) - 1] = '\0'; + m += copylen; size -= copylen; diff --git a/tools/tdm_test_client.c b/tools/tdm_test_client.c index ab12626..14feed9 100644 --- a/tools/tdm_test_client.c +++ b/tools/tdm_test_client.c @@ -520,7 +520,7 @@ _tdm_client_dump_buffer(tbm_surface_h buffer, const char *file) strncat(p, file, len); p += len; *(p++) = '.'; - strncat(p, ext, 3); + strncat(p, ext, 4); p += 3; *p = '\0'; } else { -- 2.7.4 From 30949018011da89d4e011a0ea6ea0bd79c8041b4 Mon Sep 17 00:00:00 2001 From: Seunghun Lee Date: Tue, 14 Jan 2020 14:01:14 +0900 Subject: [PATCH 11/16] fix stringio truncation warning Change-Id: I8248896a4f6f936f252ba45a5f9ef1649ce41ccd --- src/tdm_server.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tdm_server.c b/src/tdm_server.c index 3c32a54..2343d8d 100644 --- a/src/tdm_server.c +++ b/src/tdm_server.c @@ -1402,7 +1402,7 @@ _tdm_server_cb_debug(struct wl_client *client, struct wl_resource *resource, con char buffer[TDM_DEBUG_REPLY_MSG_LEN]; int copylen = TDM_MIN(size, sizeof(buffer) - 1); - strncpy(buffer, m, sizeof(buffer)); + memcpy(buffer, m, sizeof(buffer)); buffer[sizeof(buffer) - 1] = '\0'; m += copylen; -- 2.7.4 From 4c0adc30035f1823d934cbfbebc4a7afab20941d Mon Sep 17 00:00:00 2001 From: SooChan Lim Date: Wed, 15 Jan 2020 08:40:44 +0900 Subject: [PATCH 12/16] package version up to 2.10.2 Change-Id: Ic9744b1fa045f7327c36c79c436b24508b066909 --- packaging/libtdm.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/libtdm.spec b/packaging/libtdm.spec index 35db5b4..fb2a9ea 100644 --- a/packaging/libtdm.spec +++ b/packaging/libtdm.spec @@ -2,7 +2,7 @@ %define HALTESTS_GCOV 0 Name: libtdm -Version: 2.10.1 +Version: 2.10.2 Release: 0 Summary: User Library of Tizen Display Manager Group: Development/Libraries -- 2.7.4 From 2f7c9f1b82be987bb25ff2266ee7038cc697df5a Mon Sep 17 00:00:00 2001 From: SooChan Lim Date: Tue, 28 Jan 2020 08:28:38 +0900 Subject: [PATCH 13/16] fix the resource leak Change-Id: I7b4f4ee61712092e17427a743dad5f23941e910a --- client/tdm_client.c | 1 + 1 file changed, 1 insertion(+) diff --git a/client/tdm_client.c b/client/tdm_client.c index 543805c..0e50916 100644 --- a/client/tdm_client.c +++ b/client/tdm_client.c @@ -2082,6 +2082,7 @@ tdm_client_create_voutput(tdm_client *client, const char *name, tdm_error *error private_voutput->bufmgr = tbm_bufmgr_init(-1); if (private_voutput->bufmgr == NULL) { /* LCOV_EXCL_START */ + wl_proxy_wrapper_destroy(wrapper); TDM_ERR("fail tbm_bufmgr_init"); free(private_voutput); if (error) -- 2.7.4 From 072feea138c6d18e5f67fd13f3de811a61441390 Mon Sep 17 00:00:00 2001 From: Junkyeong Kim Date: Wed, 29 Jan 2020 14:50:48 +0900 Subject: [PATCH 14/16] package version up to 2.10.3 Change-Id: I6a2b27980be20b7c2ddaff8226bac5201b9eb339 Signed-off-by: Junkyeong Kim --- packaging/libtdm.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/libtdm.spec b/packaging/libtdm.spec index fb2a9ea..6350362 100644 --- a/packaging/libtdm.spec +++ b/packaging/libtdm.spec @@ -2,7 +2,7 @@ %define HALTESTS_GCOV 0 Name: libtdm -Version: 2.10.2 +Version: 2.10.3 Release: 0 Summary: User Library of Tizen Display Manager Group: Development/Libraries -- 2.7.4 From 6556acfea218c79c73c51973f41c981ae538d219 Mon Sep 17 00:00:00 2001 From: Junkyeong Kim Date: Fri, 31 Jan 2020 15:51:16 +0900 Subject: [PATCH 15/16] tool: change copy length Change-Id: Ie455205297df6ed31c79bd3c0ad276c2c842d9f3 Signed-off-by: Junkyeong Kim --- tools/tdm_test_server.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/tdm_test_server.c b/tools/tdm_test_server.c index 45671ea..3eaf916 100644 --- a/tools/tdm_test_server.c +++ b/tools/tdm_test_server.c @@ -477,7 +477,7 @@ parse_arg_w(tdm_test_server_prop *w, char *arg) { char *end; TDM_EXIT_IF_FAIL(arg != NULL); - end = strtostr(w->name, TDM_PATH_LEN, arg, TDM_DELIM); + end = strtostr(w->name, TDM_NAME_LEN, arg, TDM_DELIM); TDM_EXIT_IF_FAIL(*end == ':'); arg = end + 1; w->value.u32 = strtol(arg, &end, 10); -- 2.7.4 From 1b7ce67e473517578e9c78b4afe05fb0bf2a8361 Mon Sep 17 00:00:00 2001 From: Junkyeong Kim Date: Fri, 31 Jan 2020 16:55:45 +0900 Subject: [PATCH 16/16] tdm_helper: change format setting sequence Change-Id: Ic5e60219f2f7800948ea722f383f975088197ef6 Signed-off-by: Junkyeong Kim --- src/tdm_helper.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/tdm_helper.c b/src/tdm_helper.c index 5fe5403..696fc58 100644 --- a/src/tdm_helper.c +++ b/src/tdm_helper.c @@ -873,7 +873,6 @@ _tdm_helper_get_backend_information(tdm_private_module *private_module, char *re tdm_info_layer info; unsigned int format; tdm_size size; - tbm_surface_info_s buf_info; TDM_DBG_RETURN_VAL_IF_FAIL(func_layer->layer_get_info, reply); memset(&info, 0, sizeof info); @@ -883,14 +882,13 @@ _tdm_helper_get_backend_information(tdm_private_module *private_module, char *re if (!private_layer->showing_buffer) continue; - format = tbm_surface_get_format(private_layer->showing_buffer->buffer); - tbm_surface_get_info(private_layer->showing_buffer->buffer, &buf_info); - size.h = tbm_surface_get_width(private_layer->showing_buffer->buffer); size.v = tbm_surface_get_height(private_layer->showing_buffer->buffer); if (info.src_config.format) - format = (info.src_config.format) ? : format; + format = info.src_config.format; + else + format = tbm_surface_get_format(private_layer->showing_buffer->buffer); TDM_SNPRINTF(reply, len, "%d %d %d %p %c%c%c%c %ux%u %ux%u+%u+%u %ux%u+%u+%u %s\n", private_layer->index, -- 2.7.4