From a22b592b92bceb3c87adc3f005e2f1a640e0b5da Mon Sep 17 00:00:00 2001 From: Boram Park Date: Mon, 26 Mar 2018 20:24:54 +0900 Subject: [PATCH 01/16] utests: remove unuseful tcs Change-Id: I5acfce9cc3ee9ef2f7d8b883c8e47d73f8ea5c22 --- utests/src/ut_tdm_display.cpp | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/utests/src/ut_tdm_display.cpp b/utests/src/ut_tdm_display.cpp index f6aaf2d..1548a5e 100644 --- a/utests/src/ut_tdm_display.cpp +++ b/utests/src/ut_tdm_display.cpp @@ -119,15 +119,6 @@ TEST_P(TDMDisplay, DisplayUpdate) ASSERT_EQ(tdm_display_update(dpy), TDM_ERROR_NONE); } -TEST_P(TDMDisplay, DisplayUpdateWrongDpy) -{ - EXPECT_EXIT({ - tdm_display *wrong_dpy = (tdm_display *)TDM_UT_INVALID_VALUE; - tdm_display_update(wrong_dpy); - exit(0); - }, ::testing::ExitedWithCode(0), ""); -} - TEST_P(TDMDisplay, DisplayUpdateNullObject) { ASSERT_EQ(tdm_display_update(NULL), TDM_ERROR_INVALID_PARAMETER); @@ -152,15 +143,6 @@ TEST_P(TDMDisplay, DisplayGetFDNullFD) ASSERT_EQ(tdm_display_get_fd(dpy, NULL), TDM_ERROR_INVALID_PARAMETER); } -TEST_P(TDMDisplay, DisplayGetFDWrongDpy) -{ - tdm_display *wrong_dpy = (tdm_display *)TDM_UT_INVALID_VALUE; - int fd = TDM_UT_INVALID_VALUE; - - ASSERT_EQ(tdm_display_get_fd(wrong_dpy, &fd), TDM_ERROR_INVALID_PARAMETER); - ASSERT_EQ(fd, TDM_UT_INVALID_VALUE); -} - /* DISABLED */ TEST_P(TDMDisplay, DISABLED_DisplayHandleEvents) { -- 2.7.4 From 5adeb9a774b05d820fceba93ef554cad9d7334c1 Mon Sep 17 00:00:00 2001 From: Boram Park Date: Mon, 26 Mar 2018 21:00:53 +0900 Subject: [PATCH 02/16] utests: fix wrong input param Change-Id: I99d930aba8cdbc080a935e0734601dee77a5f3bd --- utests/src/ut_tdm_backend_pp.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utests/src/ut_tdm_backend_pp.cpp b/utests/src/ut_tdm_backend_pp.cpp index 78b268f..4e40e82 100644 --- a/utests/src/ut_tdm_backend_pp.cpp +++ b/utests/src/ut_tdm_backend_pp.cpp @@ -391,7 +391,7 @@ TEST_P(TDMBackendPP, PPDispalyGetAvaiableSizeNullOther) { if (ut_tdm_display_has_pp_capability(dpy)) { ASSERT_EQ(PreparePP(), true); - ASSERT_EQ(tdm_display_get_pp_available_size(pp, NULL, NULL, NULL, NULL, NULL), TDM_ERROR_INVALID_PARAMETER); + ASSERT_EQ(tdm_display_get_pp_available_size(dpy, NULL, NULL, NULL, NULL, NULL), TDM_ERROR_NONE); } } -- 2.7.4 From 8ca7eda0b879649453e1b7d85fa6f67c53c78cab Mon Sep 17 00:00:00 2001 From: Boram Park Date: Mon, 26 Mar 2018 21:08:18 +0900 Subject: [PATCH 03/16] utests: change pp scale test src buffer size to test YUV buffers correctly Change-Id: I4ae8ac621df9da577caa10a32c787d0f3da4759e --- utests/src/ut_tdm_backend_pp.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utests/src/ut_tdm_backend_pp.cpp b/utests/src/ut_tdm_backend_pp.cpp index 4e40e82..f1d4991 100644 --- a/utests/src/ut_tdm_backend_pp.cpp +++ b/utests/src/ut_tdm_backend_pp.cpp @@ -626,7 +626,7 @@ TEST_P(TDMBackendPP, PPConvertScale) ASSERT_EQ(PreparePP(), true); - ASSERT_EQ(PrepareBuffers(mode->hdisplay / 2, mode->vdisplay / 4, dst_formats[f], + ASSERT_EQ(PrepareBuffers(640, 480, dst_formats[f], mode->hdisplay, mode->vdisplay / 2, dst_formats[f], TDM_TRANSFORM_NORMAL), true); -- 2.7.4 From 5f5db38c60ac7e80131ba48a5804f3be5325a740 Mon Sep 17 00:00:00 2001 From: Boram Park Date: Mon, 26 Mar 2018 20:37:58 +0900 Subject: [PATCH 04/16] display: rename to _tdm_display_setup Change-Id: I2cb9b73d98e6b337a2c1b1b7279db6cfd3e36b3a --- src/tdm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tdm.c b/src/tdm.c index bdb2a87..9f41287 100644 --- a/src/tdm.c +++ b/src/tdm.c @@ -611,7 +611,7 @@ failed_get_outputs: } static tdm_error -_tdm_display_update(tdm_private_display *private_display) +_tdm_display_setup(tdm_private_display *private_display) { tdm_private_module *private_module = NULL; tdm_error ret = TDM_ERROR_NONE; @@ -1049,7 +1049,7 @@ tdm_display_init(tdm_error *error) #endif TDM_TRACE_BEGIN("TDM_Update_Display"); - ret = _tdm_display_update(private_display); + ret = _tdm_display_setup(private_display); TDM_TRACE_END(); if (ret != TDM_ERROR_NONE) goto failed_update; -- 2.7.4 From 81203f5d7b673bb1bad12fe2afa99ad6e82baa7e Mon Sep 17 00:00:00 2001 From: Boram Park Date: Wed, 28 Mar 2018 13:55:21 +0900 Subject: [PATCH 05/16] package version up to 1.16.11 Change-Id: I83da899535b541cbe57c729e7b68651885676cd4 --- packaging/libtdm.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/libtdm.spec b/packaging/libtdm.spec index bc608fb..bb8f425 100644 --- a/packaging/libtdm.spec +++ b/packaging/libtdm.spec @@ -2,7 +2,7 @@ %define UTEST_GCOV 0 Name: libtdm -Version: 1.16.10 +Version: 1.16.11 Release: 0 Summary: User Library of Tizen Display Manager Group: Development/Libraries -- 2.7.4 From 84462d289bf79a1b13fb890a4594b8f6bc76ae54 Mon Sep 17 00:00:00 2001 From: Boram Park Date: Wed, 28 Mar 2018 14:58:02 +0900 Subject: [PATCH 06/16] Revert "output: set output connection status if needed" This reverts commit ebb1cbd983e6251a7d4869538c75916a996ef3d9. Change-Id: I8b7620d2e39f6500b7257ae0c0c2affecaf9b3a2 --- src/tdm_output.c | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/tdm_output.c b/src/tdm_output.c index b66c27b..691d7bb 100644 --- a/src/tdm_output.c +++ b/src/tdm_output.c @@ -1160,16 +1160,6 @@ tdm_output_commit_internal(tdm_output *output, int sync, tdm_output_commit_handl output_commit_handler); TDM_GOTO_IF_FAIL(ret == TDM_ERROR_NONE, commit_failed); - if (ret == TDM_ERROR_NONE) { - if (private_output->current_mode && - private_output->caps.status != TDM_OUTPUT_CONN_STATUS_MODE_SETTED) { - TDM_WRN("backend doesn't change the output connection status"); - tdm_output_cb_status(private_output->output_backend, - TDM_OUTPUT_CONN_STATUS_MODE_SETTED, - private_output); - } - } - if (tdm_debug_module & TDM_DEBUG_COMMIT) TDM_INFO("output(%d) backend commit: handle(%p) func(%p) user_data(%p)", private_output->pipe, output_commit_handler, func, user_data); -- 2.7.4 From 2e34878fe12e363ed637f9d35d712407e9807fea Mon Sep 17 00:00:00 2001 From: Junkyeong Kim Date: Fri, 30 Mar 2018 11:47:22 +0900 Subject: [PATCH 07/16] set to null current mode after output update if output disconnected Change-Id: I27b78b4ea4cd63c1ba2ef480e2c3afab71d0140e Signed-off-by: Junkyeong Kim --- src/tdm.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/tdm.c b/src/tdm.c index 9f41287..15840f4 100644 --- a/src/tdm.c +++ b/src/tdm.c @@ -453,6 +453,9 @@ tdm_display_update_output(tdm_private_module *private_module, ret = _tdm_display_update_caps_output(private_module, pipe, output_backend, &private_output->caps); TDM_RETURN_VAL_IF_FAIL(ret == TDM_ERROR_NONE, ret); + + if (private_output->caps.status == TDM_OUTPUT_CONN_STATUS_DISCONNECTED) + private_output->current_mode = NULL; } layers = func_output->output_get_layers(output_backend, &layer_count, &ret); -- 2.7.4 From 6f850479b3b81b84899e09fd99a51b580e00164b Mon Sep 17 00:00:00 2001 From: Boram Park Date: Fri, 30 Mar 2018 10:51:55 +0900 Subject: [PATCH 08/16] helper: try to dump all formats to a raw file Change-Id: Id2aa867fe19930aa01d5c3d73e1156b28aa45dd5 --- src/tdm_helper.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/tdm_helper.c b/src/tdm_helper.c index 61971e5..0c8b336 100644 --- a/src/tdm_helper.c +++ b/src/tdm_helper.c @@ -44,7 +44,7 @@ #define PNG_DEPTH 8 -static const char *file_exts[2] = {"png", "yuv"}; +static const char *file_exts[2] = {"png", "raw"}; int tdm_dump_enable; char *tdm_debug_dump_dir; @@ -332,9 +332,14 @@ tdm_helper_dump_buffer(tbm_surface_h buffer, const char *file) 0); break; default: - TDM_ERR("can't dump %c%c%c%c buffer", FOURCC_STR(info.format)); - tbm_surface_unmap(buffer); - return; + _tdm_helper_dump_raw((const char*)temp, + info.planes[0].ptr, + info.planes[0].size, + info.planes[1].ptr, + info.planes[1].size, + info.planes[2].ptr, + info.planes[2].size); + break; } tbm_surface_unmap(buffer); -- 2.7.4 From e6035c2be184ee7fc40a7425a70b8f4d583246d0 Mon Sep 17 00:00:00 2001 From: Boram Park Date: Fri, 30 Mar 2018 10:54:22 +0900 Subject: [PATCH 09/16] utests: use TDM_CONFIG_KEY_DEBUG_DUMP to dump all tc's buffer All tcs do tdm_display_init/deinit repeatly. "tdm-monitor -dump" can't be used. So we'd better use env. Change-Id: If518b97cc45e4d8620e89c2e513ad8056be1b8f9 --- utests/src/ut_tdm_env.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/utests/src/ut_tdm_env.cpp b/utests/src/ut_tdm_env.cpp index 47144ab..25915aa 100644 --- a/utests/src/ut_tdm_env.cpp +++ b/utests/src/ut_tdm_env.cpp @@ -62,6 +62,10 @@ void TDMEnv::SetUp(void) const char *debug = getenv("TDM_UT_DEBUG_MODULE"); if (debug && strstr(debug, "1")) tdm_config_set_string(TDM_CONFIG_KEY_DEBUG_MODULE, "buffer,vblank,commit,pp,capture"); + + debug = getenv("TDM_UT_DEBUG_DUMP"); + if (debug && (debug[0] == '1')) + tdm_config_set_string(TDM_CONFIG_KEY_DEBUG_DUMP, "all"); } void TDMEnv::TearDown(void) -- 2.7.4 From 8dcd982832e67f110c4622fee789c755ecb28cf3 Mon Sep 17 00:00:00 2001 From: Boram Park Date: Fri, 30 Mar 2018 10:55:24 +0900 Subject: [PATCH 10/16] utests: scale up to screen size We have to make more TCs to test various different sizes later. Change-Id: Ie36ef263d486d17905d0b73fcc58c23cef7a1d70 --- utests/src/ut_tdm_backend_pp.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utests/src/ut_tdm_backend_pp.cpp b/utests/src/ut_tdm_backend_pp.cpp index f1d4991..794046c 100644 --- a/utests/src/ut_tdm_backend_pp.cpp +++ b/utests/src/ut_tdm_backend_pp.cpp @@ -627,7 +627,7 @@ TEST_P(TDMBackendPP, PPConvertScale) ASSERT_EQ(PreparePP(), true); ASSERT_EQ(PrepareBuffers(640, 480, dst_formats[f], - mode->hdisplay, mode->vdisplay / 2, dst_formats[f], + mode->hdisplay, mode->vdisplay, dst_formats[f], TDM_TRANSFORM_NORMAL), true); ASSERT_EQ(tdm_pp_set_done_handler(pp, _ut_tdm_pp_done_cb, &done), TDM_ERROR_NONE); -- 2.7.4 From 83d1e54bd591e16a6a4529501cbcb2b32a232383 Mon Sep 17 00:00:00 2001 From: Boram Park Date: Fri, 30 Mar 2018 13:04:00 +0900 Subject: [PATCH 11/16] add LIST_FIRST_ENTRY, LIST_LAST_ENTRY macro Change-Id: I98adf7df5ecb3dd94627e06bda3eb253033b289d --- include/tdm_list.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/include/tdm_list.h b/include/tdm_list.h index 7475894..3873817 100644 --- a/include/tdm_list.h +++ b/include/tdm_list.h @@ -112,6 +112,12 @@ static inline int list_length(struct list_head *item) #define LIST_ENTRY(__type, __item, __field) \ ((__type *)(((char *)(__item)) - offsetof(__type, __field))) +#define LIST_FIRST_ENTRY(__ptr, __type, __field) \ + LIST_ENTRY(__type, (__ptr)->next, __field) + +#define LIST_LAST_ENTRY(__ptr, __type, __field) \ + LIST_ENTRY(__type, (__ptr)->prev, __field) + #define LIST_IS_EMPTY(__list) \ ((__list)->next == (__list)) -- 2.7.4 From 5ab3aca4983744171a2a6e61a4e6a4156c65a068 Mon Sep 17 00:00:00 2001 From: Boram Park Date: Fri, 30 Mar 2018 13:32:35 +0900 Subject: [PATCH 12/16] package version up to 1.16.12 Change-Id: I79b8bfc47a794f715802d1cecf63bfbfa9b3ab18 --- packaging/libtdm.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/libtdm.spec b/packaging/libtdm.spec index bb8f425..a4c14d7 100644 --- a/packaging/libtdm.spec +++ b/packaging/libtdm.spec @@ -2,7 +2,7 @@ %define UTEST_GCOV 0 Name: libtdm -Version: 1.16.11 +Version: 1.16.12 Release: 0 Summary: User Library of Tizen Display Manager Group: Development/Libraries -- 2.7.4 From 6bb3ddcffcd48ac1cd29ba28631d3e0d7e6edfef Mon Sep 17 00:00:00 2001 From: Boram Park Date: Tue, 27 Mar 2018 13:29:44 +0900 Subject: [PATCH 13/16] utests: use ut_tdm_display_handle_events for timeout Change-Id: I4b672f599e77d5b8ed5ec8679cb7a5a9efa05d36 --- utests/src/ut_tdm_output.cpp | 2 +- utests/src/ut_tdm_vblank.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/utests/src/ut_tdm_output.cpp b/utests/src/ut_tdm_output.cpp index f44109e..227b3e2 100644 --- a/utests/src/ut_tdm_output.cpp +++ b/utests/src/ut_tdm_output.cpp @@ -1343,7 +1343,7 @@ TEST_P(TDMOutput, OutputWaitVblankBeforeDpmsOff) if (t == 9) ASSERT_EQ(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_OFF), TDM_ERROR_NONE); while (!done) - ASSERT_EQ(tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); } } } diff --git a/utests/src/ut_tdm_vblank.cpp b/utests/src/ut_tdm_vblank.cpp index c72da58..b9ae767 100644 --- a/utests/src/ut_tdm_vblank.cpp +++ b/utests/src/ut_tdm_vblank.cpp @@ -1147,7 +1147,7 @@ TEST_P(TDMVblank, VblankWaitBeforeDpmsOff) ASSERT_EQ(tdm_output_set_dpms(output, TDM_OUTPUT_DPMS_OFF), TDM_ERROR_NONE); while (temp == 0) - ASSERT_EQ(tdm_display_handle_events(dpy), TDM_ERROR_NONE); + ASSERT_EQ(ut_tdm_display_handle_events(dpy), TDM_ERROR_NONE); } } -- 2.7.4 From cffc8b39ddda18ef339799dfb64d53c0401b7aa3 Mon Sep 17 00:00:00 2001 From: Boram Park Date: Mon, 2 Apr 2018 07:49:01 +0900 Subject: [PATCH 14/16] output: call output_change callbacks asynchronously Change-Id: I72a8460101efd8e12a109c465ecd8249890b7801 --- src/tdm_output.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/tdm_output.c b/src/tdm_output.c index 691d7bb..6543b7d 100644 --- a/src/tdm_output.c +++ b/src/tdm_output.c @@ -259,6 +259,7 @@ static tdm_error _tdm_output_call_thread_cb_status(tdm_private_output *private_output, tdm_output_conn_status status) { tdm_thread_cb_output_status output_status; + pid_t caller_tid = syscall(SYS_gettid); tdm_error ret; memset(&output_status, 0, sizeof output_status); @@ -266,7 +267,10 @@ _tdm_output_call_thread_cb_status(tdm_private_output *private_output, tdm_output output_status.base.length = sizeof output_status; output_status.base.object_stamp = private_output->stamp; output_status.base.data = NULL; - output_status.base.sync = 1; + if (tdm_thread_in_display_thread(caller_tid)) + output_status.base.sync = 0; + else + output_status.base.sync = 1; output_status.status = status; ret = tdm_thread_cb_call(private_output, &output_status.base, 1); -- 2.7.4 From eb4fcfa56a50de6b8bb7a0ca3906533d1a4593c1 Mon Sep 17 00:00:00 2001 From: Boram Park Date: Mon, 2 Apr 2018 12:59:08 +0900 Subject: [PATCH 15/16] monitor: move to tools Change-Id: I251df596f253a71293ad16b76b280e1a0372c129 --- client/Makefile.am | 21 --------------------- tools/Makefile.am | 19 ++++++++++++++++++- {client => tools}/tdm_monitor.c | 0 3 files changed, 18 insertions(+), 22 deletions(-) rename {client => tools}/tdm_monitor.c (100%) diff --git a/client/Makefile.am b/client/Makefile.am index 859e2d3..d50c6b2 100644 --- a/client/Makefile.am +++ b/client/Makefile.am @@ -26,24 +26,3 @@ libtdm_client_la_SOURCES = \ $(top_srcdir)/protocol/tdm-protocol.c \ tdm_client.c -########################################################################## -### tdm-monitor -########################################################################## -bin_PROGRAMS = \ - tdm-monitor - -#tdm-monitor -tdm_monitor_SOURCES = \ - $(top_srcdir)/protocol/tdm-protocol.c \ - tdm_monitor.c -tdm_monitor_LDFLAGS = \ - -pie \ - ${LDFLAGS} -tdm_monitor_LDADD = $(TDM_CLIENT_LIBS) ../common/libtdm-common.la -tdm_monitor_CFLAGS = \ - -fPIE \ - $(CFLAGS) \ - $(TDM_CFLAGS) \ - -I$(top_srcdir)/include \ - -I$(top_srcdir)/protocol \ - -I$(top_srcdir)/src diff --git a/tools/Makefile.am b/tools/Makefile.am index d19e5e6..2f07236 100644 --- a/tools/Makefile.am +++ b/tools/Makefile.am @@ -1,6 +1,7 @@ bin_PROGRAMS = \ tdm-test-server \ - tdm-test-client + tdm-test-client \ + tdm-monitor #tdm-test-server tdm_test_server_SOURCES = \ @@ -33,3 +34,19 @@ tdm_test_client_CFLAGS = \ tdm_test_client_LDADD = \ $(TDM_LIBS) \ $(top_builddir)/client/libtdm-client.la + +#tdm-monitor +tdm_monitor_SOURCES = \ + $(top_srcdir)/protocol/tdm-protocol.c \ + tdm_monitor.c +tdm_monitor_LDFLAGS = \ + -pie \ + ${LDFLAGS} +tdm_monitor_LDADD = $(TDM_CLIENT_LIBS) ../common/libtdm-common.la +tdm_monitor_CFLAGS = \ + -fPIE \ + $(CFLAGS) \ + $(TDM_CFLAGS) \ + -I$(top_srcdir)/include \ + -I$(top_srcdir)/protocol \ + -I$(top_srcdir)/src diff --git a/client/tdm_monitor.c b/tools/tdm_monitor.c similarity index 100% rename from client/tdm_monitor.c rename to tools/tdm_monitor.c -- 2.7.4 From f2a5863445a2e5a34448bb02542a90d329ff4352 Mon Sep 17 00:00:00 2001 From: Boram Park Date: Mon, 2 Apr 2018 13:55:28 +0900 Subject: [PATCH 16/16] config: move to src Change-Id: If7c889f1704be1c0aa0d8bbd2f4b5785368feb60 --- include/Makefile.am | 1 - packaging/libtdm.spec | 1 - {include => src}/tdm_config.h | 2 -- 3 files changed, 4 deletions(-) rename {include => src}/tdm_config.h (99%) diff --git a/include/Makefile.am b/include/Makefile.am index a16c981..0e0884a 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -4,7 +4,6 @@ libtdminclude_HEADERS = \ tdm_common.h \ tdm_types.h \ tdm_list.h \ - tdm_config.h \ tdm_log.h \ tdm_backend.h \ tdm_helper.h \ diff --git a/packaging/libtdm.spec b/packaging/libtdm.spec index a4c14d7..493b7b7 100644 --- a/packaging/libtdm.spec +++ b/packaging/libtdm.spec @@ -128,7 +128,6 @@ rm -f %{_unitdir_user}/basic.target.wants/tdm-socket-user.path %{_includedir}/tdm_list.h %{_includedir}/tdm_log.h %{_includedir}/tdm_types.h -%{_includedir}/tdm_config.h %{_includedir}/tdm_deprecated.h %{_libdir}/pkgconfig/libtdm.pc %{_libdir}/libtdm.so diff --git a/include/tdm_config.h b/src/tdm_config.h similarity index 99% rename from include/tdm_config.h rename to src/tdm_config.h index 1b1e36a..b6a34ba 100644 --- a/include/tdm_config.h +++ b/src/tdm_config.h @@ -49,8 +49,6 @@ extern "C" { * @brief The config header file for a frontend library */ -tdm_error -tdm_config_init(void); void tdm_config_deinit(void); -- 2.7.4