Hoyub Lee [Tue, 10 Oct 2017 07:15:11 +0000 (16:15 +0900)]
tpl_wayland_vk_wsi: Fix tizen coding rule violations
Change-Id: I01c30ebc4b9cd11a4fcbaac737e74b6880d76942
Signed-off-by: Hoyub Lee <hoyub.lee@samsung.com>
joonbum.ko [Wed, 27 Sep 2017 03:55:08 +0000 (12:55 +0900)]
Package version up to 1.4.10
Change-Id: Ief444ca8917dda880460cae7914789f5b52bd118
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Wed, 27 Sep 2017 06:08:40 +0000 (15:08 +0900)]
tpl_wayland_egl_thread: Initialized the variables of wl_egl_window that will not be used.
Change-Id: Ic8f5286b1881de7c7653de716889923c9d801e8c
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Wed, 27 Sep 2017 06:06:32 +0000 (15:06 +0900)]
wayland-egl: Initialized an uninitialized function pointer.
Change-Id: Id1fd615b36a3f14eade1867c3ba4601ef67d73c5
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
Hoyub Lee [Mon, 25 Sep 2017 08:26:39 +0000 (17:26 +0900)]
tc: Add tpl-test build option on spec file
tpl-test can be built with either ways:
- Build with [--with-utest=yes]
- Change the value of 'ENABLE_TPL_TEST' to '1' of spec file
Change-Id: I8b2a3e14ef25bbf21697a3c8da5cfd50eb9c175b
Signed-off-by: Hoyub Lee <hoyub.lee@samsung.com>
Hoyub Lee [Mon, 25 Sep 2017 08:25:00 +0000 (17:25 +0900)]
tc: Apply autotools on tpl-test build system
This patch replace manually written Makefile to autotools on tpl-test.
Change-Id: I0a4040c3e5d259fe530c6b688de66283df93faa6
Signed-off-by: Hoyub Lee <hoyub.lee@samsung.com>
Hoyub Lee [Tue, 26 Sep 2017 10:02:07 +0000 (19:02 +0900)]
wayland-egl: Initialize uninitialized variable in wl_egl_window_create
Change-Id: I5e123fd8f0b9d2b0f77bae77db03a67906ce389c
Signed-off-by: Hoyub Lee <hoyub.lee@samsung.com>
Hoyub Lee [Tue, 26 Sep 2017 08:46:24 +0000 (17:46 +0900)]
tpl_worker_thread: Add checking return value of tdm event
Change-Id: I8cfb9f9b872694bfc5f84f4997937469f6bd5f33
Signed-off-by: Hoyub Lee <hoyub.lee@samsung.com>
Hoyub Lee [Wed, 27 Sep 2017 01:59:18 +0000 (10:59 +0900)]
tpl_worker_thread: Fix tizen coding rule violation
Change-Id: I4b1ec310b03045dff6e434a83e6b90ea9f62b0de
Signed-off-by: Hoyub Lee <hoyub.lee@samsung.com>
Hoyub Lee [Tue, 26 Sep 2017 08:25:01 +0000 (17:25 +0900)]
tpl_wl_egl_thread: Add missing mutex unlock in error handling
Change-Id: I45ab54c170de85a8a1b7feb59b9303a40483cfec
Signed-off-by: Hoyub Lee <hoyub.lee@samsung.com>
Hoyub Lee [Tue, 26 Sep 2017 08:09:15 +0000 (17:09 +0900)]
tpl_wayland_egl_thread: Add missing mutex unlock in error handling
Change-Id: I15a558d8f88c30990231c759b9ca3b171ff7eb35
Signed-off-by: Hoyub Lee <hoyub.lee@samsung.com>
joonbum.ko [Fri, 22 Sep 2017 08:22:13 +0000 (17:22 +0900)]
Package version up to 1.4.9
- libwayland-egl: package version up to 1.2.3
Change-Id: Idd5f9da7e3caf7219afa5bdb63ee6dcb940aa450
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Fri, 22 Sep 2017 08:21:18 +0000 (17:21 +0900)]
tpl_wayland_egl_thread: Changed the calling order of g_source_remove_fd().
Change-Id: Idd1250427579bb6cf9b1b5ff92515c708952ec3c
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Fri, 22 Sep 2017 05:58:39 +0000 (14:58 +0900)]
tpl_wayland_egl_thread: modified the wl_surf_source to be destroyed in the thread.
- It is destroyed in thread through del_source like tdm_source and wl_disp_source.
Change-Id: Ic65e5521d4fafb9734de87f114ae292195b008a1
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Thu, 21 Sep 2017 03:15:54 +0000 (12:15 +0900)]
tpl_wayland_egl_thread: modified the tdm_source to be destroyed in the thread.
- The tdm_source is created in the thread.
- The tdm_del_source is created in the main thread after the tdm_source is created.
- When twe_thread_destroy() is called, the tdm_source is destroyed in the thread
by triggering an event on tdm_del_source.
Change-Id: Icc88a9b92e446071d3776191fc120153a4c62502
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Fri, 22 Sep 2017 06:54:30 +0000 (15:54 +0900)]
tpl_wayland_egl_thread: protected the process of twe_display_del with mutex.
- The function twe_display_del is called by the main thread,
but the actual destroy process is handled by the thread through twe_del_source.
Therefore, while the del_source is being processed by the thread,
the main thread must wait in cond_wait.
Change-Id: I7cffdc1d6fd477213d8258cf87871aa3de0c75f2
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
Hoyub Lee [Fri, 15 Sep 2017 08:46:48 +0000 (17:46 +0900)]
tpl_wayland_egl_thread: Protect twe_thread_create() with mutex
Currently, main thread does not wait for newly creating threads which
has its own initialization process. As initalization happens on newly
created thread, without protecting, undesirable behaviour can occur.
Therefore, change main thread to wait newly creating thread with mutex.
Change-Id: Id32092d77c35bd7b8d705057a1b07798820e8e20
Signed-off-by: Hoyub Lee <hoyub.lee@samsung.com>
joonbum.ko [Wed, 20 Sep 2017 05:29:29 +0000 (14:29 +0900)]
tpl_wayland_egl_thread: Modified the function ordering.
Change-Id: I95102a262924c06fa4243e81192cca5b2c0f25dd
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Wed, 20 Sep 2017 04:25:25 +0000 (13:25 +0900)]
tpl_wayland_egl_thread: Modified naming and usage of twe_del_source.
- To extend the usability of the 'twe_wl_disp_del_source'
that was created to delete the disp_source, I changed naming
to 'twe_del_source' and changed the associated functions to be common.
Change-Id: I6b7eddbfaf1434ec189e75211932258419945200
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Wed, 20 Sep 2017 00:25:11 +0000 (09:25 +0900)]
tpl_wayland_egl_thread: Implemented destroy callback of wl_egl_window.
- If wl_egl_window is destroyed before the surface is destroyed,
wl_egl_window and wl_surface are not accessed by any routine.
Change-Id: I15dd945fbe50007eda7bd6783f687f705fb97852
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Mon, 18 Sep 2017 06:19:11 +0000 (15:19 +0900)]
wayland-egl: Added wl_egl_window destroy callback.
libwayland-egl: package version up to 1.2.3
Change-Id: Ifd7713dee2ed521b22b4a2601e623b717882f57f
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Wed, 13 Sep 2017 09:04:08 +0000 (18:04 +0900)]
Package version up to 1.4.8
Change-Id: I38d174f445385738037984afd6762dde05d4ecb9
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Wed, 13 Sep 2017 07:59:59 +0000 (16:59 +0900)]
tpl_wl_egl_thread: Modified to ensure thread safety between enqueue and destroy.
Change-Id: I36af6adb3956112093ddcd2304f31b5ab26705f3
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Wed, 13 Sep 2017 05:29:25 +0000 (14:29 +0900)]
tpl_wayland_egl_thread: Modified twe_surface_destroy to unref the tbm_surface in in_user_buffers.
- When eglSurfaceDestroy is called on the main thread,
the function twe_surface_del() waits for the worker thread
to finish rendering the buffer no longer
Change-Id: Ieb3921eedd990b8621122cb1db9d42cb5933c2c1
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
Hoyub Lee [Fri, 8 Sep 2017 04:06:23 +0000 (13:06 +0900)]
build: Add missing flag on ENABLE_TTRACE
Change-Id: If08ede24479cfed51d22144a3dccc8c01c70df0f
Signed-off-by: Hoyub Lee <hoyub.lee@samsung.com>
joonbum.ko [Mon, 4 Sep 2017 08:57:01 +0000 (17:57 +0900)]
Package version up to 1.4.7
Change-Id: I5e80a40c17f6b3b0cde035242c0837e8eb9c6621
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Mon, 4 Sep 2017 07:47:48 +0000 (16:47 +0900)]
tpl_wayland_egl_thread: Fixed ref count bug in gsources.
- g_source_new() must match g_source_unref(),
g_source_attach() must match g_source_destroy().
Change-Id: I5bfe99de2bed6abfbff9f0a61ff20eeb33533048
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Mon, 4 Sep 2017 07:44:17 +0000 (16:44 +0900)]
tpl_wayland_egl_thread: Modified the destroy process of disp_source.
- Changed the last unref of gsource to be executed in the main thread.
Change-Id: Ifbcfe438f2aed8f82662eb675576d5dc3792e674
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Fri, 1 Sep 2017 02:06:18 +0000 (11:06 +0900)]
tpl_wayland_egl_thread: Added object lock/unlock at the time of in_use_buffer list finalizing.
Change-Id: I9e6d3ae6fea8df6caa4fc2ffba7d7ce348408d2c
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Fri, 1 Sep 2017 01:13:10 +0000 (10:13 +0900)]
tpl_wayland_egl_thread: Added exception checking.
- Added an exception checking to prevent to access destroyed gsource.
Change-Id: I7ba78f28c03d836f27132d9f1e16095d4313ca41
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Thu, 31 Aug 2017 01:15:18 +0000 (10:15 +0900)]
tpl_wayland_egl_thread: Format of tpl_surface is used instead of ARGB8888
Reference commit log below
#
48e698ce0dbff338b6cb3db8733838e6e0ff44be
tpl_wayland_egl: Format of tpl_surface is now used instead of ARGB8888
Because there was no real use case using format other than ARGB8888,
the format value in __tpl_wayland_egl_surface_init() was fixed as ARGB8888.
However, there were cases using other formats on CTS.
Therefore, the format of tpl_surface is going to be used.
#Change-Id: I427d1a989267b9ec0fbe03f5bb67b02ba985a039
#Signed-off-by: Hoyub Lee <hoyub.lee@samsung.com>
Change-Id: Id2249dd8efb12afff44248ae98f8a0db28aed1af
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Mon, 4 Sep 2017 09:17:04 +0000 (18:17 +0900)]
tpl_wl_egl_thread: Added some exception checking.
Change-Id: I8c4ef999cbd0c8a537cfa2a6cf2f07d877a004ab
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
Hoyub Lee [Fri, 11 Aug 2017 07:10:02 +0000 (16:10 +0900)]
Apply autotools on build system
Applying autotools on build system provides following benefits:
- Many open source projects are using autotools, so with autotools
applied, open source developers can easily understand our project's
build system.
- Autotools provides many powerful features like powerful
cross-compilation, diverse and useful command options for build,
configure many parts automatically, and so on.
- Human errors on writing Makefile can be reduced.
Change-Id: I62a6129fa4a9a0fb6ab48509ef163ea7fc0369b9
Signed-off-by: Hoyub Lee <hoyub.lee@samsung.com>
Signed-off-by: SooChan Lim <sc1.lim@samsung.com>
joonbum.ko [Tue, 22 Aug 2017 02:57:57 +0000 (11:57 +0900)]
Package version up to 1.4.6
Change-Id: I707c4be1cdcc680063f4fe73a109c92868d1d6f1
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Tue, 22 Aug 2017 02:50:07 +0000 (11:50 +0900)]
tpl_wayland_egl_thread: Modified the procedure of finalizing disp_source.
- Added twe_wl_disp_del_source, an event gsource to delete twe_wl_disp_source.
- When delete twe_wl_disp_source, calling _twe_thread_wl_disp_del_trigger()
wakes up twe_wl_disp_del_source and removes twe_wl_disp_source in the thread.
Change-Id: I6a9ab462e8ab464663ee60db1548d822c50d7f00
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
Hoyub Lee [Fri, 18 Aug 2017 08:04:53 +0000 (17:04 +0900)]
Change build option spacing for consistency
Change-Id: I538e69f3c79a03e679d0102e445c141cee177d13
Signed-off-by: Hoyub Lee <hoyub.lee@samsung.com>
joonbum.ko [Fri, 18 Aug 2017 01:50:46 +0000 (10:50 +0900)]
Package version up to 1.4.5
Change-Id: I90e1e34df853156515ad07e8298acbd2d1e71d8e
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Fri, 18 Aug 2017 01:46:56 +0000 (10:46 +0900)]
tpl_wayland_egl_thread: Fixed an error related to prepared flag.
- The code that set prepared to TRUE was wrong.
- Fixed an issue where wl_display_cancel_read() could be called multiple times,
even if wl_display_prepare_read_queue was only called once due to the prepared flag.
Change-Id: Ibdbe92ed3bbe00ffac6570fac5f76cf8f243d706
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Mon, 14 Aug 2017 06:16:59 +0000 (15:16 +0900)]
Package version up to 1.4.4
Change-Id: I093a6e829cc4c1afdaf75c7123aaceb9ec41216c
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Mon, 14 Aug 2017 06:12:23 +0000 (15:12 +0900)]
tpl_wayland_egl_thread: Added a prepared flag to match prepare and read/cancel pairs.
- Some problem occurs when gsource calls several prepare functions in one loop sequence.
- prepared flag can prevent that problem.
Change-Id: Idf715b43af37fab527b996c8c52d62f1b28367ee
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Thu, 10 Aug 2017 07:47:14 +0000 (16:47 +0900)]
Package version up to 1.4.3
Change-Id: I4d2f50d9fc1241744f2c8575218b423b069e160d
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Thu, 10 Aug 2017 07:31:24 +0000 (16:31 +0900)]
tpl_wayland_egl_thread: Added window rotate callback for prerotation.
- Before this patch, there was no way to update the tpl_surface->rotation value.
- So added an internal function to register rotation callback to know rotation value.
- Added New internal API :
tpl_result_t twe_surface_set_rotate_callback(twe_surface_h, void *data, tpl_surface_cb_func_t)
- By registering a callback with above internal API at the time of wayland_egl_surface init,
tpl_surface can know whether window is rotating or not and can update the value of rotation.
Change-Id: I32de635145d434e822423202e5311c5024cca16c
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Tue, 8 Aug 2017 10:30:13 +0000 (19:30 +0900)]
Package version up to 1.4.2
Change-Id: I1d448a8a1512d68f665aeca2937d3e278bdd547d
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
SooChan Lim [Wed, 9 Aug 2017 00:45:04 +0000 (09:45 +0900)]
tpl_wayland_egl: remove the unused variable
Change-Id: Id25e309dbcd59f67fa9edaa0b048577bf7a263ee
joonbum.ko [Wed, 2 Aug 2017 06:22:55 +0000 (15:22 +0900)]
tpl_wayland_egl: Fixed wrong procedure of cancel_dequeued_buffer
Change-Id: Iac13118c24e87546ffaef6116bf826285a0766e0
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Tue, 1 Aug 2017 06:04:47 +0000 (15:04 +0900)]
Package version up to 1.4.1
libwayland-egl : package version up to 1.2.2
Change-Id: Ic80a31bb98a5521578a57048818208ef335017dc
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Tue, 1 Aug 2017 05:55:35 +0000 (14:55 +0900)]
libtpl-egl.spec: libwayland-egl.so was included again.
- Since libwayland-egl.so is often directly dlopen,
it is included again temporarily.
Change-Id: Ica57a476e4d7d3a470c591a7424928b69f129e42
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
Hoyub Lee [Tue, 25 Jul 2017 10:58:15 +0000 (19:58 +0900)]
tpl_wayland_egl: Format of tpl_surface is now used instead of ARGB8888
Because there was no real use case using format other than ARGB8888,
the format value in __tpl_wayland_egl_surface_init() was fixed as ARGB8888.
However, there were cases using other formats on CTS.
Therefore, the format of tpl_surface is going to be used.
Change-Id: I427d1a989267b9ec0fbe03f5bb67b02ba985a039
Signed-off-by: Hoyub Lee <hoyub.lee@samsung.com>
joonbum.ko [Wed, 19 Jul 2017 10:44:35 +0000 (19:44 +0900)]
Package version up to 1.4.0
- DDK can use WAYLAND_EGL_THREAD backend to enable multi-thread
since this version 1.4.0
Change-Id: Ic8156273e06ae6c3600ebda631e9d42a9f2f04f5
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Wed, 19 Jul 2017 10:17:08 +0000 (19:17 +0900)]
libtpl-egl.spec: Excluded worker_test binary building.
Change-Id: I47724d2be1cbdabb503d24adcf0998aad388b5d4
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Tue, 4 Jul 2017 07:16:18 +0000 (16:16 +0900)]
tpl_wayland_egl_thread: Made tbm_surface_queue operate in GUARANTEE_CYCLE mode.
- In multi-threaded architectures, tbm_surface_queue must fully guarantee
the life cycle of tbm_surface so that it does not cause problems in queue_reset
or surface destory, so wayland_egl_thread must operate the queue in
GUARANTEE_CYCLE mode.
- In order to avoid problems with surface source deletion, surf_source must
remove the canceled buffer from the in_use_buffers list.
- [libtbm]
commit : surface_queue: added queue cancel acquire/dequeue
I0857b16141894eaf6f06a3b1584e971ac380a513
commit : tbm_surface_queue: added tbm_surface_queue_mode
if user set queue mode to GUARANTEE_CYCLE, user must do enqueue/acquire/release
or cancel_dequeue for tbm_surface which is dequeued before
tbm_surface_queue is reset
Ia26ae79ca376ad69d9714500bd4dfb48ae61da79
Change-Id: Idc5b256efad8167f010dd817e1228c776b970dfb
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Wed, 19 Jul 2017 08:38:01 +0000 (17:38 +0900)]
tpl_display: Added a new frontend API that returns appropriate backend type.
- New API :
tpl_backend_type_t tpl_display_get_backend_type(tpl_handle_t native_dpy)
- The native_dpy, which can be supported by tpl,
this function will return the corresponding backend type.
- It is preferable to explicitly pass the returned backend type
to tpl_display_create.
Change-Id: I987335e6e30c774b73d6bb79ff8c65fd05141baf
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Wed, 19 Jul 2017 07:49:43 +0000 (16:49 +0900)]
tpl_wayland_egl_thread: Fixed a issue of passing destroyed memory address.
This commit can fix the SVACE issues below.
[SVACE][WGID][264489] PASSED_TO_PROC_AFTER_FREE.EX
Change-Id: I5b0ed5cf369990f6fe6809be375d47d79e7c2dcc
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Wed, 19 Jul 2017 07:43:50 +0000 (16:43 +0900)]
tpl_wayland_egl_thread: Fixed a bug code that set transform value in buf_info.
Change-Id: I0e2f5201db361f198a8498068d0caf132bb38480
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Wed, 19 Jul 2017 07:28:50 +0000 (16:28 +0900)]
tpl_wayland_egl_thread: Fixed potential memory leak problem.
Change-Id: I277770bcc41ef6bbffcd8be705f09a944dec97bd
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Wed, 19 Jul 2017 07:18:09 +0000 (16:18 +0900)]
tpl_wayland_egl_thread: Added NULL checking when creating thread and thread context.
This commit can fix the SVACE issues below.
[SVACE][WGID][259615] DEREF_OF_NULL.RET.ALLOC
[SVACE][WGID][264745] DEREF_OF_NULL.RET.ALLOC
Change-Id: Ida8202a811e34ebddb3557abd43daa3610336179
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Wed, 19 Jul 2017 06:11:12 +0000 (15:11 +0900)]
Package version up to 1.3.1
Change-Id: I47d7908822e5118f7ae47cbbcde32ff0703edde6
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Thu, 6 Jul 2017 11:08:35 +0000 (20:08 +0900)]
tpl_wayland_egl: Removed duplicated logs.
Change-Id: I7a2abb66fa20a5060c7add7b8150eda2b562c9c9
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Thu, 6 Jul 2017 10:43:41 +0000 (19:43 +0900)]
tpl: Modified the syntax to enable threads.
Change-Id: Ic08f11e71414711067c6e27fa70bdf31c38f4149
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Thu, 6 Jul 2017 10:46:34 +0000 (19:46 +0900)]
tpl_wayland_egl_thread: Fixed memory corruption bug related to thread context.
Change-Id: I0458b16cb80889e46029dcf929cd6aa27b3ffbc5
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Tue, 4 Jul 2017 05:28:00 +0000 (14:28 +0900)]
tpl_wl_egl_thread: Changed the procedure to dequeue buffer.
Change-Id: I5bdc7988e84dc25fb1cb479bfacc55f6d6f4b4fa
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Tue, 4 Jul 2017 03:20:46 +0000 (12:20 +0900)]
tpl_wl_egl_thread: Modified the policy of the queue reset flag to be thread-specific.
- When the queue is resized, change the reset flag to TPL_TRUE to reflect
the changed window size at the next frame.
- When queue_reset_callback is called, if is_activated is different from
its previous state change the reset flag to TPL_TRUE to get a new buffer
with the changed state(ACTIVATED/DEACTIVATED) at the next frame.
Change-Id: I9cd15205217456ff128beec78f5f0089852079d9
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Thu, 13 Jul 2017 10:43:46 +0000 (19:43 +0900)]
Removed the libdrm dependency from the all backends except X11.
Change-Id: I34a1cea44121ff9bcb14012337e2c5dbad961e60
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Wed, 12 Jul 2017 07:24:37 +0000 (16:24 +0900)]
libtpl-egl.spec: Modified the spec to build in all arches.
Change-Id: Id59bf919a88e73aca1f808d1221ea144c3e6b512
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
Sangjin Lee [Thu, 6 Jul 2017 01:24:08 +0000 (10:24 +0900)]
wayland-egl: add wayland-egl-tizen.h
Change-Id: Ib344bebf6060b4dd612442bbd14d42cad4794e0f
joonbum.ko [Wed, 5 Jul 2017 08:26:46 +0000 (17:26 +0900)]
tpl_wl_egl_thread: Changed default logs TPL_LOG_B to TPL_LOG_T.
Change-Id: I294619a6a88052552165c57c5363f42a5281b515
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Wed, 5 Jul 2017 08:21:06 +0000 (17:21 +0900)]
wayland-egl: Package version up to 1.2.1
Change-Id: I3e66cee2edab76c48a9a44a8daf32aef4b5a02e8
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Wed, 5 Jul 2017 08:20:08 +0000 (17:20 +0900)]
wayland-egl: Set the initial values when wl_egl_window created.
Change-Id: I4f6607eda7d4e0e97ce987f4f8a4986ddc443511
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Wed, 5 Jul 2017 08:04:51 +0000 (17:04 +0900)]
Clean up the spec file and change the versioning policy of shared object.
- If user install these packages after this commit,
symbolic links are created as shown below.
[Packages for Installation] - Exclude .so file
install dir = /usr/lib/
libtpl-egl.so.{TPL_VERSION_MAJOR} -> libtpl-egl.so.{TPL_VERSION}
libtpl-egl.so.{TPL_VERSION}
libwayland-egl.so.{WL_EGL_VERSION_MAJOR} -> libwayland-egl.so.{WL_EGL_VERSION}
libwayland-egl.so.{WL_EGL_VERSION}
[Devel Packages] - Include .so files
libtpl-egl.so -> libtpl-egl.so.{TPL_VERSION}
libwayland-egl.so -> libwayland-egl.so.{WL_EGL_VERSION}
Change-Id: I9200e542a91d21caf7f97a0b0289e78bb6da07d5
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
Hoyub Lee [Tue, 4 Jul 2017 09:03:12 +0000 (18:03 +0900)]
Change rpm package versioning policy
libtpl-egl
- RPM package version changes to (MAJOR).(MINOR).(PATCH)-(RELEASE)
libwayland-egl
- RPM package version is separately managed with libtpl-egl
Change-Id: I25ed5152d62d1181f8635de43f877c67c7733da6
Signed-off-by: Hoyub Lee <hoyub.lee@samsung.com>
Hoyub Lee [Fri, 30 Jun 2017 08:09:46 +0000 (17:09 +0900)]
Change version macro name of libwayland-egl for consistency
Change-Id: I148dfa2c459bc6e44c7e65424471f9e8baa139e0
Signed-off-by: Hoyub Lee <hoyub.lee@samsung.com>
Hoyub Lee [Fri, 30 Jun 2017 07:52:41 +0000 (16:52 +0900)]
Create version macros for libwayland-egl
Change-Id: I9f7963a8c0bb839206de4fac49d8455b6f6c16d8
Signed-off-by: Hoyub Lee <hoyub.lee@samsung.com>
joonbum.ko [Tue, 4 Jul 2017 07:27:47 +0000 (16:27 +0900)]
Package version up to 1.3.0
- There is a dependency using new API of wayland-tbm.
Change-Id: Ica8e1100dc26a5a4f2688509f91865212a0ad07f
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Mon, 26 Jun 2017 06:42:32 +0000 (15:42 +0900)]
tpl_wayland_egl: Implement related to window rotation
- Only wayland_tbm_client_set_buffer_transform is called for buffers
that need to be updated after window rotation occurs.
Change-Id: I2905fdf34536bd55eebdf943165ac364aa21d9d7
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Thu, 22 Jun 2017 08:00:16 +0000 (17:00 +0900)]
wayland_egl: Added an API to set window_transform.
- New API :
void wl_egl_set_window_transform(struct wl_egl_window *egl_window, int window_transform)
- libwayland-egl package version up to 1.2.0
Change-Id: If1e225d5bdc043f9f1acc3da1c8894caeee12136
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Mon, 19 Jun 2017 10:01:34 +0000 (19:01 +0900)]
Package version up to 1.2.0
Change-Id: I2e9f90dbb91549ce2b0fb73a2530ed3ecab98b61
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Mon, 19 Jun 2017 07:41:23 +0000 (16:41 +0900)]
tpl: Added a frontend API to cancel dequeued buffer.
- Previously, when dequeued buffer was canceled, ref counts were run to be destroyed
without tbm_surface_queue_release. However, for the normal operation of wayland_egl_thread,
DDK need to cancel the dequeued buffer before using it.
- In wayland_egl_thread structure, tbm_surface_queue_release should be called so that tbm_surface
can be completely destroyed.
- The newly added below API calls tbm_surface_queue_release directly to destroy unused tbm_surface.
tpl_surface_cancel_dequeued_buffer(tpl_surface_t *surface, tbm_surface_h tbm_surface)
- The type of tpl_surface must be window surface,
and tbm_surface must be a buffer in the state before rendering begins.
Change-Id: Ibf4950dc2846f1f6a01998ea39bae99bc8300b4f
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Wed, 14 Jun 2017 12:17:57 +0000 (21:17 +0900)]
integrated tpl_wayland_egl_thread feature.
- This feature is disabled defaultly.
- It can be enabled with set environment value 'TPL_WL_EGL_THREAD' to '1' when before running gl application.
- Also it can be enabled defaultly with set 'ENABLE_DEFAULT_WL_THREAD' to '1' when build this package.
- There is a new backend type for wayland_egl using thread.
TPL_BACKEND_WAYLAND_THREAD
- If enabled the thread feature, backend will be set to TPL_BACKEND_WAYLAND_THREAD and called every backend functions
in tpl_wl_egl_thread.c
If not enabled the thread feature, tpl's behavior is the same as before this commit.
Change-Id: Ib8bb0c7836ef07b53cbf306b0f5e2404d9c119ff
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Wed, 14 Jun 2017 11:03:49 +0000 (20:03 +0900)]
tpl_wayland_egl_thread: Implement free_flush protocol.
- Implement free_flush of tizen_surface_shm_flusher.
Just flush free_buffer when receive free_flush event from server.
If this protocol is active in server,
it can reduce quick_panel buffer 3 to 1 in idle time.
Change-Id: I69422c1b10f43ea6430c2c059eb330403a18824c
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Wed, 14 Jun 2017 08:31:43 +0000 (17:31 +0900)]
tpl_wayland_egl_thread: Fixed some build warning.
Change-Id: Ied55bdacdf5e0e910ae6b4806050c6b51c7a939e
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Wed, 14 Jun 2017 08:19:55 +0000 (17:19 +0900)]
tpl_wayland_egl_thread: Changed to acquire only if vblank_done state is TPL_TRUE.
- The function _twe_thread_wl_surface_acquire_and_commit can be called in both situations.
One is when acquirable event is received from the main thread,
and the other is when __cb_tdm_client_wait_vblank callback is called.
The reason for calling the acquire function in the two situations described
above is to make only one commit for one vblank.
Change-Id: I720ac9290a9338b6e681026ee35104a22da6aecc
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Mon, 12 Jun 2017 08:35:18 +0000 (17:35 +0900)]
tpl_wayland_egl_thread: Cleaned up the codes for creating/deleting/dipatching tdm_source.
- It has been modified to control tdm resources only within threads
to prevent wl_display errors due to thread differences.
tdm_source (gsource)
- tdm_source will be created when before loop running start.
tdm_client_vblank object
- vblank object of twe_surf_source will be created newly when surface commit.
If both tdm_source and vblank object failed to create,
surface commit will fall back to TPL_WAIT_VBLANK disabled mode.
Change-Id: I417b36e7f5e8f5964af267a0ecae83899b5a3c2d
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Thu, 25 May 2017 04:27:16 +0000 (13:27 +0900)]
tpl_wayland_egl_thread: Added APIs for thread safety during event processing.
- If a new event is handled in the worker_thread while processing
the dequeue process in the main thread, it can cause problems.
- Thread safety must be guaranteed in the part that uses
the same resource (tbm_surface_queue) between threads.
- Added APIs
twe_display_lock / twe_display_unlock
Change-Id: I3cd405147a196ced800faefec80e559b15693673
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Thu, 25 May 2017 01:20:17 +0000 (10:20 +0900)]
tpl_wayland_egl_thread: Changed the order of surface fini.
Change-Id: I191044552c521a435eaf83fa31fecc1615643efd
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Wed, 24 May 2017 06:49:53 +0000 (15:49 +0900)]
tpl_wayland_egl_thread: Fixed to do acquire_and_commit until there was no tbm_surface to be consumed.
- One or more tbm_surfaces that are not consumed can be in tbm_surface_queue
because event_fd has two writes but read may be processed only once.
Change-Id: Iae3fa749f411e1ce957317a1b1d9085948a22e55
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Wed, 24 May 2017 06:20:48 +0000 (15:20 +0900)]
tpl_wayland_egl_thread: Deleted unnecessary logs that were printed too often.
Change-Id: Ibbb51f8a3e4cad25a2096581bd7485e0006517b0
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Wed, 24 May 2017 05:27:12 +0000 (14:27 +0900)]
tpl_wayland_egl_thread: Modified the gsource to validate before the event is processed.
- In a short period of time, gsource can be destroyed.
- So added exception handling syntax to process event handling only when gsource is valid.
Change-Id: I719a7b988a73b44df846b2318b3e96544fb3dea5
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Wed, 24 May 2017 05:15:13 +0000 (14:15 +0900)]
tpl_wayland_egl_thread: Modified to do wl_display_read_events only if revent has G_IO_IN.
- revent can be G_IO_ERR, in which case do cancel_read and returning FALSE is more correct
than returning TRUE for dispatching.
Change-Id: I2ccb898a16115cad1f9996e399575a242686eb5d
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Wed, 24 May 2017 04:28:34 +0000 (13:28 +0900)]
tpl_wayland_egl_thread: Modified using Wayland API that does not fit in bound version.
- wl_surface_damage_buffer -> wl_surface_damage
- Since 'wl_surface_damage_buffer' is higher API, it is not nomarlly supported on the current platform.
- When wayland client need to use this API, I will add it with version checking syntax.
Change-Id: If5d426edc63fb481c637b17f5955949b1b31c1a1
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Mon, 22 May 2017 05:31:03 +0000 (14:31 +0900)]
tpl_wayland_egl_thread: Deleted an unused handle type.
Change-Id: Iabac36d4e22d371263052871b6633185f2d97a26
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Mon, 22 May 2017 05:24:34 +0000 (14:24 +0900)]
tpl_wayland_egl_thread: Added an API to check whether the buffer need to be committed.
- Added API : twe_surface_check_commit_needed(twe_surface_h, tbm_surface_h)
- This API helps to determine whether to commit the buffer which is render done in front-buffer mode.
Change-Id: I9d06c79073f76581a4d37f585ca03fc6e0d09b2b
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Thu, 18 May 2017 07:38:25 +0000 (16:38 +0900)]
tpl_wayland_egl_thread: Added an API to check if client is activated.
Change-Id: I6a667e30c937bec138de0c04eb6f0fc392f8a5ef
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Thu, 18 May 2017 07:14:18 +0000 (16:14 +0900)]
tpl_wayland_egl_thread: Added an API to force commit without enqueue.
- It need to commit without enqueue, like when client start frontbuffer rendering.
Change-Id: I8cfcccd2fcd948907c1fb2c39b97b4aa85f6b78a
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Fri, 19 May 2017 07:07:20 +0000 (16:07 +0900)]
tpl_wayland_egl_thread: Added an API to check whether native handle is wl_display.
- Added API
tpl_bool_t twe_check_native_handle_is_wl_display(tpl_handle_t)
Change-Id: Icf1a67368724ca98cec80bcc21d57af1debf22b7
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Fri, 19 May 2017 06:53:33 +0000 (15:53 +0900)]
tpl_wayland_egl_thread: Fixed output of wayland protocol error when processing wayland event.
Change-Id: I67105f6f0884a0335496ed30bacce621511442af
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Fri, 19 May 2017 05:26:18 +0000 (14:26 +0900)]
tpl_wayland_egl_thread: Added implementation for buffer_flush.
Change-Id: Ide710a0d90d42d772d39580a432623bec9c0b81f
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Fri, 19 May 2017 05:18:45 +0000 (14:18 +0900)]
worker_test: Added SRCS&HEADERS to use tizen_surface_shm_flusher.
Change-Id: Idb4d6ec1ca1b052265ba89672b76d0f4871d0fb2
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Fri, 12 May 2017 08:08:28 +0000 (17:08 +0900)]
tpl_wayland_egl_thread: Added a list of in_use_buffers to keep track of the buffers in use.
- When twe_surface_del is called, if the surface is deleted even though the DDK still has a buffer,
it can cause problems at commit time.
- Tracking the buffers in use can solve the problem by waiting for the surface to be deleted unitl it is finished.
Change-Id: If01bd98d409c5f94b956fcfc3ac20d26ca50df55
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Fri, 12 May 2017 07:49:13 +0000 (16:49 +0900)]
worker_thread: Deleted twe_surface_set_buffer.
Change-Id: I874bd23a837099c2b813fcfbbbf8121bf275a64a
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Fri, 12 May 2017 07:43:19 +0000 (16:43 +0900)]
tpl_wayland_egl_thread: Deleted API 'twe_surface_set_buffer'
- Registered tbm_surface_queue_trace_cb to know dequeued tbm_surface.
So twe_surface_set_buffer was removed because tbm_surface_queue_trace_cb replaces the
behavior of it and twe's user does not need to call it immediately after
tbm_surface_queue_dequeue.
Change-Id: Iadfcf6cbffba31ecdf006a5f346d0f197faccf7a
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>