Joonbum Ko [Mon, 9 Nov 2020 07:58:37 +0000 (16:58 +0900)]
Package version up to 1.7.14
Change-Id: Id03c74ca31661b1a08a1b3062ac956091240a319
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Mon, 9 Nov 2020 07:09:06 +0000 (16:09 +0900)]
Wait until all fences imported from outside are signaled.
Change-Id: I209b76c5badfb5c4881e8afd850e8b1db401d2a2
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Mon, 9 Nov 2020 07:07:56 +0000 (16:07 +0900)]
Trace the presentation feedback and destroy it properly.
Change-Id: I6d7656a20c47f9cd8047cec97610d28ec71b2902
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Fri, 25 Sep 2020 02:21:15 +0000 (11:21 +0900)]
Package version up to 1.7.13
Change-Id: I9e9085c36326507ef717a177df161ddefd6febac
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Fri, 25 Sep 2020 02:16:26 +0000 (11:16 +0900)]
Set initial latest_transform to 0.
- When the initial transform of wl_egl_window is passed to tpl_surface
without being 0, the transform value may not be notified to the server.
- Therefore, in tpl_surface, latest_transform must be set to 0.
Change-Id: I3f586f64ded24dd570837bcff5bb4f938f384865
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Fri, 11 Sep 2020 07:40:52 +0000 (16:40 +0900)]
Package version up to 1.7.12
Change-Id: If3b4764fb09fb25f073fe6f418c77c6d7a49f413
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Fri, 11 Sep 2020 07:23:59 +0000 (16:23 +0900)]
Replaced assert used in wl_egl_window callback functions.
Change-Id: I25f4aa5263d11656d2f40999a69f539f3c27c27c
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Fri, 11 Sep 2020 07:23:59 +0000 (16:23 +0900)]
set resize/destroy callback to null when wl_egl_window destroy.
Change-Id: Icba12cf793918944567466465ae04720c16d062b
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Thu, 3 Sep 2020 06:33:36 +0000 (15:33 +0900)]
wayland-egl-tizen: changed to use dlog to print logs.
Change-Id: Ia248ca9b2ca3c6877a5e0844efa357be7f39ecba
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Wed, 19 Aug 2020 10:46:51 +0000 (19:46 +0900)]
Package version up to 1.7.11
Change-Id: Iaf37706b20fb16539c3cb4511574f1f1e7dd18be
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Wed, 19 Aug 2020 10:41:16 +0000 (19:41 +0900)]
Fixed a bug related to render sync fd.
- Very occasionally, when twe_thread is pushed down by scheduling,
a sync_fd cannot be attached to twe_thread.
- In this case, queue_can_acquire and render_done_cnt are different
and the commit is delayed by one frame.
- This problem may cause can_dequeue_timeout
depending on the hwc situation.
- Even if queue_flush is performed after can_dequeue_timeout,
the commit latency cannot be restored until another interrupt occurs.
Change-Id: I32bc48d523e815a944cbfb935277adc1bcc2bf44
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Wed, 19 Aug 2020 06:37:35 +0000 (15:37 +0900)]
Fixed wrong exception checking.
Change-Id: I41ca475e80625b9ae6168cfd3d05b71bfe3af3ad
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Mon, 10 Aug 2020 08:05:50 +0000 (17:05 +0900)]
Package version up to 1.7.10
Change-Id: I24734562e410a34ad3679ba27ec30175e234a83c
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Thu, 6 Aug 2020 06:37:22 +0000 (15:37 +0900)]
Disabled the explicit fence sync defaultly.
- If you want to enable the explicit fence sync feature,
1. touch /opt/usr/tpl_env (only to do it once)
2. export TPL_EFS=1
3. run any gl app with command line.
Change-Id: I1618f6e6f8c2deac8e2226a013e63c7fac44b228
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Wed, 22 Jul 2020 10:43:54 +0000 (19:43 +0900)]
Allows to decide whether to use explicit fence sync as env.
Change-Id: I4631cc4e1a39e740ed7102863d19e9a76c1a6a75
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Mon, 20 Jul 2020 04:46:01 +0000 (13:46 +0900)]
Print sync_fence value when dequeue.
Change-Id: Id4d8080461ca082008eeab2b1a1e8befd92b056f
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Wed, 17 Jun 2020 04:48:10 +0000 (13:48 +0900)]
Fixed the name of async trace point.
Change-Id: Ic9af088f6010968cff41539c560e229ed91bd7be
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Fri, 5 Jun 2020 03:51:16 +0000 (12:51 +0900)]
Added acquire_fence_fd to buf_info.
Change-Id: Idc1d6357de97b54d30486ad7c53c6e9ce9f403f6
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Fri, 5 Jun 2020 03:46:35 +0000 (12:46 +0900)]
Fixed to do not wait sync_fence in tbm backend.
Change-Id: Ic316cc0843bccbdbed077e6c9b7f97cc8efaa355
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Wed, 3 Jun 2020 09:25:45 +0000 (18:25 +0900)]
Fixed to add release listener before wl_surface_commit.
Change-Id: Iffaac088a0699680bfeb7caefeca7873b71e6e0f
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Mon, 1 Jun 2020 11:11:29 +0000 (20:11 +0900)]
Added an internal API to get release fence from buf_info.
Change-Id: I56e536cea0f56368e8519d79082327fd8f052242
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Mon, 1 Jun 2020 09:55:36 +0000 (18:55 +0900)]
Implemented buffer release method with zwp_linux_buffer_release_v1
zwp_linux_buffer_release_v1
This object is instantiated in response to a
zwp_linux_surface_synchronization_v1.get_release request.
It provides an alternative to wl_buffer.release events, providing a
unique release from a single wl_surface.commit request. The release event
also supports explicit synchronization, providing a fence FD for the
client to synchronize against.
Exactly one event, either a fenced_release or an immediate_release, will
be emitted for the wl_surface.commit request. The compositor can choose
release by release which event it uses.
This event does not replace wl_buffer.release events; servers are still
required to send those events.
Once a buffer release object has delivered a 'fenced_release' or an
'immediate_release' event it is automatically destroyed.
Change-Id: I092fa619679d9d38bcedb7d2de324ddacceb5a2b
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Mon, 1 Jun 2020 06:56:32 +0000 (15:56 +0900)]
Added boolean use_explicit_sync to disp_source.
Change-Id: I723669463d542aebbc7ceb365dc4d0dedfd7fe29
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Wed, 8 Apr 2020 11:35:19 +0000 (20:35 +0900)]
[explicit_sync] Added missing pkg_modules to use wayland-extension
linux-explicit-synchronization-unstable-v1-client
Change-Id: I0f0661a15b40018576292c5db2081d08caeaacbe
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Fri, 10 Apr 2020 05:30:04 +0000 (14:30 +0900)]
Added debug log for checking the value of sync_fd.
Change-Id: Idd4654ef86bd9f699998749bb93d87992d943331
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Thu, 9 Apr 2020 07:19:17 +0000 (16:19 +0900)]
[explicit_sync] Implemented to set acquire fence to wl_surface.
- acquire_fence is set only when use_surface_sync is TPL_TRUE.
Otherwise, wait for sync_fd to be signaled in twe_thread.
Change-Id: Ib778b5fe81710fa136ca330539e59d2085263b95
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Thu, 9 Apr 2020 06:35:29 +0000 (15:35 +0900)]
[explicit_sync] Added zwp_linux_surface_synchroniation init/fini
- wayland-extension : zwp_linux_surface_synchronization_v1
- precondition : explicit_sync of disp_source should be bound.
- If surface_sync is successfully obtained,
the flag use_surface_sync of surf_source is TPL_TRUE.
Change-Id: I6a439c174412e08ac146428e041a5934be1986a1
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Wed, 8 Apr 2020 11:35:19 +0000 (20:35 +0900)]
[explicit_sync] Implemented initial steps and setup build dependency.
- wayland-extension : zwp_linux_explicit_synchronization_v1
This extension is classified unstable protocol.
Therefore, it can be modified later.
Change-Id: Ibe47c87fce63e85b6f2a04aca59f4332072f2d7b
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Mon, 20 Jul 2020 05:07:07 +0000 (14:07 +0900)]
Package version up to 1.7.9
Change-Id: Iff7e93a9e1bb9c255625a9f1134e7ed8e02c35ce
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Sun, 12 Jul 2020 05:07:23 +0000 (14:07 +0900)]
Implemented backend function to get size.
Change-Id: I530e24aafd386b6447e4e886f6d6c97bce7595a1
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Thu, 25 Jun 2020 11:24:13 +0000 (20:24 +0900)]
Fixed a bug occured by fence signaled before enqueue.
Changed g_source_attach from main thread to twe_thread.
- Fixed problem scenario
[MT] : main thread
[TWE] : twe thread
1. [MT] __tpl_wl_egl_surface_enqueue_buffer (with sync_fd)
2. [MT] twe_surface_set_sync_fd
3. [MT] g_source_attach start<- It takes too long time (abnormal)
[MT] : blocking wait at g_source_attach()
4. [TWE] fence wait source dispatch. but there is no acquirable buffer in tbm_queue.
5. [TWE] fence wait source finalize.
6. [MT] g_source_attach done.
7. [MT] tbm_surface_queue_enqueue. but it will be not commit.
8. [MT] call can_dequeue_timeout
-> The release event does not come because
the previous buffer was not wl_surface_commit.
9. [MT] 10s later, timeout and force flush occured.
Change-Id: I8e7b57c0f5b78caa333410ef75e5bd8ce50d7173
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Thu, 25 Jun 2020 06:41:25 +0000 (15:41 +0900)]
Added logging function to print status of buffer lists.
Change-Id: I876514cace0d708445c9109f984f521f9a5f6ce1
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Wed, 17 Jun 2020 04:56:09 +0000 (13:56 +0900)]
Package version up to 1.7.8
Change-Id: I566dad831a07e60cee55870081b183a1638895b4
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Wed, 17 Jun 2020 04:54:39 +0000 (13:54 +0900)]
Fixed missing close for open timeline fd.
Change-Id: Ib0f009a12fec57968ea5f220426cada2497a4c34
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Mon, 1 Jun 2020 10:22:52 +0000 (19:22 +0900)]
Moved wl_display_flush to be called immediately after wl_surface_commit.
Change-Id: I7ab8f9d99824d1a6548db4c82d619c35024b54cd
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Tue, 16 Jun 2020 03:55:40 +0000 (12:55 +0900)]
Fixed a bug related to commit sync.
Change-Id: Ie104256039adcf193cd845b3727643fb97eae1f5
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Mon, 15 Jun 2020 07:25:27 +0000 (16:25 +0900)]
Fixed a bug related to presentation sync timestamp.
Change-Id: I0fad572699eb008378b52f6abbd5c2edc3795e66
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Thu, 28 May 2020 04:29:30 +0000 (13:29 +0900)]
Package version up to 1.7.7
Change-Id: I059dad443fb17d301aaeb10aa870fb23be999c86
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Thu, 28 May 2020 03:52:09 +0000 (12:52 +0900)]
Enhanced the error logs.
Change-Id: I0ec3e186f1318a050c75fe1596b60803191f8100
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Wed, 27 May 2020 07:13:11 +0000 (16:13 +0900)]
Changed the default log output from LOGD to LOGI.
Change-Id: I26d2328a119dfe23523f279f9b72eab7ba9ea552
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Thu, 14 May 2020 10:07:14 +0000 (19:07 +0900)]
Fixed to unref tbm_surface even when enqueue failed.
Change-Id: I99a3e93833430a652cb653d8343a6dfd1a2d2342
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Wed, 6 May 2020 09:44:54 +0000 (18:44 +0900)]
Package version up to 1.7.6
Change-Id: I4ad491a190a0b18521a272d623738cd17cd0fa83
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Wed, 29 Apr 2020 06:04:23 +0000 (15:04 +0900)]
Moved tpl_getenv init to tpl_init
Change-Id: I825862911ca1fe4054908cc678d9e960aa5e75c7
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Mon, 27 Apr 2020 11:36:18 +0000 (20:36 +0900)]
Replaced all getenv() by tpl_getenv() to reduce unnecessary calls.
- In libtpl-egl, getenv() is using for debugging purposes only.
- In most situations, it was frequently called getenv()
which is not thread-safe, even though it is unnecessary.
- It is difficult to make getenv() completely disabled,
but replaced it with tpl_getenv() so that it can only be used
in debugging situations.
- tpl_getenv() returns the result of calling getenv()
only if '/opt/usr/tpl_env' file exists, otherwise NULL.
- example
1. $ export TPL_LOG_LEVEL=3
2. $ run gl app
-> libtpl-egl will not get the env TPL_LOG_LEVEL
3. $ touch /opt/usr/tpl_env
4. $ run gl app
-> TPL_LOG_LEVEL=3 will be accepted
Change-Id: I4d40e1beb2f4c34e17b7694f96db5d237cb33bfe
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Mon, 27 Apr 2020 10:07:02 +0000 (19:07 +0900)]
Added inline function tpl_getenv() to replace getenv.
Change-Id: I1018d6f7c11bba4aaaee3e29cc53dd1660f70593
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Mon, 27 Apr 2020 09:45:03 +0000 (18:45 +0900)]
Changed getenv() for TPL_WAIT_VBLANK to be called from main thread.
Change-Id: I9e5143492d35ed7e6c1722af3c0b7888ff918aa8
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Mon, 27 Apr 2020 07:29:50 +0000 (16:29 +0900)]
Fixed a bug that could cause deadlock.
Change-Id: Idb231c020b08e60aa3e2368562551a7e06cfd61b
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Fri, 24 Apr 2020 04:21:27 +0000 (13:21 +0900)]
Fixed to print fence fd passed by enqueue_buffer.
Change-Id: Iaceb87b819e8fbad1539e5abc94bb3d5d525b8a3
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Wed, 22 Apr 2020 07:43:42 +0000 (16:43 +0900)]
Fixed to unuse sync_fd when frontbuffer rendering.
Change-Id: Iad53c0071df08eb3cac63481eff4b7cde491fe3f
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Wed, 22 Apr 2020 03:31:52 +0000 (12:31 +0900)]
Fixed to be removed from g_main_loop when error occurs in wl_display.
- This is a minimal measure to ensure that abort does not occur
in twe_thread. but is not perfect.
- disp_source will be removed from main_loop,
but other problems may arise because it affects
the remaining surf_source.
Change-Id: I04f2be6888cab077c3997bbd1bd38d92eda6b842
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Tue, 21 Apr 2020 09:30:15 +0000 (18:30 +0900)]
gsource is automatically restored when a problem occurs in eventfd.
- Problems caused from other libraries that attempt to use the wrong fd
often affect the eventfd of surf_source or del_source.
- In such a case, in the past, assert checking was used to generate abort
and it was not good.
- So I made it possible to regenerate eventfd to minimize
the abort generated by libtpl-egl and overcome the problem situation.
Change-Id: I4cb23a022b40c48f864de402f3beabd2fec29a64
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Mon, 20 Apr 2020 07:52:07 +0000 (16:52 +0900)]
Excluded the case of abort due to eventfd problem.
- Remove poll fd(event_fd) of main loop, but keep gsource.
Change-Id: I3759d24672895b355e3541e7b8b6d2a2de7dab6d
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Mon, 20 Apr 2020 07:41:59 +0000 (16:41 +0900)]
Protected the access of surf_source's event_fd with surf_mutex.
Change-Id: Icd081e7adf27c047e64b3f6bfabb06c1b85e6906
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Mon, 20 Apr 2020 07:37:29 +0000 (16:37 +0900)]
Deleted unused function commit_without_enqueue.
Change-Id: I35f8b16c4acb98153277f3613e0c2e106f11465d
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Mon, 20 Apr 2020 05:57:42 +0000 (14:57 +0900)]
Deleted unnecessary checks for gsource is destroyed.
Change-Id: I03d527cfd0b1986a32f14e8b106e5f83bddefa16
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Fri, 17 Apr 2020 06:56:10 +0000 (15:56 +0900)]
Added an error type to tpl_result_t to indicate display error.
- new error type
TPL_ERROR_INVALID_CONNECTION /* Invalid display connection */
- When some error occurs in the wayland display,
it will be used to distinguish the error.
Change-Id: I9f0813d64d10b522dae1224a0bf699328d479f27
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Thu, 9 Apr 2020 09:13:15 +0000 (18:13 +0900)]
Changed to do not print error logs when last_error is already set.
Change-Id: Ib5b4ec852930a55089864eeaf28e7b095295bc50
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Thu, 9 Apr 2020 04:15:52 +0000 (13:15 +0900)]
Added missing destroy of bound presentation interface.
Change-Id: I61344fb95eba06ec5b3a281bf09a3756edc6e460
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Wed, 8 Apr 2020 06:38:56 +0000 (15:38 +0900)]
Package version up to 1.7.5
Change-Id: I2800f5fdebb3a2278344774599ba53f69a2b09f1
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Tue, 31 Mar 2020 09:11:10 +0000 (18:11 +0900)]
tpl_tbm: Added reset callback for tbm_queue.
Change-Id: Ic9c331d82525ad05fae9818970f60ed6853907d5
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Thu, 26 Mar 2020 09:08:15 +0000 (18:08 +0900)]
Make to operate normally even when tdm_source was unexpectedly destroyed.
Change-Id: If3a39100b1922a840a16b1860ff427c532883102
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Thu, 26 Mar 2020 07:06:05 +0000 (16:06 +0900)]
Renamed vblank callback function to be more clearly.
Change-Id: I9700162590997a584bf69413142928324fb2cf89
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Thu, 26 Mar 2020 06:57:29 +0000 (15:57 +0900)]
Fixed tdm_source to destroy when error occurs in tdm.
- If an error occurs in tdm_client_handle_events, it cannot be recovered.
When tdm_source is no longer available due to an unexpected situation,
twe_thread must remove it from the thread and destroy it.
- In that case, tdm_vblank can no longer be used for surfaces and display
that used the tdm_source.
Change-Id: I1e19e12847a03ef03e5ce7562a4e992952c4fdbb
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Wed, 25 Mar 2020 07:37:11 +0000 (16:37 +0900)]
Package version up to 1.7.4
Change-Id: I3f0c29f36603646865fba76d4f4f7e363fc53ced
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Wed, 25 Mar 2020 07:35:30 +0000 (16:35 +0900)]
Added fence_waiting_sources list to trace fence_wait_sources.
Change-Id: Ib70a80a94be9f507adea71e13957adca87e41f9e
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Tue, 24 Mar 2020 09:38:07 +0000 (18:38 +0900)]
Added some comments about the lists.
Change-Id: I9fb0f70281704a13237aee7c921908a997ab7140
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Thu, 19 Mar 2020 10:38:52 +0000 (19:38 +0900)]
Added ttrace point to trace fence waiting time.
Change-Id: I79764f225b785d12cbb43d90d9e46f38b9dc4744
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Thu, 19 Mar 2020 10:21:40 +0000 (19:21 +0900)]
Added render_done_cnt to check whether it is actually acquireable
- queue_acquire should be performed only when render_done_cnt
is greater than 0 when using sync_fence even in the case of
queue_can_acquire.
Change-Id: I3b11e32eecc22ffded539f6bb9215584c4584752
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Wed, 18 Mar 2020 09:01:00 +0000 (18:01 +0900)]
wayland_egl_thread: Implemented the function waiting sync_fence to render done.
- In the case of mesa, tbm_surface with guaranteed 'render done'
is not enqueued.
- To compensate for this, fence fd is delivered to the platform side
from mesa driver, but libtpl-egl did not have the function to use it.
- The added function ensures the following operation.
1. When __tpl_wl_egl_surface_enqueue_buffer is called,
if sync_fd (!=-1) is received.
2. This is the case when the buffer is not complete.
3. Create gsource to poll sync_fd in twe_thread.
4. Attach it to twe_thread. (poll starting)
5. If G_IO_IN occurs in sync_fd, it is known as render_done
and acquire_and_commit is performed. (twe_thread)
6. After completing just one role, the created source will be removed.
Change-Id: I16558f700df98afd372bbc83613a8633062953c0
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Wed, 18 Mar 2020 06:26:59 +0000 (15:26 +0900)]
tpl_wayland_egl_thread: Added struct twe_fence_wait_source to wait draw done fence.
Change-Id: I4a55e917c552af29a7005c3c07ef95ebe4200b65
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Wed, 18 Mar 2020 05:50:19 +0000 (14:50 +0900)]
tpl_wayland_egl_thread: Deleted unnecessary sub_thread for vk_display.
- vk_sub_thread has created to wait for the buffer to render done.
- The definition of how to wait for render done was lacking,
so it was temporarily operated.
- In the future, when we need to know the render done for the vulkan,
we will use the explicit fence fd feature.
Change-Id: Ic9284cbfbd90a0fdb35311c701d2a01749d77a47
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Fri, 20 Mar 2020 03:42:09 +0000 (12:42 +0900)]
wayland-egl-tizen: Package version up to 1.0.1
Change-Id: I35974fbbac80c3169ec5967988e01e93aa9e534d
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Fri, 20 Mar 2020 03:41:48 +0000 (12:41 +0900)]
Package version up to 1.7.3
Change-Id: Id157d776471c4280aa75fe9f10a8e581f0af72d9
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Mon, 9 Mar 2020 03:48:19 +0000 (12:48 +0900)]
tpl_wl_egl_thread: Fixed the reset flag management in reset callback.
Change-Id: Idf98816d628fe2dfecc05804345070ad7a53550f
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Fri, 20 Mar 2020 03:31:46 +0000 (12:31 +0900)]
tpl_tbm: Deleted unncessary codes related with vulkan/worker_thread
- vulkan's tbm backend is not available.
- Currently, tbm backend in libtpl-egl means offscreen render backend
for wayland-server compositor.
- It can be extended, but delete unnecessary code before that.
Change-Id: I69f52f623430ed0bb18da6af5d5424b5712df68b
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Fri, 20 Mar 2020 01:45:38 +0000 (10:45 +0900)]
Deleted the unused codes related with worker_thread.
- The worker_thread that was created for vulkan has been
replaced with twe_thread, so it is obsolete and has been
deprecated for a long time.
Change-Id: I0d1774b772c1c9b7820806fd5029952848dc2eb0
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Tue, 17 Mar 2020 08:00:21 +0000 (17:00 +0900)]
Package version up to 1.7.2
Change-Id: Ic9008c2a0752c62bd0c9a3c50033fb16971e0c20
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Thu, 12 Mar 2020 05:04:16 +0000 (14:04 +0900)]
wayland-egl-tizen: Changed API name render_sync_fd to commit_sync_fd.
- If the user wants to know the render done using EGLSyncKHR,
tpl_surface_dequeue_buffer, tpl_surface_enqueue_buffer and
wl_surface_commit occur at similar moments.
Therefore, it only tells when wl_surface_commit is done,
but does not guarantee render done.
- If EGLSyncKHR or dma_buf implicit fence is not used,
render done can be guaranteed.
Change-Id: I43d7bdd10a33d0b559ecd1d219261bbb5415b574
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Fri, 15 Nov 2019 06:14:47 +0000 (15:14 +0900)]
tpl_wayland_egl_thread: Implemented merge sync fence.
Change-Id: Ic5697fd0dbade852d9340b2c490d6247a12f46f1
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Thu, 14 Nov 2019 11:33:32 +0000 (20:33 +0900)]
wayland-egl-tizen: Added new API to merge sync fds.
New API
/**
* Get a new fence fd with fence1 and fence2 merged
*
* It returns a new fence fd waiting for both fences to be signaled.
* If user succeed in obtaining a new merged fence using this API,
* the two fence fds passed must be closed by the user.
*
* Multiple calls to this API allow to merge multiple fences.
*
* The two fence fds caller want to merge should be closed
* if caller is not going to use them after
* the new merged fd is created.
*
* @param egl_window handle to wl_egl_window
* @param sync_fd1 first fd to merge with second fd
* @param sync_fd2 seconde fd to merge with first fd
* @return merged fd on success, -1 on failure.
*/
int
wl_egl_window_tizen_merge_sync_fds(struct wl_egl_window *egl_window,
int sync_fd1, int sync_fd2);
Change-Id: I29ac248c836392b9e6acb141a30bb70dc5e9731f
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Thu, 14 Nov 2019 10:31:42 +0000 (19:31 +0900)]
tpl_wayland_egl_thread: Implemented the presentation sync feature.
- Create a timeline in surface and create a sync fence to pass to the user.
- The sync fence user get is signaled at the time of presentation done.
- This feature can help user sync by telling presentation done.
Users should handle this sync_fence properly using poll or select.
- This patch depends on wayland-extension and enlightenment.
Change-Id: I180ac6b23cc89ed3f7f0ebfc934893efa873dd6a
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Wed, 13 Nov 2019 02:40:23 +0000 (11:40 +0900)]
wayland-egl-tizen: Added new API to get presentation sync fd.
/**
* Create a sync fence fd that can tell presentation done.
*
* It returns fd which tells when the presentation is finished.
* This fd can wait asynchronously via poll or select.
*
* Important *
* This fence lets caller knows when wl_surface received PRESENT or DISCARD
* events from the server.
* In case of receiving DISCARD, it is not actually displayed on the display,
* but it releases the fence like PRESENT.
* In most cases that are not complicated, attached buffer will not be discarded.
*
* @param egl_window handle to wl_egl_window.
* @return sync fd on success, -1 on failure.
*/
int
wl_egl_window_tizen_create_presentation_sync_fd(struct wl_egl_window *egl_window)
Change-Id: I9c69dea4b78aba34db284b25dd47dd0544672bb4
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Tue, 12 Nov 2019 02:27:07 +0000 (11:27 +0900)]
tpl_wayland_egl_thread: Implemented the render sync feature.
- Create a timeline in surface units and create a sync fence to pass to the user.
- The sync fence user get is signaled at the time of tpl surface enqueue.
- This feature can help user sync by telling gpu render done,
but this feature alone does not guarantee sync.
Therefore, users should handle this sync_fence properly using poll or select.
Change-Id: If1c8a894fc8e103141b88d4479274f926753e52f
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Mon, 11 Nov 2019 04:32:48 +0000 (13:32 +0900)]
wayland-egl-tizen: Added new API to create render sync fd.
New API
wl_egl_window_tizen_get_render_sync_fd(struct wl_egl_window*)
/**
* Create a sync fence fd that can tell render done.
*
* If eglSwapBuffers works async, it returns fd which tells
* when the render job is finished.
* This fd can wait asynchronously via poll or select.
*
* Important *
* This requires the following premise:
* - After ddk calls libplpl-egl's tpl_surface_dequeue_buffer to get the buffer,
* and until it calls tpl_surface_enqueue_buffer,
* it is called the gpu rendering job interval.
* - Therefore, when using the dma_buf implicit fence,
* there is no guarantee that the rendering job is finished
* with the fence obtained through this API.
*
* The fence_fd obtained through this function is one-time available,
* can not be reused, so caller must close it when finished using it.
*
* @param egl_window handle to wl_egl_window.
* @return sync fd on success, -1 on failure.
*/
Change-Id: Ia19f88108cfe8d0e5e6477acbd83a2df173f5507
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Mon, 11 Nov 2019 02:38:59 +0000 (11:38 +0900)]
Rename the directory of wayland-egl to wayland-egl-tizen.
Change-Id: I4e2c8f4764a26ace10c26e0b55db9e6118d38a41
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Fri, 8 Nov 2019 04:30:39 +0000 (13:30 +0900)]
Package version up to 1.7.1
Change-Id: Ifa18b79ce7d511e8d294fe59ab0713e36123b111
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Changyeon Lee [Tue, 6 Aug 2019 10:53:07 +0000 (19:53 +0900)]
tpl_surface: set post_interval in tdm_client_vblank_wait
Change-Id: Ib936a993439f0bb3ab4c2d5049204305da013142
Changyeon Lee [Mon, 26 Aug 2019 03:51:30 +0000 (12:51 +0900)]
tpl_wayland_egl: check latest_transform in surface_commit
if rotated buffer is canceled dequeue,
wl_surface_set_buffer_transform isn't called
Change-Id: I19e9b363bf21a532ae05aa6bd0dd7644e88a72ab
Changyeon Lee [Mon, 26 Aug 2019 02:48:59 +0000 (11:48 +0900)]
tpl_wayland_egl: set need_to_release flag before commit
it is possible that get release event before need_to_rlease flag is set
Change-Id: I2010350256cbaa90eaa9f506acd1748f1bd247b6
SooChan Lim [Fri, 1 Nov 2019 04:25:26 +0000 (13:25 +0900)]
package version up to 1.7.0
tizen 6.0 starts here.
Change-Id: I607119bcfac5f8d3e1438bbe5e784475025ff319
Changyeon Lee [Tue, 13 Aug 2019 11:38:03 +0000 (20:38 +0900)]
Package version up to 1.6.8
Change-Id: Ib8adc572ea1692e36bb623f0bde4f685170b0e76
Joonbum Ko [Tue, 23 Jul 2019 08:15:46 +0000 (17:15 +0900)]
tbm: Added reset callback for validate checking
Change-Id: If17acc9a41c589dadb4d15800d799380334c9ee7
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
SooChan Lim [Fri, 26 Jul 2019 08:30:07 +0000 (17:30 +0900)]
Package version up to 1.6.7
Change-Id: Ifa0c8fbbddd64e071234116a86ed1e8fea4637b4
SooChan Lim [Fri, 26 Jul 2019 08:28:19 +0000 (17:28 +0900)]
add pc flies instead of the wayland-devel at BuildRequires
Change-Id: I06e58c92e9cb7fc4e7e4b540752f3b4493b73c4a
Joonbum Ko [Mon, 22 Jul 2019 04:21:41 +0000 (13:21 +0900)]
Package version up to 1.6.6
Change-Id: Ib1690eb50809450737712921399323d95e941177
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Mon, 22 Jul 2019 04:20:45 +0000 (13:20 +0900)]
tpl_wayland_egl_thread: Fixed referencing the wrong pointer.
Change-Id: I89705ebaa38092bb925b2d2599df3854c174b5f6
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Mon, 1 Jul 2019 08:03:56 +0000 (17:03 +0900)]
Package version up to 1.6.5
- This fix has dependencies on wayland
egl: Changed to flag EGL_PACKAGE to 1 to build wayland-egl.
- If there are no any problems, EGL_PACKAGE flag will be deprecated.
- This fix has dependencies on libtpl-egl-1.6.5
Change-Id: I318ed83009038c2b66e6db05247e21fec75b14f4
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Change-Id: I61bd6c540d48874bc61de4e80688465a66ec0e2e
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Mon, 1 Jul 2019 07:39:21 +0000 (16:39 +0900)]
[4/4]wayland-egl: Modified to not offer libwayland-egl in the future.
- libwayland-egl and its devel packages will be provided by wayland.
- Removed what existed to build wayland-egl.
- wayland-egl-priv.h is replaced to wayland-egl-backend.h which provided by wayland.
Change-Id: I29a669f06b4d3502b0da2472de61639a9873418c
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Mon, 1 Jul 2019 04:48:45 +0000 (13:48 +0900)]
[3/4]wayland-egl*: Implemented to use 'tizen_private' structure in wl_egl_window.
- The structure, tizen_private has tizen specific status, variables,
callback functions.
- Changed the usage of wl_egl_window->driver_private.
Before : wl_egl_window->driver_private = (void *)surface pointer of each wayland backend.
From now : wl_egl_window->driver_private = (void *)tizen_private
- Changed tizen specific callback functions to register in tizen_private.
ex) Before : wl_egl_window->set_window_serial_callback = callback
From now : tizen_private->set_window_serial_callback = callback
- This fix is to stop using wayland-egl-priv.h and
use wayland-egl-backend.h provided by wayland.
Change-Id: I34d80f00ec444ed49c527c9d15d94e11d7bbb6cd
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Mon, 1 Jul 2019 04:32:03 +0000 (13:32 +0900)]
[2/4]wayland-egl-tizen-priv: Added new header to support tizen specific feature.
Change-Id: Icb1e4afa47597cb2bc7c6e9467e5a6ec0e547dfb
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>