From 7e63bb30b767ec285f69e7152e4efdd9399d7721 Mon Sep 17 00:00:00 2001 From: Changyeon Lee Date: Fri, 10 Aug 2018 13:57:37 +0900 Subject: [PATCH 01/16] hwc_window: rename get_buffer_queue to acquire_buffer_queue Change-Id: Ie5e45480833bee69978192bdd2a98b875456a404 --- haltests/src/tc_tdm_hwc_window.cpp | 14 +++++++------- include/tdm.h | 4 ++-- include/tdm_backend.h | 4 ++-- include/tdm_types.h | 2 +- src/tdm_hwc_window.c | 6 +++--- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/haltests/src/tc_tdm_hwc_window.cpp b/haltests/src/tc_tdm_hwc_window.cpp index b330e85..1e704a7 100644 --- a/haltests/src/tc_tdm_hwc_window.cpp +++ b/haltests/src/tc_tdm_hwc_window.cpp @@ -81,7 +81,7 @@ TEST_P(TDMHwcWindow, DestroyWindowSuccessful) } } -/* tbm_surface_queue_h tdm_hwc_window_get_buffer_queue() */ +/* tbm_surface_queue_h tdm_hwc_window_acquire_buffer_queue() */ TEST_P(TDMHwcWindow, GetBufferQueueFailNull) { TDM_UT_SKIP_FLAG(has_outputs); @@ -89,11 +89,11 @@ TEST_P(TDMHwcWindow, GetBufferQueueFailNull) tdm_error error = TDM_ERROR_NONE; tbm_surface_queue_h queue = NULL; - queue = tdm_hwc_window_get_buffer_queue(NULL, &error); + queue = tdm_hwc_window_acquire_buffer_queue(NULL, &error); ASSERT_NE(TDM_ERROR_NONE, error); ASSERT_EQ(NULL, queue); - queue = tdm_hwc_window_get_buffer_queue(NULL, NULL); + queue = tdm_hwc_window_acquire_buffer_queue(NULL, NULL); ASSERT_EQ(NULL, queue); } @@ -126,13 +126,13 @@ TEST_P(TDMHwcWindow, GetBufferQueueSuccessful) error = tdm_hwc_window_set_info(hwc_wins[w], &info); ASSERT_EQ(TDM_ERROR_NONE, error); - queue = tdm_hwc_window_get_buffer_queue(hwc_wins[w], &error); - tbm_surface_queue_destroy(queue); + queue = tdm_hwc_window_acquire_buffer_queue(hwc_wins[w], &error); + tdm_hwc_window_release_buffer_queue(hwc_wins[w], queue); ASSERT_EQ(TDM_ERROR_NONE, error); ASSERT_NE(NULL, queue); - queue = tdm_hwc_window_get_buffer_queue(hwc_wins[w], NULL); - tbm_surface_queue_destroy(queue); + queue = tdm_hwc_window_acquire_buffer_queue(hwc_wins[w], NULL); + tdm_hwc_window_release_buffer_queue(hwc_wins[w], queue); ASSERT_NE(NULL, queue); } diff --git a/include/tdm.h b/include/tdm.h index 7a5893d..0b40cd5 100644 --- a/include/tdm.h +++ b/include/tdm.h @@ -992,7 +992,7 @@ void tdm_hwc_window_destroy(tdm_hwc_window *hwc_window); /** - * @brief Get a buffer queue for the window object + * @brief Acquire a buffer queue for the window object * @details These buffers are used to composite by hardware a client content in * the nocomp mode. * @param[in] hwc_window A window object @@ -1001,7 +1001,7 @@ tdm_hwc_window_destroy(tdm_hwc_window *hwc_window); * @since 2.0.0 */ tbm_surface_queue_h -tdm_hwc_window_get_buffer_queue(tdm_hwc_window *hwc_window, tdm_error *error); +tdm_hwc_window_acquire_buffer_queue(tdm_hwc_window *hwc_window, tdm_error *error); /** * @brief Release a buffer queue for the window object diff --git a/include/tdm_backend.h b/include/tdm_backend.h index 12b088c..f695562 100644 --- a/include/tdm_backend.h +++ b/include/tdm_backend.h @@ -868,8 +868,8 @@ typedef struct _tdm_func_hwc_window { * @param[out] error #TDM_ERROR_NONE if success. Otherwise, error value. * @return A buffer queue */ - tbm_surface_queue_h (*hwc_window_get_buffer_queue)(tdm_hwc_window *hwc_window, - tdm_error *error); + tbm_surface_queue_h (*hwc_window_acquire_buffer_queue)(tdm_hwc_window *hwc_window, + tdm_error *error); /** * @brief Release a buffer queue for the window object diff --git a/include/tdm_types.h b/include/tdm_types.h index c596ac6..225325f 100644 --- a/include/tdm_types.h +++ b/include/tdm_types.h @@ -210,7 +210,7 @@ typedef enum { /** If the client needs to render to a specific buffer for compositing * with TDM_COMPOSITION_DEVICE, Set TDM_PREPARATION_BUFFER_QUEUE type to hwc_window. * The client will render next frame on buffers of queue which got by - * tdm_hwc_window_get_buffer_queue. + * tdm_hwc_window_acquire_buffer_queue. */ TDM_PREPARATION_BUFFER_QUEUE = (1 << 0), } tdm_hwc_window_preparation; diff --git a/src/tdm_hwc_window.c b/src/tdm_hwc_window.c index 72b80af..0066ef3 100644 --- a/src/tdm_hwc_window.c +++ b/src/tdm_hwc_window.c @@ -185,7 +185,7 @@ tdm_hwc_window_destroy(tdm_hwc_window *hwc_window) } EXTERN tbm_surface_queue_h -tdm_hwc_window_get_buffer_queue(tdm_hwc_window *hwc_window, tdm_error *error) +tdm_hwc_window_acquire_buffer_queue(tdm_hwc_window *hwc_window, tdm_error *error) { tdm_private_module *private_module; tdm_func_hwc_window *func_hwc_window = NULL; @@ -198,7 +198,7 @@ tdm_hwc_window_get_buffer_queue(tdm_hwc_window *hwc_window, tdm_error *error) private_module = private_output->private_module; func_hwc_window = &private_module->func_hwc_window; - if (!func_hwc_window->hwc_window_get_buffer_queue) { + if (!func_hwc_window->hwc_window_acquire_buffer_queue) { /* LCOV_EXCL_START */ _pthread_mutex_unlock(&private_display->lock); TDM_WRN("not implemented!!"); @@ -207,7 +207,7 @@ tdm_hwc_window_get_buffer_queue(tdm_hwc_window *hwc_window, tdm_error *error) return NULL; } - queue = func_hwc_window->hwc_window_get_buffer_queue(private_hwc_window->hwc_window_backend, error); + queue = func_hwc_window->hwc_window_acquire_buffer_queue(private_hwc_window->hwc_window_backend, error); _pthread_mutex_unlock(&private_display->lock); -- 2.7.4 From 5c5ef51cd9bad051072eeb9ce49fc37577302695 Mon Sep 17 00:00:00 2001 From: Changyeon Lee Date: Fri, 10 Aug 2018 13:59:55 +0900 Subject: [PATCH 02/16] Package version up to 2.2.0 Change-Id: I3dc25c4ee4d55b5b16a324cf07a5ac19ac0d7e36 --- packaging/libtdm.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/libtdm.spec b/packaging/libtdm.spec index f6b5c25..f25bd23 100644 --- a/packaging/libtdm.spec +++ b/packaging/libtdm.spec @@ -2,7 +2,7 @@ %define HALTESTS_GCOV 0 Name: libtdm -Version: 2.1.0 +Version: 2.2.0 Release: 0 Summary: User Library of Tizen Display Manager Group: Development/Libraries -- 2.7.4 From 211eb281cbf5d191ccec9e726770b1ccc8cf1823 Mon Sep 17 00:00:00 2001 From: SooChan Lim Date: Thu, 13 Sep 2018 16:22:28 +0900 Subject: [PATCH 03/16] tdm_helper: show the width of the tbm_surface When tdm-monitor shows the information, the result shows the width of the tbm_surface instead of showing the real size of the buffer(stride/4). Change-Id: Ib25a118d05798a96dcf4e99a31fd3c7f1462e399 --- src/tdm_helper.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/tdm_helper.c b/src/tdm_helper.c index 0c8b336..3607f13 100644 --- a/src/tdm_helper.c +++ b/src/tdm_helper.c @@ -872,10 +872,7 @@ _tdm_helper_get_backend_information(tdm_private_module *private_module, char *re format = tbm_surface_get_format(private_layer->showing_buffer->buffer); tbm_surface_get_info(private_layer->showing_buffer->buffer, &buf_info); - if (IS_RGB(format)) - size.h = buf_info.planes[0].stride >> 2; - else - size.h = buf_info.planes[0].stride; + 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) -- 2.7.4 From e8d7b6bc5a897a04cfadfc121e1251787632d1f0 Mon Sep 17 00:00:00 2001 From: Junkyeong Kim Date: Thu, 13 Sep 2018 19:22:44 +0900 Subject: [PATCH 04/16] haltest: change ClientVblankWaitSetFps test error condition tw2 cannot success before condition. reduce error checking condition. Change-Id: I291207363b42ea0dc2e51fca60c4dae4b609a63e Signed-off-by: Junkyeong Kim --- haltests/src/tc_tdm_client.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/haltests/src/tc_tdm_client.cpp b/haltests/src/tc_tdm_client.cpp index 10e122d..eb537ca 100644 --- a/haltests/src/tc_tdm_client.cpp +++ b/haltests/src/tc_tdm_client.cpp @@ -1150,7 +1150,7 @@ TEST_P(TDMClient, ClientVblankWaitSetFps) end = tdm_helper_get_time(); /* "+ vrefresh_interval" consider the delay of socket communication between kernel and platform */ - ASSERT_GT((end - start), (interval - vrefresh_interval)); + ASSERT_GT((end - start), (interval - vrefresh_interval * 2)); ASSERT_LT((end - start), (interval + vrefresh_interval)); } @@ -1368,4 +1368,4 @@ INSTANTIATE_TEST_CASE_P(TDMClientParams, Values(TDM_DEFAULT_MODULE)); #endif -/* LCOV_EXCL_END */ \ No newline at end of file +/* LCOV_EXCL_END */ -- 2.7.4 From c5d9687d6b76a50d13ea7229a182d193489bb802 Mon Sep 17 00:00:00 2001 From: SooChan Lim Date: Fri, 14 Sep 2018 16:46:50 +0900 Subject: [PATCH 05/16] Package version up to 2.2.1 Change-Id: If8e3ace70b17d8a76763ef4e1d1d63f6a89d4cab --- packaging/libtdm.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/libtdm.spec b/packaging/libtdm.spec index f25bd23..f956e55 100644 --- a/packaging/libtdm.spec +++ b/packaging/libtdm.spec @@ -2,7 +2,7 @@ %define HALTESTS_GCOV 0 Name: libtdm -Version: 2.2.0 +Version: 2.2.1 Release: 0 Summary: User Library of Tizen Display Manager Group: Development/Libraries -- 2.7.4 From feeaa2e26e9fc8c3e3672b58f0e3c0d9c2f83709 Mon Sep 17 00:00:00 2001 From: SooChan Lim Date: Wed, 19 Sep 2018 19:21:02 +0900 Subject: [PATCH 06/16] tdm_hwc: change the symbol names of preperation types into constraints Change-Id: Ia02711a6d927edf6785048db171929e446398020 --- include/tdm.h | 7 +++---- include/tdm_backend.h | 8 ++++---- include/tdm_types.h | 14 ++++++++------ src/tdm_hwc_window.c | 7 +++---- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/include/tdm.h b/include/tdm.h index 0b40cd5..42837ab 100644 --- a/include/tdm.h +++ b/include/tdm.h @@ -1099,14 +1099,13 @@ tdm_error tdm_hwc_window_set_property(tdm_hwc_window *hwc_window, uint32_t id, tdm_value value); /** - * @brief Get the preperation type of hwc_window + * @brief Get the constraints of hwc_window * @param[in] hwc window A hwc window object - * @param[out] preperation_types The tdm_hwc_window_preparation types + * @param[out] constraints The tdm_hwc_window_constraint types * @return #TDM_ERROR_NONE if success. Otherwise, error value. */ tdm_error -tdm_hwc_window_get_preparation_types(tdm_hwc_window *hwc_window, - int *preparation_types); +tdm_hwc_window_get_constraints(tdm_hwc_window *hwc_window, int *constraints); /** * @brief Destroy a pp object diff --git a/include/tdm_backend.h b/include/tdm_backend.h index f695562..e7d08ee 100644 --- a/include/tdm_backend.h +++ b/include/tdm_backend.h @@ -971,13 +971,13 @@ typedef struct _tdm_func_hwc_window { uint32_t id, tdm_value *value); /** - * @brief Get the preperation type of hwc_window + * @brief Get the constraints of hwc_window * @param[in] hwc window A hwc window object - * @param[out] preperation_types The tdm_hwc_window_preparation types + * @param[out] constraints The tdm_hwc_window_constraint types * @return #TDM_ERROR_NONE if success. Otherwise, error value. */ - tdm_error (*hwc_window_get_preparation_types)(tdm_hwc_window *hwc_window, - int *preperation_types); + tdm_error (*hwc_window_get_constraints)(tdm_hwc_window *hwc_window, + int *constraints); } tdm_func_hwc_window; /** diff --git a/include/tdm_types.h b/include/tdm_types.h index 225325f..072f466 100644 --- a/include/tdm_types.h +++ b/include/tdm_types.h @@ -206,14 +206,16 @@ typedef enum { } tdm_hwc_window_composition; typedef enum { - TDM_PREPARATION_NONE = 0, + TDM_CONSTRAINT_NONE = 0, /** If the client needs to render to a specific buffer for compositing - * with TDM_COMPOSITION_DEVICE, Set TDM_PREPARATION_BUFFER_QUEUE type to hwc_window. - * The client will render next frame on buffers of queue which got by - * tdm_hwc_window_acquire_buffer_queue. + * with TDM_COMPOSITION_DEVICE, the backend needs to set + * TDM_CONSTRAINT_BUFFER_QUEUE to hwc_window until the hwc_window is not + * TDM_COMPOSITION_DEVICE. The client gets the tbm_surface_queue_h through + * the tdm_hwc_window_aquire_buffer_queue. It will render the frames on + * the buffers which gets from the tbm_surface_queue_h. */ - TDM_PREPARATION_BUFFER_QUEUE = (1 << 0), -} tdm_hwc_window_preparation; + TDM_CONSTRAINT_BUFFER_QUEUE = (1 << 0), +} tdm_hwc_window_constraint; /** * @brief The hwc window flag enumeration diff --git a/src/tdm_hwc_window.c b/src/tdm_hwc_window.c index 0066ef3..ce04c51 100644 --- a/src/tdm_hwc_window.c +++ b/src/tdm_hwc_window.c @@ -443,8 +443,7 @@ tdm_hwc_window_set_property(tdm_hwc_window *hwc_window, unsigned int id, tdm_val } EXTERN tdm_error -tdm_hwc_window_get_preparation_types(tdm_hwc_window *hwc_window, - int *preparation_types) +tdm_hwc_window_get_constraints(tdm_hwc_window *hwc_window, int *constraints) { tdm_private_module *private_module; tdm_func_hwc_window *func_hwc_window = NULL; @@ -456,13 +455,13 @@ tdm_hwc_window_get_preparation_types(tdm_hwc_window *hwc_window, private_module = private_output->private_module; func_hwc_window = &private_module->func_hwc_window; - if (!func_hwc_window->hwc_window_get_preparation_types) { + if (!func_hwc_window->hwc_window_get_constraints) { _pthread_mutex_unlock(&private_display->lock); TDM_WRN("not implemented!!"); return TDM_ERROR_NOT_IMPLEMENTED; } - ret = func_hwc_window->hwc_window_get_preparation_types(private_hwc_window->hwc_window_backend, preparation_types); + ret = func_hwc_window->hwc_window_get_constraints(private_hwc_window->hwc_window_backend, constraints); _pthread_mutex_unlock(&private_display->lock); -- 2.7.4 From 477497ef5c7d0812398b33de2bc5824638ba4a48 Mon Sep 17 00:00:00 2001 From: SooChan Lim Date: Wed, 19 Sep 2018 19:51:40 +0900 Subject: [PATCH 07/16] add temporary code to prevent the build break this code will be reverted later... Change-Id: I4b0f88519d705c64fe368d6429a4765cf0115541 --- include/tdm.h | 8 ++++++++ src/tdm_hwc_window.c | 7 +++++++ 2 files changed, 15 insertions(+) diff --git a/include/tdm.h b/include/tdm.h index 42837ab..5f14a4c 100644 --- a/include/tdm.h +++ b/include/tdm.h @@ -1107,6 +1107,14 @@ tdm_hwc_window_set_property(tdm_hwc_window *hwc_window, uint32_t id, tdm_value v tdm_error tdm_hwc_window_get_constraints(tdm_hwc_window *hwc_window, int *constraints); +// TODO : this will be removed... +#define TDM_PREPARATION_BUFFER_QUEUE 1000 +#define TDM_PREPARATION_NONE 1001 + +tdm_error +tdm_hwc_window_get_preparation_types(tdm_hwc_window *hwc_window, int *preparation_types); +// TODO + /** * @brief Destroy a pp object * @param[in] pp A pp object diff --git a/src/tdm_hwc_window.c b/src/tdm_hwc_window.c index ce04c51..71e0f01 100644 --- a/src/tdm_hwc_window.c +++ b/src/tdm_hwc_window.c @@ -467,4 +467,11 @@ tdm_hwc_window_get_constraints(tdm_hwc_window *hwc_window, int *constraints) return ret; } + +// TODO : this will be removed... +tdm_error +tdm_hwc_window_get_preparation_types(tdm_hwc_window *hwc_window, int *preparation_types) +{ + return TDM_ERROR_NONE; +} /* LCOV_EXCL_STOP */ \ No newline at end of file -- 2.7.4 From b988f674a26105301f39e9a528e47ea61956a895 Mon Sep 17 00:00:00 2001 From: SooChan Lim Date: Fri, 28 Sep 2018 14:58:04 +0900 Subject: [PATCH 08/16] hwc: fix the wrong parameter Change-Id: I087e2c0e3f5154453c60cd07c8947c74f0fd7db5 --- include/tdm_backend.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/tdm_backend.h b/include/tdm_backend.h index e7d08ee..6c5fd92 100644 --- a/include/tdm_backend.h +++ b/include/tdm_backend.h @@ -847,7 +847,7 @@ typedef struct _tdm_func_hwc { * @param[in] func A user commit handler * @return #TDM_ERROR_NONE if success. Otherwise, error value. */ - tdm_error (*hwc_set_commit_handler)(tdm_output *hwc, tdm_hwc_commit_handler func); + tdm_error (*hwc_set_commit_handler)(tdm_hwc *hwc, tdm_hwc_commit_handler func); } tdm_func_hwc; /** -- 2.7.4 From 94c9c19e4249c723efe343575d609df6a7d445dd Mon Sep 17 00:00:00 2001 From: SooChan Lim Date: Tue, 2 Oct 2018 20:12:18 +0900 Subject: [PATCH 09/16] hwc: modify the doxygen of the hwc apis Change-Id: I275d882f5ac466fd9755ccc9d4f4a1e2b89ec6d2 --- include/tdm.h | 111 ++++++++++++++++--------------------------------- include/tdm_backend.h | 112 ++++++++++++++++++-------------------------------- 2 files changed, 76 insertions(+), 147 deletions(-) diff --git a/include/tdm.h b/include/tdm.h index 5f14a4c..3f0b89d 100644 --- a/include/tdm.h +++ b/include/tdm.h @@ -856,10 +856,9 @@ tdm_hwc_get_available_properties(tdm_hwc *hwc, const tdm_prop **props, int *coun /** * @brief Get a target buffer queue - * @details Buffers from target buffer queue will receive the output of - * client composition. Window marked as TDM_COMPOSITION_CLIENT or - * TDM_COMPOSITION_DEVICE_CANDIDATE will be composited into this buffers - * prior to the call to tdm_output_commit(). + * @details The client composites the tdm_hwd_windows which have + * TDM_COMPOSITE_CLIENT types on the buffer from this target buffer queue. + * Then, the client set the buffer by calling tdm_hwc_set_client_target_buffer. * @param[in] output A output object * @param[out] error #TDM_ERROR_NONE if success. Otherwise, error value. * @return A buffer queue @@ -870,33 +869,12 @@ tdm_hwc_get_client_target_buffer_queue(tdm_hwc *hwc, tdm_error *error); /** * @brief Set the client(relative to the TDM) target buffer - * @details Sets the buffer which will receive the output of client composition. - * Window marked as TDM_COMPOSITION_CLIENT or TDM_COMPOSITION_DEVICE_CANDIDATE - * will be composited into this buffer prior to the call to tdm_output_commit(), - * and windows not marked as TDM_COMPOSITION_CLIENT and - * TDM_COMPOSITION_DEVICE_CANDIDATE should be composited with this buffer by the - * device. - * - * The buffer handle provided may be null if no windows are being composited by - * the client. This must not result in an error (unless an invalid display - * handle is also provided). - * - * The damage parameter describes a buffer damage region as defined in the - * description of tdm_hwc_window_set_buffer_damage(). - * - * List of composited hwc_windows (hwc_windows which buffers are presented on #target_buffer) - * should be passed along with #target_buffer to allow tdm to make the smooth transition - * from a DEVICE type to a CLIENT type. - * - * Should be called before tdm_output_commit() if any of the layers are marked as - * TDM_COMPOSITION_CLIENT or TDM_COMPOSITION_DEVICE_CANDIDATE. If no layers are - * so marked, then it is not necessary to call this function. It is not necessary - * to call tdm_hwc_validate() after changing the target through this function. + * @details This function lets the backend know the target buffer. + * The target buffer contains the result of the gl composition with the + * tdm_hwc_windows which marked as TDM_COMPOSITION_CLIENT. * @param[in] hwc A output hwc * @param[in] target_buffer The new target buffer * @param[in] damage The buffer damage region - * @param[in] composited_wnds The array of composited hwc_wnds - * @param[in] num_wnds The size of #composited_wnds array * @return #TDM_ERROR_NONE if success. Otherwise, error value. * @since 2.0.0 */ @@ -905,18 +883,19 @@ tdm_hwc_set_client_target_buffer(tdm_hwc *hwc, tbm_surface_h target_buffer, tdm_ /** * @brief Validate the output - * @details Instructs the device to inspect all of the layer state and + * @details Instructs the backend to inspect all of the hw layer state and * determine if there are any composition type changes necessary before - * presenting the output. Permitted changes are described in the definition - * of tdm_hwc_window_composition_t above. - * @param[in] output A output object - * @param[out] num_types The number of composition type changes required by - * the device; if greater than 0, the client must either set and validate new - * types, or call tdm_hwc_accept_changes() to accept the changes returned by - * tdm_hwc_get_changed_composition_types(); must be the same as the number of - * changes returned by tdm_hwc_get_changed_composition_types (see the - * declaration of that function for more information); pointer will be non-NULL - * @return #TDM_ERROR_NONE if success. Otherwise, error value. + * presenting the hwc. + * @param[in] hwc A hwc object + * @param[in] composited_wnds the hwc window list which is visible. + * @param[in] num_wnds the number of the visible windows in the composited_wnds + * @param[out] num_types The number of composition type changes + * @return #TDM_ERROR_NONE if success. Otherwise, error value. + * @remark + * The backend has to return the num_types when the assgined comopsite types of + * the tdm_hwc_windows in the composited_wnds. If the num_types is greater than + * 0, the cleint must get the changed composite types of the tdm_hwc_windows + * and change the comopsite types * @since 2.0.0 */ tdm_error @@ -925,25 +904,19 @@ tdm_hwc_validate(tdm_hwc *hwc, tdm_hwc_window **composited_wnds, uint32_t num_wn /** * @brief Get changed composition types - * @details Retrieves the windows for which the device requires a different - * composition type than had been set prior to the last call to tdm_hwc_validate(). + * @details Retrieves the windows for which the backend requires a different + * composition types that had been set prior to the last call to tdm_hwc_validate(). * The client will either update its state with these types and call * tdm_hwc_accept_changes, or will set new types and attempt to validate the - * display again. - * windows and types may be NULL to retrieve the number of elements which - * will be returned. The number of elements returned must be the same as the + * display again. The number of elements returned must be the same as the * value returned in num_types from the last call to tdm_hwc_validate(). - * @param[in] output A output object - * @param[out] num_elements If windows or types were NULL, the number of layers - * and types which would have been returned; if both were non-NULL, the - * number of elements returned in layers and types, which must not exceed - * the value stored in num_elements prior to the call; pointer will be - * non-NULL - * @param[in] output A output object + * @param[in] hwc A hwc object + * @param[out] num_elements the number of hwc_windows * @param[out] windows An array of windows * @param[out] composition_types An array of composition types, each corresponding * to an element of windows * @return #TDM_ERROR_NONE if success. Otherwise, error value. + * @remark * @since 2.0.0 */ tdm_error @@ -952,17 +925,10 @@ tdm_hwc_get_changed_composition_types(tdm_hwc *hwc, uint32_t *num_elements, tdm_hwc_window_composition *composition_types); /** - * @brief Accepts the changes required by the device - * @details Accepts the changes required by the device from the previous - * tdm_hwc_validate() call (which may be queried using - * tdm_hwc_get_chaged_composition_types()) and revalidates the display. This - * function is equivalent to requesting the changed types from - * tdm_hwc_get_chaged_composition_types(), setting those types on the - * corresponding windows, and then calling tdm_hwc_validate again. - * After this call it must be valid to present this display. Calling this after - * tdm_hwc_validate() returns 0 changes must succeed with TDM_ERROR_NONE, but - * should have no other effect. - * @param[in] output A output object + * @brief Accepts the changes required by the backend + * @details Accepts the changes required by the backend from the previous + * tdm_hwc_validate() and tdm_hwc_get_chaged_composition_types(). + * @param[in] hwc A hwc object * @return #TDM_ERROR_NONE if success. Otherwise, error value. * @since 2.0.0 */ @@ -984,7 +950,6 @@ tdm_hwc_commit(tdm_hwc *hwc, int sync, tdm_hwc_commit_handler func, void *user_d /** * @brief Destroys the given window. - * @param[in] output A output object * @param[in] window the pointer of the window to destroy * @since 2.0.0 */ @@ -1015,7 +980,7 @@ tdm_hwc_window_release_buffer_queue(tdm_hwc_window *hwc_window, tbm_surface_queu /** * @brief Sets the desired composition type of the given window. - * @details During tdm_hwc_validate(), the device may request changes to + * @details During tdm_hwc_validate(), the backend may request changes to * the composition types of any of the layers as described in the definition * of tdm_hwc_window_composition_t above. * @param[in] hwc_window A window object @@ -1053,8 +1018,7 @@ tdm_hwc_window_set_buffer_damage(tdm_hwc_window *hwc_window, tdm_region damage); /** * @brief Set the information to a window object - * @details The information will be applied when the output object of a window - * object is committed. + * @details The information will be applied when the hwc object is committed. * @param[in] hwc_window A window object * @param[in] info The information * @return #TDM_ERROR_NONE if success. Otherwise, error value. @@ -1068,11 +1032,8 @@ tdm_hwc_window_set_info(tdm_hwc_window *hwc_window, tdm_hwc_window_info *info); * @details A TBM buffer will be applied when the output object of a layer * object is committed. * @param[in] hwc_window A window object - * @param[in] buffer A TDM buffer + * @param[in] buffer A TBM buffer * @return #TDM_ERROR_NONE if success. Otherwise, error value. - * @return #TDM_ERROR_BUSY if #hwc_window can't be updated right now, this - * can happen if #hwc_window is involved in the smooth transition from - * DEVICE to CLIENT, this shouldn't be interpreted like some critical error. * @since 2.0.0 */ tdm_error @@ -1080,9 +1041,9 @@ tdm_hwc_window_set_buffer(tdm_hwc_window *hwc_window, tbm_surface_h buffer); /** * @brief Get the property which has a given id. - * @param[in] hwc window A hwc window object + * @param[in] hwc_window A hwc window object * @param[in] id The property id - * @param[out] value The value + * @param[out] value The value of the propery id * @return #TDM_ERROR_NONE if success. Otherwise, error value. */ tdm_error @@ -1090,9 +1051,9 @@ tdm_hwc_window_get_property(tdm_hwc_window *hwc_window, uint32_t id, tdm_value * /** * @brief Set the property which has a given id. - * @param[in] hwc window A hwc window object + * @param[in] hwc_window A hwc window object * @param[in] id The property id - * @param[in] value The value + * @param[in] value The value of the propery id * @return #TDM_ERROR_NONE if success. Otherwise, error value. */ tdm_error @@ -1100,7 +1061,7 @@ tdm_hwc_window_set_property(tdm_hwc_window *hwc_window, uint32_t id, tdm_value v /** * @brief Get the constraints of hwc_window - * @param[in] hwc window A hwc window object + * @param[in] hwc_window A hwc window object * @param[out] constraints The tdm_hwc_window_constraint types * @return #TDM_ERROR_NONE if success. Otherwise, error value. */ diff --git a/include/tdm_backend.h b/include/tdm_backend.h index 6c5fd92..1ee231a 100644 --- a/include/tdm_backend.h +++ b/include/tdm_backend.h @@ -733,29 +733,12 @@ typedef struct _tdm_func_hwc { /** * @brief Set the client(relative to the TDM) target buffer - * @details Sets the buffer which will receive the hwc of client composition. - * Window marked as TDM_COMPOSITION_CLIENT or TDM_COMPOSITION_DEVICE_CANDIDATE - * will be composited into this buffer prior to the call to hwc_commit(), - * and windows not marked as TDM_COMPOSITION_CLIENT and - * TDM_COMPOSITION_DEVICE_CANDIDATE should be composited with this buffer by the - * device. - * - * The buffer handle provided may be null if no windows are being composited by - * the client. This must not result in an error (unless an invalid display - * handle is also provided). - * - * The damage parameter describes a buffer damage region as defined in the - * description of hwc_window_set_buffer_damage(). - * - * Will be called before hwc_commit() if any of the layers are marked as - * TDM_COMPOSITION_CLIENT or TDM_COMPOSITION_DEVICE_CANDIDATE. If no layers are - * so marked, then it is not necessary to call this function. It is not necessary - * to call hwc_validate() after changing the target through this function. + * @details This function lets the backend know the target buffer. + * The target buffer contains the result of the gl composition with the + * tdm_hwc_windows which marked as TDM_COMPOSITION_CLIENT. * @param[in] hwc A hwc object - * @param[in] target The new target buffer + * @param[in] target_buffer The new target buffer * @param[in] damage The buffer damage region - * @param[in] composited_wnds The array of composited hwc_wnds - * @param[in] num_wnds The size of #composited_wnds array * @return #TDM_ERROR_NONE if success. Otherwise, error value. * @since 2.0.0 */ @@ -765,18 +748,19 @@ typedef struct _tdm_func_hwc { /** * @brief Validate the hwc - * @details Instructs the device to inspect all of the layer state and + * @details Instructs the backend to inspect all of the hw layer state and * determine if there are any composition type changes necessary before - * presenting the hwc. Permitted changes are described in the definition - * of tdm_composition_t above. + * presenting the hwc. * @param[in] hwc A hwc object - * @param[out] num_types The number of composition type changes required by - * the device; if greater than 0, the client must either set and validate new - * types, or call hwc_accept_changes() to accept the changes returned by - * hwc_get_changed_composition_types(); must be the same as the number of - * changes returned by hwc_get_changed_composition_types (see the - * declaration of that function for more information); pointer will be non-NULL + * @param[in] composited_wnds the hwc window list which is visible. + * @param[in] num_wnds the number of the visible windows in the composited_wnds + * @param[out] num_types The number of composition type changes * @return #TDM_ERROR_NONE if success. Otherwise, error value. + * @remark + * The backend has to return the num_types when the assgined comopsite types of + * the tdm_hwc_windows in the composited_wnds. If the num_types is greater than + * 0, the cleint must get the changed composite types of the tdm_hwc_windows + * and change the comopsite types * @since 2.0.0 */ tdm_error (*hwc_validate)(tdm_hwc *hwc, tdm_hwc_window **composited_wnds, @@ -784,23 +768,17 @@ typedef struct _tdm_func_hwc { /** * @brief Get changed composition types - * @details Retrieves the windows for which the device requires a different - * composition type than had been set prior to the last call to hwc_validate(). + * @details Retrieves the windows for which the backend requires a different + * composition types that had been set prior to the last call to tdm_hwc_validate(). * The client will either update its state with these types and call - * hwc_accept_changes, or will set new types and attempt to validate the - * display again. - * layers and types may be NULL to retrieve the number of elements which - * will be returned. The number of elements returned must be the same as the - * value returned in num_types from the last call to hwc_validate(). + * tdm_hwc_accept_changes, or will set new types and attempt to validate the + * display again. The number of elements returned must be the same as the + * value returned in num_types from the last call to tdm_hwc_validate(). * @param[in] hwc A hwc object - * @param[out] num_elements If windows or types were NULL, the number of layers - * and types which would have been returned; if both were non-NULL, the - * number of elements returned in layers and types, which must not exceed - * the value stored in num_elements prior to the call; pointer will be - * non-NULL + * @param[out] num_elements the number of hwc_windows * @param[out] windows An array of windows - * @param[out] composition_types An array of composition types, each - * corresponding to an element of windows + * @param[out] composition_types An array of composition types, each corresponding + * to an element of windows * @return #TDM_ERROR_NONE if success. Otherwise, error value. * @since 2.0.0 */ @@ -808,16 +786,9 @@ typedef struct _tdm_func_hwc { tdm_hwc_window **hwc_window, tdm_hwc_window_composition *composition_types); /** - * @brief Accepts the changes required by the device - * @details Accepts the changes required by the device from the previous - * hwc_validate() call (which may be queried using - * hwc_get_chaged_composition_types()) and revalidates the display. This - * function is equivalent to requesting the changed types from - * hwc_get_chaged_composition_types(), setting those types on the - * corresponding windows, and then calling hwc_validate again. - * After this call it must be valid to present this display. Calling this after - * hwc_validate() returns 0 changes must succeed with TDM_ERROR_NONE, but - * should have no other effect. + * @brief Accepts the changes required by the backend + * @details Accepts the changes required by the backend from the previous + * tdm_hwc_validate() and tdm_hwc_get_chaged_composition_types(). * @param[in] hwc A hwc object * @return #TDM_ERROR_NONE if success. Otherwise, error value. * @since 2.0.0 @@ -825,7 +796,7 @@ typedef struct _tdm_func_hwc { tdm_error (*hwc_accept_changes)(tdm_hwc *hwc); /** - * @brief Commit changes for a output object + * @brief Commit changes for a hwc object * @param[in] hwc A hwc object * @param[in] sync 0: asynchronous, 1:synchronous * @param[in] user_data The user data @@ -833,11 +804,11 @@ typedef struct _tdm_func_hwc { * @see hwc_set_commit_handler, tdm_hwc_commit_handler * @remark * When this function is called, a backend module @b SHOULD apply the all - * changes of the given output object to screen as well as the layer changes - * of this output. + * changes of the given hwc object to screen as well as the layer changes + * of this hwc. * If this function returns TDM_ERROR_NONE, a backend module @b SHOULD call * a user commit handler with the user data of this function after all - * changes of the given output object are applied. + * changes of the given hwc object are applied. */ tdm_error (*hwc_commit)(tdm_hwc *hwc, int sync, void *user_data); @@ -863,7 +834,9 @@ typedef struct _tdm_func_hwc_window { void (*hwc_window_destroy)(tdm_hwc_window *hwc_window); /** - * @brief Get a buffer queue for the window object + * @brief Acquire a buffer queue for the window object + * @details These buffers are used to composite by hardware a client content in + * the nocomp mode. * @param[in] hwc_window A window object * @param[out] error #TDM_ERROR_NONE if success. Otherwise, error value. * @return A buffer queue @@ -882,7 +855,7 @@ typedef struct _tdm_func_hwc_window { /** * @brief Sets the desired composition type of the given window. - * @details During hwc_validate(), the device may request changes to + * @details During hwc_validate(), the backend may request changes to * the composition types of any of the layers as described in the definition * of tdm_hwc_window_composition_t above. * @param[in] hwc_window A window object @@ -917,8 +890,7 @@ typedef struct _tdm_func_hwc_window { /** * @brief Set the information to a window object - * @details The information will be applied when the hwc object - * of a layer object is committed. + * @details The information will be applied when the hwc object is committed. * @param[in] hwc_window A window object * @param[in] info The geometry information * @return #TDM_ERROR_NONE if success. Otherwise, error value. @@ -940,21 +912,17 @@ typedef struct _tdm_func_hwc_window { * @details A TDM buffer will be applied when the hwc object * of a layer object is committed. * @param[in] hwc_window A window object - * @param[in] buffer A TDM buffer + * @param[in] buffer A TBM buffer * @return #TDM_ERROR_NONE if success. Otherwise, error value. - * - * Implementation should return #TDM_ERROR_BUSY if #hwc_window can't - * be updated right now, this won't be interpreted like some critical - * error. */ tdm_error (*hwc_window_set_buffer)(tdm_hwc_window *hwc_window, tbm_surface_h buffer); /** * @brief Set the property which has a given id. - * @param[in] hwc window A hwc window object + * @param[in] hwc_window A hwc window object * @param[in] id The property id - * @param[in] value The value + * @param[in] value The value of the propery id * @return #TDM_ERROR_NONE if success. Otherwise, error value. */ tdm_error (*hwc_window_set_property)(tdm_hwc_window *hwc_window, @@ -962,9 +930,9 @@ typedef struct _tdm_func_hwc_window { /** * @brief Get the property which has a given id. - * @param[in] hwc window A hwc window object + * @param[in] hwc_window A hwc window object * @param[in] id The property id - * @param[out] value The value + * @param[out] value The value of the propery id * @return #TDM_ERROR_NONE if success. Otherwise, error value. */ tdm_error (*hwc_window_get_property)(tdm_hwc_window *hwc_window, @@ -972,7 +940,7 @@ typedef struct _tdm_func_hwc_window { /** * @brief Get the constraints of hwc_window - * @param[in] hwc window A hwc window object + * @param[in] hwc_window A hwc window object * @param[out] constraints The tdm_hwc_window_constraint types * @return #TDM_ERROR_NONE if success. Otherwise, error value. */ -- 2.7.4 From b79cd65ec653675bf8fb5b398cdc4d4a2e432856 Mon Sep 17 00:00:00 2001 From: SooChan Lim Date: Thu, 4 Oct 2018 13:18:17 +0900 Subject: [PATCH 10/16] Revert "add temporary code to prevent the build break" This reverts commit 477497ef5c7d0812398b33de2bc5824638ba4a48. Change-Id: I9987d470e5f2fa51be7c6f634655057904f7dee2 --- include/tdm.h | 8 -------- src/tdm_hwc_window.c | 7 ------- 2 files changed, 15 deletions(-) diff --git a/include/tdm.h b/include/tdm.h index 3f0b89d..dc81bf8 100644 --- a/include/tdm.h +++ b/include/tdm.h @@ -1068,14 +1068,6 @@ tdm_hwc_window_set_property(tdm_hwc_window *hwc_window, uint32_t id, tdm_value v tdm_error tdm_hwc_window_get_constraints(tdm_hwc_window *hwc_window, int *constraints); -// TODO : this will be removed... -#define TDM_PREPARATION_BUFFER_QUEUE 1000 -#define TDM_PREPARATION_NONE 1001 - -tdm_error -tdm_hwc_window_get_preparation_types(tdm_hwc_window *hwc_window, int *preparation_types); -// TODO - /** * @brief Destroy a pp object * @param[in] pp A pp object diff --git a/src/tdm_hwc_window.c b/src/tdm_hwc_window.c index 71e0f01..ce04c51 100644 --- a/src/tdm_hwc_window.c +++ b/src/tdm_hwc_window.c @@ -467,11 +467,4 @@ tdm_hwc_window_get_constraints(tdm_hwc_window *hwc_window, int *constraints) return ret; } - -// TODO : this will be removed... -tdm_error -tdm_hwc_window_get_preparation_types(tdm_hwc_window *hwc_window, int *preparation_types) -{ - return TDM_ERROR_NONE; -} /* LCOV_EXCL_STOP */ \ No newline at end of file -- 2.7.4 From 3481e1535f0c47f89a742c5056bfee511b4e5be0 Mon Sep 17 00:00:00 2001 From: SooChan Lim Date: Thu, 4 Oct 2018 13:19:21 +0900 Subject: [PATCH 11/16] hwc: rearrange the api position Change-Id: I9dc2ed38b18031d09629f9322bc4883cbdf7efdd --- include/tdm.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/include/tdm.h b/include/tdm.h index dc81bf8..11e6173 100644 --- a/include/tdm.h +++ b/include/tdm.h @@ -1040,24 +1040,24 @@ tdm_error tdm_hwc_window_set_buffer(tdm_hwc_window *hwc_window, tbm_surface_h buffer); /** - * @brief Get the property which has a given id. - * @param[in] hwc_window A hwc window object + * @brief Set the property which has a given id. + * @param[in] hwc_window A hwc window object * @param[in] id The property id - * @param[out] value The value of the propery id + * @param[in] value The value of the propery id * @return #TDM_ERROR_NONE if success. Otherwise, error value. */ tdm_error -tdm_hwc_window_get_property(tdm_hwc_window *hwc_window, uint32_t id, tdm_value *value); +tdm_hwc_window_set_property(tdm_hwc_window *hwc_window, uint32_t id, tdm_value value); /** - * @brief Set the property which has a given id. - * @param[in] hwc_window A hwc window object + * @brief Get the property which has a given id. + * @param[in] hwc_window A hwc window object * @param[in] id The property id - * @param[in] value The value of the propery id + * @param[out] value The value of the propery id * @return #TDM_ERROR_NONE if success. Otherwise, error value. */ tdm_error -tdm_hwc_window_set_property(tdm_hwc_window *hwc_window, uint32_t id, tdm_value value); +tdm_hwc_window_get_property(tdm_hwc_window *hwc_window, uint32_t id, tdm_value *value); /** * @brief Get the constraints of hwc_window -- 2.7.4 From 21721343ed476dd14de68b65e71644ff44f4cba4 Mon Sep 17 00:00:00 2001 From: SooChan Lim Date: Thu, 4 Oct 2018 13:20:16 +0900 Subject: [PATCH 12/16] backend: remove hwc_window_get_info Change-Id: I78dcb2ec122f8b00ae8355df78187eb5dafe20a2 --- include/tdm_backend.h | 9 --------- 1 file changed, 9 deletions(-) diff --git a/include/tdm_backend.h b/include/tdm_backend.h index 1ee231a..033f803 100644 --- a/include/tdm_backend.h +++ b/include/tdm_backend.h @@ -899,15 +899,6 @@ typedef struct _tdm_func_hwc_window { tdm_hwc_window_info *info); /** - * @brief Get the geometry information to a layer object - * @param[in] layer A layer object - * @param[out] info The geometry information - * @return #TDM_ERROR_NONE if success. Otherwise, error value. - */ - tdm_error (*hwc_window_get_info)(tdm_hwc_window *hwc_window, - tdm_hwc_window_info *info); - - /** * @brief Set a TDM buffer to a window object * @details A TDM buffer will be applied when the hwc object * of a layer object is committed. -- 2.7.4 From a1058afd6c7414f47b36bdb06de6f1b00a1403ea Mon Sep 17 00:00:00 2001 From: SooChan Lim Date: Thu, 4 Oct 2018 13:28:57 +0900 Subject: [PATCH 13/16] Package version up to 2.3.0 Change-Id: I1cf990285993fde51116809aab1654d3c69ff7b3 --- packaging/libtdm.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/libtdm.spec b/packaging/libtdm.spec index f956e55..71b69cc 100644 --- a/packaging/libtdm.spec +++ b/packaging/libtdm.spec @@ -2,7 +2,7 @@ %define HALTESTS_GCOV 0 Name: libtdm -Version: 2.2.1 +Version: 2.3.0 Release: 0 Summary: User Library of Tizen Display Manager Group: Development/Libraries -- 2.7.4 From b200a7e58bbb86acf6af5e25031bb47210b985b5 Mon Sep 17 00:00:00 2001 From: SooChan Lim Date: Wed, 10 Oct 2018 14:47:01 +0900 Subject: [PATCH 14/16] hwc: remove the unused enum type Change-Id: I8ccb01dd67b0b75c96274974007231290d2ee118 --- include/tdm_types.h | 8 -------- 1 file changed, 8 deletions(-) diff --git a/include/tdm_types.h b/include/tdm_types.h index 072f466..86ad6e7 100644 --- a/include/tdm_types.h +++ b/include/tdm_types.h @@ -218,14 +218,6 @@ typedef enum { } tdm_hwc_window_constraint; /** - * @brief The hwc window flag enumeration - * @since 2.0.0 - */ -typedef enum { - TDM_HWC_WINDOW_FLAG_NONE = 0, -} tdm_hwc_window_flag; - -/** * @brief The tdm display object */ typedef void tdm_display; -- 2.7.4 From 0e9134c961756bf62b6e77039a5bca36506c254e Mon Sep 17 00:00:00 2001 From: SooChan Lim Date: Wed, 10 Oct 2018 15:10:45 +0900 Subject: [PATCH 15/16] hwc: modify the doxygen of tdm_hwc_window_composition Change-Id: Ie27771f551f9885ed2168d7a05ad717acba20c18 --- include/tdm_types.h | 55 +++++++++++++++++++++++++++++------------------------ 1 file changed, 30 insertions(+), 25 deletions(-) diff --git a/include/tdm_types.h b/include/tdm_types.h index 86ad6e7..b87fc18 100644 --- a/include/tdm_types.h +++ b/include/tdm_types.h @@ -161,47 +161,52 @@ typedef struct _tdm_info_capture { */ typedef enum { - /** Set by the client for an invisible window. The value by default. + /** The composition type for an invisible window. The value by default. * - * The device ignores windows of this type. + * The backend ignores windows of this type. */ TDM_COMPOSITION_NONE = 0, - /** The client will composite this window into the client target window + /** The compostion type for an window to be compsoited by the client. * - * User can choose this type for window to avoid a hardware composition for - * this window. + * When the client sets this composition type, + * the backend MUST NOT modify this composition type into other types. * - * The device must not request any composition type changes for windows of - * this type. + * When the backend changes TDM_COMPOSITION_DEVICE or TDM_COMPOSITION_CURSOR + * to this composition type at the time of tdm_hwc_validate and + * tdm_hwc_get_changed_composition_types, + * the client has to composite this window with gl or other drawing operations. */ TDM_COMPOSITION_CLIENT = 1, - /** Set by the HWC after tdm_hwc_validate(). + /** The compostion type for an window to be set to the hw overlay. * - * The device will handle the composition of this window through a hardware - * overlay or other similar means. - * - * Upon tdm_hwc_validate(), the device may request a change from this type to - * TDM_COMPOSITION_CLIENT or TDM_COMPOSITION_DEVICE_CANDIDATE. */ + * The client sets this composition type to the visible windows before requesting + * the tdm_hwc_validate. + * Nomally, the backend leave it if the backend sets the window to the hw overlay. + * If the backend does not set the window to the hw overlay at the time of + * tdm_hwc_validate, the backend changes the composition type of the window into + * TDM_COMPOSITION_CLIENT. + */ TDM_COMPOSITION_DEVICE = 3, - /** Similar to DEVICE, but the position of this layer may also be set - * asynchronously through layer_set_cursor_position. If this functionality is not - * supported on a layer that the client sets to TDM_COMPOSITION_CURSOR, the - * device must request that the composition type of that layer is changed to - * TDM_COMPOSITION_CLIENT upon the next call to tdm_hwc_validate(). + /** The compostion type for an window to be set to the cursor hw overlay. * - * Upon tdm_hwc_validate(), the device may request a change from this type to - * either TDM_COMPOSITION_DEVICE or TDM_COMPOSITION_CLIENT. Changing to - * TDM_COMPOSITION_DEVICE will prevent the use of layer_set_cursor_position but - * still permit the device to composite the layer. */ + * The client sets this composition type to the cursor window before requesting + * the tdm_hwc_validate. + * If the backend does not support the cursor hw overlay, the backend can change + * the comopsition type into the TDM_COMPOSITION_CLIENT. + */ TDM_COMPOSITION_CURSOR = 4, - /** This type is for the VIDEO window which can be set to the reserved hw overlay - * which is assigned by the device. + /** The compostion type for an window to be set to the video hw overlay. * - * Normally, this VIDEO window displays under the primary hw overlayer of the output. */ + * The client sets this composition type to the video window before requesting + * the tdm_hwc_validate. + * If the backend does not support the video hw overlay, the backend can change + * the comopsition type into the TDM_COMPOSITION_CLIENT. + * Normally, this VIDEO window displays under the primary hw overlayer of the output. + */ TDM_COMPOSITION_VIDEO = 5, } tdm_hwc_window_composition; -- 2.7.4 From ed387c18be48e1de769bde246ad9bf7b4b4183ec Mon Sep 17 00:00:00 2001 From: SooChan Lim Date: Thu, 11 Oct 2018 10:28:16 +0900 Subject: [PATCH 16/16] Package version up to 2.3.1 Change-Id: I7397ead44069ada32db5591e15b3c5a56e596976 --- packaging/libtdm.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/libtdm.spec b/packaging/libtdm.spec index 71b69cc..5bd715e 100644 --- a/packaging/libtdm.spec +++ b/packaging/libtdm.spec @@ -2,7 +2,7 @@ %define HALTESTS_GCOV 0 Name: libtdm -Version: 2.3.0 +Version: 2.3.1 Release: 0 Summary: User Library of Tizen Display Manager Group: Development/Libraries -- 2.7.4