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>
Joonbum Ko [Tue, 25 Jun 2019 08:56:04 +0000 (17:56 +0900)]
[1/4]wayland-egl-priv: Changed the name of 'private' to be same as uptream.
Change-Id: Ie9b44ab73354547e9867cb8d02cae855171fafaf
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Thu, 4 Jul 2019 01:27:43 +0000 (10:27 +0900)]
Package version up to 1.6.4
- Deleted the gbm dependency to resolve conflicts with Mesa.
Change-Id: Iac16688ab8ffef51e9f1dd08447f28f7190aef27
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Wed, 3 Jul 2019 07:51:31 +0000 (16:51 +0900)]
gbm: Removed the build dependency with libgbm.
- Removed the tpl_gbm backend from the build.
- but did not delete the source file yet.
Change-Id: Ie812a4f92a234b210955ddade0a958c6e51499be
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Wed, 3 Jul 2019 07:49:51 +0000 (16:49 +0900)]
gbm: Deleted the usage of gbm.
Change-Id: I50a7b5a44fc844020cd6ec2bee17f51178bc8a21
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Fri, 10 May 2019 04:11:09 +0000 (13:11 +0900)]
Package version up to 1.6.3
Change-Id: I2de6663a7447ea96e009e69eb4de9118be1f47ca
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Xiaowei Guan [Mon, 13 May 2019 14:04:46 +0000 (22:04 +0800)]
Sync wayland-egl code from wayland
Because mesa need use latest wayland-egl code, so sync latest
wayland-egl code from wayland.freedesktop.org.
Change-Id: I891d777e88540e64e509c8c991dc117750887bad
Joonbum Ko [Fri, 10 May 2019 04:10:11 +0000 (13:10 +0900)]
tpl_wayland_egl_thread: Modified del_source related thread_cond.
Change-Id: I2547293e6849c2fb6322d0351f437ed5580a6e73
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Thu, 9 May 2019 01:08:16 +0000 (10:08 +0900)]
tpl_tbm: Fixed build warning
Change-Id: I91f2a54b138ad03e42489e55b86ca2e470f1b54b
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Tue, 7 May 2019 02:05:43 +0000 (11:05 +0900)]
Package version up to 1.6.2
Change-Id: Ieb01036ab1ca55e4b44bf4c8f46266ed4f9e6f43
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Thu, 18 Apr 2019 07:39:43 +0000 (16:39 +0900)]
Added TRACE at the missed point.
Change-Id: I70f6bdd58f2962b4e9b9224eda2c83545b4b1ee3
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Mon, 15 Apr 2019 05:55:41 +0000 (14:55 +0900)]
tpl_wayland_egl_thread: Modified get_window_info internal function.
- Modified the internal function so that the first format can be maintained
to avoid problems when a_size is changed in a way different from the format
at the time of surface creation.
Change-Id: I8b65c5fb9a02f7b01286429735f703aad90adbfe
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Xuelian Bai [Mon, 15 Apr 2019 12:15:44 +0000 (20:15 +0800)]
Fix a typo
Change-Id: I3411edd175f7898dfe426bd398f29739cb39044a
Joonbum Ko [Mon, 8 Apr 2019 05:49:33 +0000 (14:49 +0900)]
Package version up to 1.6.1
- Minor version up to 6 to separate tizen_5.5 feature.
Change-Id: I84612ff2a48b23446502dcfbb47394ee0e23bb7b
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Mon, 1 Apr 2019 06:17:38 +0000 (15:17 +0900)]
tpl_wayland_egl: Added checking reset flag to fix frontbuffer mode
- If activate-> deactivate-> activate occurs between
tpl_surface_dequeue <-> tpl_surface_dequeue, a new dequeue is needed.
Change-Id: Ie76f8f0ccd3e7aac6b912f6e9bd4dd90eea9b121
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Xuelian Bai [Thu, 7 Mar 2019 11:57:49 +0000 (19:57 +0800)]
Call wayland_tbm_client_create_surface_queue_tiled and
set flags for tbm_surface_queue_sequence_create, if
GPU support tiled memory.
Change-Id: I64da5f16368589777b1d53444f00fa976c783202
Joonbum Ko [Fri, 15 Mar 2019 04:51:39 +0000 (13:51 +0900)]
Package version up to 1.5.30
Change-Id: Id278d98c0576d6c1d47b9ccd222357ad6d3cceac
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Mon, 18 Mar 2019 04:10:42 +0000 (13:10 +0900)]
tpl_wl_egl_thread: Fixed a bug that attempted an incorrect enqueue for the frontbuffer.
Change-Id: Ieb6149bfb0c2683ac663e30e6308266578fe71c9
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Fri, 15 Mar 2019 04:56:35 +0000 (13:56 +0900)]
tpl_wl_egl_thread: Changed can_dequeue time limit to 10000ms.
Change-Id: Ib0adf59ea6daed5027587b864f16e2d64e08c600
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Fri, 15 Mar 2019 04:48:57 +0000 (13:48 +0900)]
tpl_wayland_egl_thread:Added mutex lock to ensure thread safety
- Previously it was unnecessary, but the vulnerability was discovered
with the addition of can_dequeue_timeout and force_flush.
Change-Id: I860df25b6949a5927a8c67596613e521d0f740ec
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Thu, 31 Jan 2019 00:34:46 +0000 (09:34 +0900)]
Package version up to 1.5.29
Change-Id: I6d35a800f2ea18fdaef343845f18da83d9132f51
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Tue, 29 Jan 2019 06:59:17 +0000 (15:59 +0900)]
tpl_wl_egl_thread: Fixed a bug related to frontbuffer mode.
Change-Id: I160d5c6002fef08d9e66e6b030dba87ab7d1016f
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Zhaowei Yuan [Mon, 28 Jan 2019 07:56:44 +0000 (15:56 +0800)]
Fix a typo
Change-Id: Id6a01bb111ff0ea00aa38a4f10fafc96d1203651
Signed-off-by: Zhaowei Yuan <zhaowei.yuan@samsung.com>
Joonbum Ko [Mon, 14 Jan 2019 04:28:47 +0000 (13:28 +0900)]
Package version up to 1.5.28
Change-Id: I1c65cedf0c2c91ba411cd849b5525be8bf50744a
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Tue, 8 Jan 2019 07:20:10 +0000 (16:20 +0900)]
tpl_wayland_egl(_thread): Initialized the callbacks of wl_egl_window to NULL when destroy.
Change-Id: I288df9cb513fea71f615f66068b4109b4677fbb9
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Fri, 28 Dec 2018 09:06:47 +0000 (18:06 +0900)]
Package version up to 1.5.27
- API dependency ( libtbm-3.0.9 )
tbm_surface_queue_can_dequeue_wait_timeout()
Change-Id: I457145607f227118b5723653098f676d0b8a80e9
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Fri, 28 Dec 2018 07:37:25 +0000 (16:37 +0900)]
tpl_wl_egl_thread: Implemented force_flush to use can_dequeue_wait_timeout.
- This is a patch to solve the problem of blocking in tbm_surface_queue_can_dequeue()
if release_event is missing due to wayland socket or server logic problem.
- If TBM_SURFACE_QUEUE_ERROR_TIMEOUT occurs, new buffers are allocated
to escape blocking without waiting for buffer release events.
Change-Id: I883c65b3af3cfa66336f4301628614ede0b421a7
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Thu, 27 Dec 2018 07:59:18 +0000 (16:59 +0900)]
tpl_wayland_egl_thread: Added assert case to detect abnomalies.
- In the twe thread, the event fd being poll must be
woken up only with G_IO_IN.
- However, if some problem occurs in fd, it can wake up with
G_IO_ERR, G_IO_HUP, G_IO_NVAL, and try dispatch.
In this case, it is difficult to predict the situation after G_SOURCE_REMOVE,
so ASSERT should be used to find the time when the problem occurs.
- If there is no ASSERT () or remove, g_main_loop will repeatedly
wake up and try to dispatch the source, causing a problem of making CPU usage high.
Change-Id: I678119c192c7ab52acd11965e54dfa9a890fa8e7
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Fri, 30 Nov 2018 08:53:56 +0000 (17:53 +0900)]
Package version up to 1.5.26
Change-Id: I051e5b49704f92ec941076c81ca8d3cb91c9e24a
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Fri, 30 Nov 2018 08:47:27 +0000 (17:47 +0900)]
tpl_wayland_egl_thread: Changed the result of handle_events() to assert checking.
- If tdm_source is destroyed when the result of tdm_client_handle_events()
is not TDM_ERROR_NONE, tdm releated functions can not be recovered.
- Unless error is unexpected, tdm_client_handle_events() should always return ERROR_NONE,
otherwise it should be checked with assert to make debugging easier for unknown ERROR.
Change-Id: I6681fc396772e7e4d692145cc702257b42a57fde
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Fri, 30 Nov 2018 06:55:53 +0000 (15:55 +0900)]
tpl_wayland_egl_thread: Printed warning to notice tdm_error_timeout.
Change-Id: I94d8e5bd7424f921a68cc4a68f70373e580da838
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Fri, 30 Nov 2018 05:24:46 +0000 (14:24 +0900)]
tpl_wayland_egl_thread: Moved tdm_del_source to twe context.
Change-Id: I6309134e87bee43ad93a2035b296e9755e50f795
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Fri, 30 Nov 2018 04:52:23 +0000 (13:52 +0900)]
tpl_wayland_egl_thread: Fixed to send signal when tdm_source already detroyed.
- If there was an error when processing tdm_client_handle_events(),
tdm_source would have been destroyed before the process terminated.
- In this case, when Main thread terminate its twe_thread,
main thread will have to wait for the tdm_source destroy signal.
Change-Id: If2a8afb8dc801e5313e33298d9b320d4976e1480
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Wed, 21 Nov 2018 05:27:43 +0000 (14:27 +0900)]
Package version up to 1.5.24
Change-Id: Ic924e64d3e73844650e2e266aab9a9784ab7996e
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Tue, 20 Nov 2018 10:58:59 +0000 (19:58 +0900)]
tpl_wl_egl_thread: Added missed mutex_lock to prevent locking problem.
Change-Id: Ia52ca1ec8d4feb0e66fb378fe7c32ab1fac93e25
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Tue, 20 Nov 2018 06:52:52 +0000 (15:52 +0900)]
tpl_wl_vk_thread: Fixed bug related to buffer_count to prevent heap-overflow.
Change-Id: I5cbc98bd787711336b2386e7e007e16dbd9f3ee8
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Tue, 20 Nov 2018 05:45:23 +0000 (14:45 +0900)]
tpl_wayland_egl_thread: Added an null exception checking.
Change-Id: I7fd92cc21c22b9c6a4b2f751829542b1f9402b10
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Thu, 8 Nov 2018 10:12:06 +0000 (19:12 +0900)]
Package version up to 1.5.24
Change-Id: Ic9ea9c802d8e2b831e6207c52cae35b8f49b0a80
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Thu, 8 Nov 2018 05:39:38 +0000 (14:39 +0900)]
tpl_wayland_egl: Modified to set the acquired buffer to frontbuffer.
- Before this patch, tpl used dequeued buffer as frontbuffer.
But using dequeued buffer as frontbuffer can cause
sequential error of tbm_surface_queue with GUARANTEE_CYCLE_MODE
when the frontbuffer mode is terminated by an external factor.
Change-Id: I0fba84605de7f50a9968ca00c9e5c4cc54292d6d
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Wed, 7 Nov 2018 02:15:08 +0000 (11:15 +0900)]
Package version up to 1.5.23
Change-Id: Iefdebf43d8f7ba9cbfbe7cf975473edbddcbd4b1
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Wed, 31 Oct 2018 04:57:07 +0000 (13:57 +0900)]
tpl_wl_vk_thread: Fixed bug to prevent heap-buffer-overflow.
Change-Id: I991585fd99975196715d98a23b83603f4f20bf62
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Mon, 29 Oct 2018 10:40:21 +0000 (19:40 +0900)]
Package version up to 1.5.22
Change-Id: I307e28cb09f251722725ad426f8a1be783ad2f38
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Mon, 29 Oct 2018 10:39:33 +0000 (19:39 +0900)]
tpl_wayland_egl_thread: Added an exception checking to prevent blocking issue.
Change-Id: I3fce4d6db3e4f4a4dd7446b3946edc523c31e148
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Mon, 29 Oct 2018 10:31:00 +0000 (19:31 +0900)]
tpl_wayland_egl_thread: Enabled vblank pending list.
Change-Id: I706d67a9b1fb9859782c0cc6c1894bd8e73e830c
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Thu, 25 Oct 2018 23:59:52 +0000 (08:59 +0900)]
Package version up to 1.5.21
Change-Id: I9ba3e4b2404259f4be4d89cf8d9256959f3146ee
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Thu, 25 Oct 2018 23:53:44 +0000 (08:53 +0900)]
tpl_wl_egl_thread: Changed the wait flag to enable waiting in can_dequeue.
- Using the while loop with can_dequeue(wait=0) can occur high cpu usage problem.
Change-Id: Ic7645b336eeeb0088354838ae9b3c32259dbe9ec
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Fri, 21 Sep 2018 01:22:44 +0000 (10:22 +0900)]
Package version up to 1.5.20
Change-Id: I87c74ae438518db4464e764da6e8e08a8bb45a8f
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Fri, 21 Sep 2018 01:20:42 +0000 (10:20 +0900)]
tpl_wayland_egl: Modified to update the transform information of newly created buffers.
Change-Id: If2cca56e29f79b4ca3bf7cb6a755959d4e2c134d
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Wed, 19 Sep 2018 06:09:19 +0000 (15:09 +0900)]
Package version up to 1.5.19
Change-Id: I9478b93838f55a6df38aa8ea1b84a6b5767c925f
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Wed, 19 Sep 2018 05:45:48 +0000 (14:45 +0900)]
tpl_wayland_egl_thread: Modified wait_vblank handling of PRESENT_MODE_FIFO.
- PRESENT_MODE_FIFO has been modified to be dependent on
the behavior of the display server which can use HW vblank.
(Therefore, PRESENT_MODE_IMMEDIATE and PRESENT_MODE_FIFO_RELAXED
are not meaningful because client can not control HW vblank.)
- If the client sends a commit only once per one vblank,
the display server will perform pageflip on the HW vsync,
so the latency of PRESENT_MODE_FIFO can be reduced.
Change-Id: Ie3802e0a7b93515827e93c6712bb8cf3160640ce
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Fri, 14 Sep 2018 02:00:06 +0000 (11:00 +0900)]
Package version up to 1.5.18
Change-Id: I3d315a58c125dce96d061f245dbd93a8ad00fd72
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Thu, 13 Sep 2018 09:47:35 +0000 (18:47 +0900)]
tpl_vk_wsi_thread: Increased the ref_cnt of swapchain_buffers.
- vulkan-wsi-tizen creates vkImage(s) from the swapchain_buffers obtained
from the tpl_surface_get_swapchain_buffers() API.
- If the queue_reset occurs in the event thread, then swapchain_buffers that
have already been acquired by wsi will be destroyed, which can cause problems.
- Therefore, even if queue_reset occurs in event_thread,
TPL must increase ref_cnt of swapchain_buffers so that it is valid
until swapchain is destroyed.
Change-Id: Ibe41f212a64da89dbc30ea3f137f44dab187eb50
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Thu, 13 Sep 2018 06:40:59 +0000 (15:40 +0900)]
Package version up to 1.5.17
Change-Id: Ifca8d8586dfbf9f11c1e45bf9cbae52b25e3ef7f
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Thu, 13 Sep 2018 06:22:22 +0000 (15:22 +0900)]
wl_vk_wsi_thread: Fixed missing unlocking at destroy swapchain.
Change-Id: I174859edee77a17df09424f12bf15153391afd67
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Thu, 13 Sep 2018 02:07:13 +0000 (11:07 +0900)]
wayland-egl-tizen: Fixed a build warning.
Change-Id: Icab11757adc178357488559cc8dc4ef5a724276f
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Wed, 12 Sep 2018 04:15:07 +0000 (13:15 +0900)]
Package version up to 1.5.16
Change-Id: I686392475ada3218c2301f86ab0f715daed038ef
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Wed, 12 Sep 2018 04:13:31 +0000 (13:13 +0900)]
tpl_vk_wsi_thread: Enhanced thread safety for destroy swapchain.
- If wayland events handled in the event thread during destroy_swapchain,
unexpected problem can occur related wayland-tbm.
Change-Id: I0b80e2784f8a51590ad238ffb63dcc783db2f969
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Wed, 12 Sep 2018 03:03:56 +0000 (12:03 +0900)]
tpl_wayland_egl(_thread): Implemented a few lines releated to set_window_serial.
Change-Id: I01df22d47a6add48fcb97a2aa50b96bb87e269fd
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Wed, 12 Sep 2018 02:44:40 +0000 (11:44 +0900)]
wayland-egl: Added new API to set window serial.
- New wayland-egl-tizen API :
void
wl_egl_window_tizen_set_window_serial(struct wl_egl_window *egl_window,
unsigned int serial)
- If client use this new API, increaing wl_egl_window->serial will not
work at dequeue, and buffer's serial value will be set to the serial
that the client passed to this API.
'- The serial value client want to set must be incremented
whenever there is a change related to the window.
- This API should be called before the gl first draw call to ensure
the correct one frame in the desired serial.
Change-Id: I66266fc58867b331ab253ce5682df10d70176851
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Wed, 12 Sep 2018 00:17:31 +0000 (09:17 +0900)]
tpl_tbm: Modified to mutex_unlock during waiting for can_dequeue.
Change-Id: I4279bc245e391a66cb80285b12ab6efd92df9965
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Wed, 12 Sep 2018 00:12:54 +0000 (09:12 +0900)]
tpl_wayland_egl_thread: Enhanced thread safety for get_swapchain_buffers
- If wayland events handled in the event thread during get_swapchain_buffers,
unexpected problem can occur.
Change-Id: I6c6955fd7bb5f9b03372de0c396c1b6e157b92c0
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Thu, 6 Sep 2018 05:16:31 +0000 (14:16 +0900)]
tpl_wayland_egl_thread: Added log and trace mark
Change-Id: I32a175d2c6e36c1ad9c068337c32a0db9e201f40
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Thu, 6 Sep 2018 04:53:16 +0000 (13:53 +0900)]
tpl_wayland_egl_thread: Inserted the missing code to use sync fd.
Change-Id: I4a8434e3c040b4abc9749d027fbcc4691f96d040
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Joonbum Ko [Thu, 6 Sep 2018 04:27:07 +0000 (13:27 +0900)]
tpl_wayland_egl_thread: Modified some bugs in in_use_buffers list.
- For vulkan, get_buffers causes set_wl_buffer_info
to be called once for all buffers. Therefore, vulkan does not
have to push in_use_buffers when set_wl_buffer_info
is called for each buffer first.
Change-Id: Ic6fe472d675449906f3033f64807adc2821cec18
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Juyeon Lee [Fri, 17 Aug 2018 05:11:23 +0000 (14:11 +0900)]
wayland_egl: Added new APIs related with serial
- once dequeue, increase serial number and assign it both on
wl_egl_window and twe_wl_buffer_info.
- at the same time of wl_surface_commit, deliver the serial to wayland-tbm server
by using wayland_tbm_client_set_buffer_serial
- New wayland_egl API:
unsigned int wl_egl_window_tizen_get_window_serial(struct wl_egl_window *egl_window)
egl_window cannot be NULL
Change-Id: I8a607be8c44b2a37e8ba90cceae3e3962a128ec9
Harsh Aggarwal [Tue, 31 Jul 2018 11:03:53 +0000 (16:33 +0530)]
Add support for VK_KHR_incremental_present: pass wl_surface_damage rects to compositor
+ added based on wl_surface protocol version
+ for vulkan the coordindate system is top left (so no inverted y)
Change-Id: I00d47db5044ce00c855f898b55a1d15d443be9ae