joonbum.ko [Fri, 21 Apr 2017 03:47:48 +0000 (12:47 +0900)]
tpl_wayland_egl_thread: Removed the duplicated define.
Change-Id: If382e6acbc7641a024e2ee092d7b077947b821f6
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
Sangjin Lee [Fri, 21 Apr 2017 03:54:43 +0000 (12:54 +0900)]
tpl_wayland_egl_thread: add testcase to gtest
Change-Id: I3ce36d710b73ae025916cb92809babc07d1919f0
joonbum.ko [Fri, 21 Apr 2017 00:45:56 +0000 (09:45 +0900)]
tpl_wayland_egl_thread: Added timeout source for test.
Change-Id: Ib2ee280a2a1ef97117d37c123450e79e64bae6df
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Thu, 20 Apr 2017 23:45:06 +0000 (08:45 +0900)]
tpl_wayland_egl_thread: Added basic debug logs for thread monitoring.
Change-Id: I6d4d450392d06e0c704d4140e6db831cde04e000
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Thu, 20 Apr 2017 08:14:40 +0000 (17:14 +0900)]
[FOR TEST] Added basic test codes for tpl_wayland_egl_thread.
- executable file name is 'glib_wl_test'
- bindir = /usr/bin/
- This is a temporary commit for test until integration.
Change-Id: Ie51a8ec1221cf890a4a6bafcd3edb5cb50f170bf
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Thu, 20 Apr 2017 23:48:33 +0000 (08:48 +0900)]
tpl_wayland_egl_thread: Removed tbm_surface_queue_h from input parameter.
Change-Id: Ie1bedbcf6cd0ebc6ce931637d270959407a8fdba
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
Sangjin Lee [Thu, 20 Apr 2017 23:38:10 +0000 (08:38 +0900)]
tpl_wayland_egl_thread: move the useless header define
Change-Id: Ia15c1018705915216171c7ef12238ebd4742ddfe
Sangjin Lee [Thu, 20 Apr 2017 05:30:37 +0000 (14:30 +0900)]
tpl_wayland_egl_thread: Add tdm to thread
Change-Id: I1aac64996989ee528f5ef23eb9c2a87dcd8d3e06
joonbum.ko [Wed, 19 Apr 2017 10:00:46 +0000 (19:00 +0900)]
tpl_wayland_egl_thread: Added init/deinit routine for wayland_tbm_client.
Change-Id: Ic1b5c3341bd36b26e86acd81f9d03345db9d85ff
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Thu, 20 Apr 2017 02:04:57 +0000 (11:04 +0900)]
tpl_wayland_egl_thread: Remove g_source from current poll when before g_source_destory.
Change-Id: I6534a363bfb4d3fdb7344bb6c4260453f3f9f137
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Wed, 19 Apr 2017 08:56:18 +0000 (17:56 +0900)]
tpl_wayland_egl_thread: Fixed a deadlock issue in case of destroying display source.
Change-Id: Id622900535bc981952ef60b01328bd8e72bcdbd0
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Wed, 19 Apr 2017 07:11:23 +0000 (16:11 +0900)]
tpl_wayland_egl_thread: Added initial code for wl_surface.
Change-Id: If05fe5350a101af37db273f7eac88a4069dfe079
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
Sangjin Lee [Mon, 17 Apr 2017 10:15:16 +0000 (19:15 +0900)]
tpl_wayland_egl_thread: remove wl_event_queue from input parameter
Change-Id: Iece9723b18f9ca5339c956747c9ee1c8b757292a
joonbum.ko [Mon, 17 Apr 2017 04:55:30 +0000 (13:55 +0900)]
tpl_wayland_egl_thread: Separated header file for some APIs & structures.
Change-Id: I6787f7ae615732b31f8b24193f9b1a4ef5992f5f
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
Sangjin Lee [Mon, 17 Apr 2017 07:04:02 +0000 (16:04 +0900)]
tpl_wayland: add destory function for wl_display
When this api was called, twe will be remove the event source from thread.
Change-Id: Iadc162afaeea0b0ce6d083bbb8687a9181c4f191
Sangjin Lee [Mon, 17 Apr 2017 05:47:11 +0000 (14:47 +0900)]
wayland_egl: fix handle to the source of wayland
Change-Id: I7c15966a2874d6fc7b3b3e88bad6a6a79ac41062
Sangjin Lee [Fri, 14 Apr 2017 07:45:25 +0000 (16:45 +0900)]
tpl_wayland: Add initial code for thread
we need to make thread for wayland event, in current,
the wayland events are just consumed at render the frame.
So wayland event or the fds are increase during
background state. For solve this issue,
we should make event loop in other thread.
Change-Id: I8f78ec035677ccc627f6fc638bb64057a9dca71a
joonbum.ko [Wed, 21 Jun 2017 07:03:48 +0000 (16:03 +0900)]
tpl_surface: Fixed a bug in error situation.
- It need to resolve SVACE issue.
Change-Id: Ib5b071fa1c6a252d0bd80ce891a02b23adb5862b
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Fri, 16 Jun 2017 05:00:16 +0000 (14:00 +0900)]
tpl_wayland_egl: Fixed errors in managing the transform value.
- package version up to 1.1.1
Change-Id: I93b2cb8fd7c2b0f0957ee4e45a9a1c744b4cc75f
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Thu, 15 Jun 2017 09:01:16 +0000 (18:01 +0900)]
package version up to 1.1.0
Change-Id: I748a032a7fc41501c0ac43294c083d252f78cbeb
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Thu, 15 Jun 2017 08:53:28 +0000 (17:53 +0900)]
tpl_wayland_egl: Deleted unused listener to resolve build warning.
Change-Id: I10a524f2a1a452a31c3089f68dfc36ebbf04ff4c
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Tue, 11 Apr 2017 07:07:37 +0000 (16:07 +0900)]
wayland_egl: Added new APIs related with wl_surface_set_buffer_transform.
- If wayland_egl provides the following function, the client can set
the correct transform value, and tpl_wayland_egl can pass the transform value
to the server at the appropriate time (befor wl_surface_attach).
- New wayland_egl API:
void
wl_egl_window_set_buffer_transform(struct wl_egl_window *egl_window,
int wl_output_transform)
- egl_window cannot be NULL.
- wl_output_transform is a value of WL_OUTPUT_TRANSFORM enum.
(See wayland.xml)
Change-Id: Ibf4d1b8eee90ee75f519a6ad6bb680299d780d26
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
Sangjin Lee [Fri, 9 Jun 2017 07:22:13 +0000 (16:22 +0900)]
tpl_wayland_egl: change version of shm_flusher
Change-Id: Id0d73a50953a8d2c07430ddf18386dec91e9e636
Sangjin Lee [Tue, 6 Jun 2017 22:59:01 +0000 (07:59 +0900)]
tpl_wayland_egl: 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: I165af89f6030b651f4417e260e1dcb6115acaa44
joonbum.ko [Mon, 22 May 2017 07:40:09 +0000 (16:40 +0900)]
tpl_wayland_egl: Registered a callback function to set frontbuffer mode.
Change-Id: I03267086c07b258b6453dd9fe1fcd42bcbf503cc
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Mon, 22 May 2017 07:36:18 +0000 (16:36 +0900)]
wayland-egl: Added an API to set frontbuffer mode.
Change-Id: Id8f52c83ae4a110ce00c9c1271babcfaf242f9bd
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Wed, 17 May 2017 06:25:58 +0000 (15:25 +0900)]
tpl: Add missed mutex lock / unlock on __tpl_runtime_fini()
If race condition occures on __tpl_hashlist_destroy() of __tpl_runtime_fini(),
then __tpl_hashlist_destroy() can raise double free.
This patch fixes it.
Change-Id: Ib438e7e9b3a69d330fbda05d8090d76a80a19222
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Tue, 16 May 2017 11:04:17 +0000 (20:04 +0900)]
tpl_wayland_egl: Added async trace points to track frontbuffer.
Change-Id: I61f9a665ffaf492ecd5b465f7f2786f764572f1c
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Tue, 16 May 2017 09:51:59 +0000 (18:51 +0900)]
wayland_egl: Fixed build warning.
Change-Id: I21132792d3606114dc3cb96192a9703d7836d8e1
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Tue, 16 May 2017 09:17:54 +0000 (18:17 +0900)]
tpl_wayland_egl: Fixed case of non-pixed buffer in frontbuffer mode.
Change-Id: Ie5b6a7bc29bca359aa01092d4b9c86c79d8b0713
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Mon, 15 May 2017 09:58:44 +0000 (18:58 +0900)]
tpl_surface, tpl_wayland_egl: Refactored the procedue related with frontbuffer mode.
- There was a problem with HWC in the existing procedure related with frontbuffer_mode.
The existing procedure was difficult to use eglFrontBufferSetSEC because the client did not know
exactly when to use the frontbuffer.
- Solved this problem through wayland_tbm_client API.
- platform/core/uifw/wayland-tbm
commit_id :
0de11f336d666d7b8cc171deeb404ec3b287cde8
commit_message : client: added wayland_tbm_client_queue_check_activate
- See comments of the codes related with frontbuffer_mode for details.
Change-Id: I5d024284d65ae65277fe67a4cd000a78f592665f
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Mon, 10 Apr 2017 04:21:52 +0000 (13:21 +0900)]
wayland-egl: Changed an ERR_LOG to normal log when wl_egl_window already has been rotated.
Change-Id: I10f8fe00be29cdfb24c0c3a6962091d87dbca4c6
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Thu, 2 Mar 2017 06:29:14 +0000 (15:29 +0900)]
wayland-egl: Prerotation need not to do window resize.
Change-Id: I1b12350e01862317358f7ac29a1274cab6812ae8
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Thu, 16 Mar 2017 00:13:32 +0000 (09:13 +0900)]
tpl_wayland_egl: Added geometry information of the client window to tpl_wayland_egl_buffer_t.
- Store the native window information when the wayland client do dequeue buffer in tpl_wayland_egl_buffer_t.
- By using the information remaining in the tpl_wayland_egl_buffer_t which rendering job end, do commit to server.
- This change will be able to inform accurate information of client window to server.
Change-Id: I4a7c4646cfc8ab3f39c8755f7c1193b33992a1ed
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Tue, 14 Mar 2017 08:15:29 +0000 (17:15 +0900)]
tpl_gbm, tpl_tbm: Revised exception checking syntax of the dequeue error situation.
- This patch will be able to resolve SVACE issue about below error situation.
1. tbm_surface_queue_dequeue return (tbm_surface == NULL)
2. tbm_surface_queue_can_dequeue return 0, because of internal error.
3. cannot enter the if syntax and cannot call tbm_surface_queue_dequeue.
4. tbm_surface is still NULL but try to call tbm_surface_internal_ref. <- error case.
Change-Id: I4dbdb51bf3682a1acadde4d7c07d899de6fe01cd
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Mon, 20 Feb 2017 07:54:17 +0000 (16:54 +0900)]
tpl_wayland_egl: Set event queue by using new API of wayland-tbm.
- Use new API to set event_queue in order to do roundtrip in wl_tbm.
- platform/core/uifw/wayland-tbm
commit_id :
21c96897bbcde143eff825e2d59fe820e99e5e16
commit_message : client: added function wayland_tbm_client_set_event_queue
Change-Id: Idcd7d24912fd8fe655ecdf2d834e8cc10a92a3d0
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Fri, 17 Feb 2017 08:43:28 +0000 (17:43 +0900)]
tpl_gbm: Register reset callback of gbm's tbm_surface_queue
- Server(E20) will be able to reset buffer_age of their buffers.
- In order to work well with partial updates, server need to reset the buffer_age
at the time of ACTIVE and DEACTIVE switching.
Change-Id: I79ff9702fe7d0d14fb8a8d1204b87db1e1318736
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
SooChan Lim [Fri, 14 Apr 2017 01:39:41 +0000 (10:39 +0900)]
add BSD-3-Clause License to COPYING for gtest
The license of the gtest is BSD-3-Cluase.
Change-Id: If2e16415464ae155ac06aa5b7dddf0be4a1697ef
Hoyub Lee [Tue, 4 Apr 2017 05:47:10 +0000 (14:47 +0900)]
tpl_tbm: Fix uninitialized local variable problem
Change-Id: Ie8594d2d59c2e7c1094dbc742d074659f1082c41
Signed-off-by: Hoyub Lee <hoyub.lee@samsung.com>
Gwan-gyeong Mun [Thu, 23 Mar 2017 05:44:12 +0000 (22:44 -0700)]
Merge "Use %license macro to copy license file" into tizen
Hoyub Lee [Thu, 23 Mar 2017 02:28:08 +0000 (11:28 +0900)]
Use %license macro to copy license file
This patch applies %license macro to libtpl-egl, libwayland-egl.
For tpl-test which use googletest, %license macro is not applied, but
the path where license be copied is changed to Tizen licenses folder.
Change-Id: I048158c1cdc9ce59f0ca86e91ff61a721652ff2c
Signed-off-by: Hoyub Lee <hoyub.lee@samsung.com>
joonbum.ko [Wed, 15 Feb 2017 08:31:50 +0000 (17:31 +0900)]
tpl_wayland_egl: subdivided the reason of failure of tbm_suface_queue_enqueue.
- When tbm_surface_queue_enqueue failed although tbm_surface was valid,
client is going to do wl_surface_commit forcibly to assure the lastest frame.
- In enlightenment(E20) of TIZEN platform, depending on some situation(Activate, Deactivate),
the compositor may or may not display the last forcibly commited buffer in this way.
In this situation, the compositor's display policy may vary from server to server.
- libtbm
tbm_surface_queue: Added some enum value for checking detail errors.
0a43ad4cfa6b57b2f33d8fe2f06eb89db8841f58
Change-Id: I2434341d093792112b1b89eefe3d140c5b6a840d
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Wed, 14 Dec 2016 04:05:15 +0000 (13:05 +0900)]
tpl_tbm: Add logs for default info.
Change-Id: I06ad809fcab02205627fedb7122b7a5dac06ee2b
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
Hoyub Lee [Fri, 16 Dec 2016 01:39:30 +0000 (10:39 +0900)]
tc: Reorganize test cases based on libtpl-egl APIs
Reorganize test cases based on the name of libtpl-egl APIs to cover
all flows of libtpl-egl APIs. Followings are changed in this patch:
- Test cases are organized and renamed with DEFAULT and EXTRA cases.
- Most of test cases are renamed with the function name of libtpl-egl APIs,
and test name will represent its working flow.
example>
TEST CASE | TEST
------------------------------------------
DEFAULT_tpl_display_get | success
DEFAULT_tpl_display_get | failure_null
Change-Id: I86f6e16c75ceeba29b46356ab7d296b281acb934
Signed-off-by: Hoyub Lee <hoyub.lee@samsung.com>
Hoyub Lee [Wed, 1 Feb 2017 09:29:50 +0000 (18:29 +0900)]
tc: Change build process not to use spec file
Change the build process as follows:
- Removes tpl-test.spec which was used for building tpl-test which could leads
buggy behaviour in binary build process.
- Instead, all build processes are done with libtpl-egl.spec and tc/Makefile.
------------------------------------
(Changed) tpl-test build instruction
------------------------------------
- Build libtpl-egl:
$ gbs build -A armv7l
- Build libtpl-egl with tpl-test:
Change the value of 'ENABLE_TPL_TEST' from 0 to 1 in libtpl-egl.spec.
Then, build with [--include-all] flag like below.
$ gbs build -A armv7l --include-all
Change-Id: I987556c04192009b2143ebcad513a460f13e9ad0
Signed-off-by: Hoyub Lee <hoyub.lee@samsung.com>
Hoyub Lee [Mon, 27 Feb 2017 07:09:56 +0000 (16:09 +0900)]
tc: Fix bug on tpl_test_parse_arguments()
Change-Id: Iab6a48c4b6be05eb53befede02b67893f595b0bd
Signed-off-by: Hoyub Lee <hoyub.lee@samsung.com>
Hoyub Lee [Fri, 2 Dec 2016 04:14:40 +0000 (13:14 +0900)]
tc: Update change of API: tpl_surface_create_swapchain()
Change-Id: Id4b790d028b9260853e211a7f08c1619706480b9
Signed-off-by: Hoyub Lee <hoyub.lee@samsung.com>
Hoyub Lee [Mon, 31 Oct 2016 06:14:41 +0000 (15:14 +0900)]
tc: Release tpl-test-0.3.0
Release tpl-test-0.3.0 which can tests libtpl-egl APIs.
Brief Instructions
------------------
* tpl-test can be built as follows:
$ gbs build -A armv7l --spec=tpl-test.spec
* Tests are done automatically right after rpm package installation.
* Manual tests can be done by running following command:
$ /opt/usr/tpl-test/tpl-test
For more information, please see README and tpl-test.docx.
Change-Id: I20db83c1c5f72eb5e0ba378b0b7f330ddf427069
Signed-off-by: Hoyub Lee <hoyub.lee@samsung.com>
Hoyub Lee [Mon, 31 Oct 2016 12:52:14 +0000 (21:52 +0900)]
tc: Add document with drm locked.
Add tpl-test.docx which explains overview of libtpl-egl TC module.
DRM on this document will be unlocked later.
Change-Id: I0a1675341654d2a81c3874859d3a8ee7e7fca7ac
Signed-off-by: Hoyub Lee <hoyub.lee@samsung.com>
Hoyub Lee [Mon, 31 Oct 2016 12:48:50 +0000 (21:48 +0900)]
tc: Add test cases for testing libtpl-egl
Change-Id: I2ddab75f5ffd0b0e6ccf64f087f07bc1fcdeef1e
Signed-off-by: Hoyub Lee <hoyub.lee@samsung.com>
Hoyub Lee [Fri, 28 Oct 2016 07:16:42 +0000 (16:16 +0900)]
tc: Create base class for testing with sample test case
Create base class for testing. This class contains TPL related
variables, and is made to support TPL supported backends.
Change-Id: I8a4e1cadac470d0d1a5b043a95423e5703d92823
Signed-off-by: Hoyub Lee <hoyub.lee@samsung.com>
Hoyub Lee [Fri, 28 Oct 2016 07:13:30 +0000 (16:13 +0900)]
tc: Add Google C++ Test Framework(gtest) Library
libtpl-egl test module uses gtest as test framework.
Change-Id: Iea066acb27206f60df81ed713942414b5e284c0d
Signed-off-by: Hoyub Lee <hoyub.lee@samsung.com>
Gwan-gyeong Mun [Tue, 24 Jan 2017 07:37:33 +0000 (23:37 -0800)]
Merge "tc: Cleanup previous not working TC" into tizen
Hoyub Lee [Fri, 28 Oct 2016 07:11:54 +0000 (16:11 +0900)]
tc: Cleanup previous not working TC
Change-Id: I9c26ebad61ce2ecfb4219e69e5af282d91260f8a
Signed-off-by: Hoyub Lee <hoyub.lee@samsung.com>
Mun, Gwan-gyeong [Thu, 19 Jan 2017 08:24:02 +0000 (17:24 +0900)]
tpl: Add TPL_BACKEND_TBM_VULKAN_WSI enum value to tpl_backend_type_t
tpl_tbm: enable worker_thread for tbm vulkan wsi backend.
TPL_BACKEND_TBM_VULKAN_WSI enum value is used for tbm vulkan wsi backend.
tpl_tbm backend implementation distinguish as tbm egl and tbm wsi backend.
worker_thread feature is only enabled on tbm wsi backend.
Change-Id: Ifd45fb69be0801f6411f9a8195d8304537f0b8e5
Signed-off-by: Mun, Gwan-gyeong <kk.moon@samsung.com>
Mun, Gwan-gyeong [Wed, 18 Jan 2017 07:56:03 +0000 (16:56 +0900)]
tpl_tbm: Disable worker_thread for tbm backend.
Current implementation of tbm worker_thread only works on vulkan tbm backend.
For now, we disable this feature for stabilization of egl tbm backend.
Change-Id: I2d419c5706720754b3d2bd6b682c31c9e30e009d
Signed-off-by: Mun, Gwan-gyeong <kk.moon@samsung.com>
Mun, Gwan-gyeong [Fri, 13 Jan 2017 05:38:12 +0000 (14:38 +0900)]
wayland-egl: Refactoring and fixing peephole on wl_egl_window_resize() and wl_egl_window_set_rotation()
When the wl_egl_window_resize() / wl_egl_window_set_rotation is continuously
called over twice previous implementation did not work properly on resizing of
buffer. This patch fixes these problems.
Change-Id: Idb6e1b2a38073b0bef215ef29964eccdcac9336e
Signed-off-by: Mun, Gwan-gyeong <kk.moon@samsung.com>
Mun, Gwan-gyeong [Wed, 11 Jan 2017 10:34:20 +0000 (19:34 +0900)]
tpl_tbm: Remove missued pthread_mutex_init() for draw_waiting_mutex
Add missed __tpl_tbm_set_tbm_buffer_to_tbm_surface() for tpl_tbm_buffer
Change-Id: If705df4277b16533ec120edda027c1cdb787eeef
Signed-off-by: Mun, Gwan-gyeong <kk.moon@samsung.com>
Mun, Gwan-gyeong [Fri, 6 Jan 2017 06:20:22 +0000 (15:20 +0900)]
wayland-egl: Fixed incorrect resize on prerotation
When the wl_egl_window_resize() is called, wl_egl_window_set_rotation() does
not work properly on resizing of buffer.
This patch selectivly apply for resizing of buffer when the wl_egl_window_resize()
is called.
Change-Id: Ie291b06a6d5cb60f07a56d26dbb96ce53740097b
Signed-off-by: Mun, Gwan-gyeong <kk.moon@samsung.com>
Mun, Gwan-gyeong [Fri, 30 Dec 2016 00:47:55 +0000 (09:47 +0900)]
tpl_wayland_egl: When wl_display_dispatch_queue() fails, print infomation of error in detail
on __tpl_wayland_egl_surface_wait_dequeuable()
When the wl_display_dispatch_queue() fails on __tpl_wayland_egl_surface_wait_dequeuable(),
it generally prints errno and errno_str.
If errno is EPROTO, it prints error interface name and error enumeration code.
Change-Id: I774774294a396164a9b9c66492c9cb79f18257cc
Signed-off-by: Mun, Gwan-gyeong <kk.moon@samsung.com>
YoungJun Cho [Wed, 21 Dec 2016 06:19:07 +0000 (15:19 +0900)]
tpl_wayland_egl: clean up __tpl_wayland_egl_surface_init()
This patch cleans up __tpl_wayland_egl_surface_init().
There are som omitted error routines.
Change-Id: I781a89b1f685d2586bbd03eebf028d4c4b8fba6e
Signed-off-by: YoungJun Cho <yj44.cho@samsung.com>
Gwan-gyeong Mun [Wed, 11 Jan 2017 09:54:42 +0000 (01:54 -0800)]
Merge "tpl_tbm: clean up __tpl_tbm_surface_fini()" into tizen
YoungJun Cho [Tue, 13 Dec 2016 08:09:56 +0000 (17:09 +0900)]
tpl_wayland_egl: clean up __cb_client_window_resize_callback()
This patch cleans up __cb_client_window_resize_callback().
It seems to be better to call tbm_surface_queue_get_width/height APIs once.
Change-Id: Ib5668f472c8fffdeca020317b265cb491538e45c
Signed-off-by: YoungJun Cho <yj44.cho@samsung.com>
YoungJun Cho [Tue, 13 Dec 2016 08:11:41 +0000 (17:11 +0900)]
wayland-egl: clean up wl_egl_window_create()
This patch cleans up wl_egl_window_create().
Some callbacks are also initialized.
Change-Id: I3361d02299287af0313ed96371ea61c8984fb964
Signed-off-by: YoungJun Cho <yj44.cho@samsung.com>
Gwan-gyeong Mun [Wed, 11 Jan 2017 09:27:14 +0000 (01:27 -0800)]
Merge "tpl_tbm: implement worker thread interface" into tizen
Gwan-gyeong Mun [Wed, 11 Jan 2017 09:03:19 +0000 (01:03 -0800)]
Merge "tpl_worker_thread: added new interface draw_wait_buffer_get" into tizen
Gwan-gyeong Mun [Wed, 11 Jan 2017 09:00:02 +0000 (01:00 -0800)]
Merge "tpl_tbm: added vulkan support funcs" into tizen
YoungJun Cho [Fri, 2 Dec 2016 05:17:08 +0000 (14:17 +0900)]
tpl_display: modify return value of tpl_display_create() when it is already existed
This patch modifies return value of tpl_display_create() when it is already existed.
Change-Id: Icd9a73b5cf03d284fd20f42edeebf86eebc80799
Signed-off-by: YoungJun Cho <yj44.cho@samsung.com>
deasung.kim [Wed, 7 Dec 2016 03:06:03 +0000 (12:06 +0900)]
tpl_wayland_vk_wsi: apply wayland-vulkan protocol
get from server supproted present mode
send client's present mode to server
if client's present mode supported by server
send buffer after draw done (not handle present mode in client)
Change-Id: Icd4ab09dfdc84e6e98cf8e7c09ab3a2f502b4583
YoungJun Cho [Wed, 21 Dec 2016 05:02:34 +0000 (14:02 +0900)]
tpl_tbm: clean up __tpl_tbm_surface_fini()
This patch cleans up __tpl_tbm_surface_fini().
For surface->type is TPL_SURFACE_TYPE_WINDOW, the added destroy callback should
be removed.
Change-Id: Ied7564b611bdddd1c606347190244d28f4cd1bac
Signed-off-by: YoungJun Cho <yj44.cho@samsung.com>
deasung.kim [Mon, 12 Dec 2016 05:45:33 +0000 (14:45 +0900)]
tpl_tbm: implement worker thread interface
tpl_enqueue_with_sync() -> wait sync in worker thread
draw done -> insert vblank queue or tbm_surface_queue_enqueue()
Change-Id: I09922f02bbccaa87c8630594e7f979f66e65c197
deasung.kim [Mon, 12 Dec 2016 05:43:30 +0000 (14:43 +0900)]
tpl_worker_thread: added new interface draw_wait_buffer_get
if draw_wait_buffer_get is not NULL
worker call that function to get draw wait buffer
this patch for tpl_tbm
Change-Id: I52d366615576bc5e1f0fbd6ab34c56a201de6c58
deasung.kim [Mon, 12 Dec 2016 04:42:31 +0000 (13:42 +0900)]
tpl_tbm: added vulkan support funcs
__tpl_tbm_display_query_window_supported_buffer_count : return min 0, max 0 (no limits)
__tpl_tbm_display_query_window_supported_present_modes : return MAILBOX/IMMEDIATE (FIFO after apply worker)
__tpl_tbm_surface_create_swapchain : just set present mode
__tpl_tbm_surface_get_swapchain_buffers : same tpl_wayland_vk_wsi
Change-Id: I99f3d3192cb835698a3534a8cc1a8ca851740b4b
deasung.kim [Wed, 7 Dec 2016 03:04:33 +0000 (12:04 +0900)]
wayland-vulkan: added wayland-vulkan protocol
it need to server side present mode
Change-Id: Ia12b36260c6651b4cf34c5ea222557a00b7ef2de
Mun, Gwan-gyeong [Wed, 9 Nov 2016 08:36:40 +0000 (17:36 +0900)]
tpl: Add tpl_surface_get_rotation() / tpl_surface_set_rotation_capability() apis
tpl_wayland_egl: implement getting of tpl_surface angle.
implement getting of tpl_surface's capabilities
wayland-egl: Add wl_egl_window_set_rotation() / wl_egl_window_get_capabilities()
- tpl_surface_get_rotation() api used for getting the current rotation-angle of the given TPL surface.
tpl_surface's angle can be in 0, 90, 180, 270.
- wl_egl_window_set_rotation api used fo setting the current egl_window's angle.
- wl_egl_window_get_capabilities api used for getting capabilities of egl_window.
Change-Id: If051e890c040aff40097f88d26276b3b0b2bf4fd
Signed-off-by: Mun, Gwan-gyeong <kk.moon@samsung.com>
Joonbum Ko [Wed, 30 Nov 2016 12:36:10 +0000 (04:36 -0800)]
Merge "tpl_worker_thread: drop checking of fence_result on __tpl_worker_thread_loop()" into tizen
Mun, Gwan-gyeong [Wed, 30 Nov 2016 12:21:04 +0000 (21:21 +0900)]
tpl_worker_thread: drop checking of fence_result on __tpl_worker_thread_loop()
fence_result is always 1 in the switch case statement of fence_result == 1
so we should drop checking of fence_result on __tpl_worker_thread_loop()
Change-Id: Iae6db812889dcb0adaeb202d90711f7c1089d889
joonbum.ko [Wed, 30 Nov 2016 12:18:26 +0000 (21:18 +0900)]
tpl_tbm: Delete TPL_ASSERT checking to __tpl_tbm_display_get_window_info.
- Unused parameter(tpl_display) change TPL_ASSERT to TPL_IGNORE.
- TPL_ASSERT(window) doesn't the necessity because there are NULL checking for window and log printing.
Change-Id: Ie3412ca8a33e59436caee8c3546781f949b672e0
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
Mun, Gwan-gyeong [Wed, 30 Nov 2016 10:52:56 +0000 (19:52 +0900)]
tpl_wayland_egl: Add missing error-checking to __tpl_wayland_egl_display_buffer_flusher_init
When the wl_display_get_registry() fails on __tpl_wayland_egl_display_buffer_flusher_init(),
this patch makes to return and deinitialize allocated resource.
Change-Id: I773089d55f7555d269e183f3c129e2171c0243eb
Signed-off-by: Mun, Gwan-gyeong <kk.moon@samsung.com>
Gwan-gyeong Mun [Tue, 29 Nov 2016 06:30:34 +0000 (22:30 -0800)]
Merge "tpl_wayland_egl: For the hide effect, client should not attach 'NULL' when surface destroy." into tizen
deasung.kim [Tue, 25 Oct 2016 06:31:01 +0000 (15:31 +0900)]
worker_thread: added epoll_wait continue condition
If errno is EINTR goto epoll_wait
Change-Id: If937e95a08b0abc7a27e7cb75a087e5b1d361934
deasung.kim [Tue, 25 Oct 2016 09:46:48 +0000 (18:46 +0900)]
tpl_worker_thread: rollback change the timing of calling of epoll_ctl_add() on "next draw wait buffer".
it has sig abort with vulkan wayland wsi test
Change-Id: I90cf2dfbe488e797ff62da2c34d53bc04df640d0
deasung.kim [Tue, 25 Oct 2016 06:46:46 +0000 (15:46 +0900)]
tpl_utils: fix double callback call in __tpl_list_remove_data
in __tpl_list_remove has call callback
Change-Id: Id1f8b5fbf3847449f4444cffd2bf07b740fcc00c
joonbum.ko [Mon, 28 Nov 2016 09:49:10 +0000 (18:49 +0900)]
tpl_wayland_egl: For the hide effect, client should not attach 'NULL' when surface destroy.
- If client attach 'NULL' to wl_surface when the surface destroy, server cannot show hide effect of that surface.
- This commit was requested by effect member. (minjjj.kim@samsung.com)
Change-Id: I349bbb5885dd86bd6c95d523d9fee6851c181c03
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
Hoyub Lee [Tue, 22 Nov 2016 11:37:24 +0000 (20:37 +0900)]
tpl_worker_thread: temporarily add 'unused' attribute to suppress warning
__tpl_worker_prepare_vblank() has been defined but not used.
Therefore, add 'unused' attribute to suppress warning to pass the
criteria of final release.
Change-Id: I12e8d495d5e7536e2ffcf85879d82b64d6581da5
Signed-off-by: Hoyub Lee <hoyub.lee@samsung.com>
Hoyub Lee [Tue, 22 Nov 2016 10:41:28 +0000 (19:41 +0900)]
tpl_wayland_egl: remove remaining unused surface frame callback in function
Since surface frame callback has been removed, remove remaining unused
surface frame callback in function.
Change-Id: I1efb08ba356e2fb93f354fa18842e8bd92f97bc1
Signed-off-by: Hoyub Lee <hoyub.lee@samsung.com>
Sangjin Lee [Tue, 15 Nov 2016 02:01:02 +0000 (11:01 +0900)]
tpl_wayland_egl: remove useless member of struct _tpl_wayland_egl_display
Change-Id: Ic50d054e18e8fd0856b3fbde504d0849ae389e9d
Sangjin Lee [Tue, 15 Nov 2016 01:57:52 +0000 (10:57 +0900)]
tpl_wayland_egl: remove wl_callback routine
wayland-egl just use tdm_vblank protocol for frame control.
so wl_buffer useless.
Change-Id: I009a12c197a55c56ba2f1cf9ee5418c25c9c57e6
Mun, Gwan-gyeong [Fri, 11 Nov 2016 07:33:46 +0000 (16:33 +0900)]
tpl_worker_thread: Add Missing break and Checking of fd of close()
Change-Id: I45ef4b82bbee90a1d20dc4d7c4d6e318ab62d0a0
joonbum.ko [Fri, 4 Nov 2016 02:46:40 +0000 (11:46 +0900)]
tpl_wayland_egl: Add log for checking flush callback.
Change-Id: Ic01ba0606c44ed5fa14715db43254ae848841123
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
joonbum.ko [Fri, 4 Nov 2016 02:38:30 +0000 (11:38 +0900)]
tpl_wayland_egl: Invert y to rect of the damaged region.
- Wayland Window System Coordinate uses top-left position as (0,0) ,but GL Window Surface Coordinate uses bottom-left position as (0,0).
So, tpl_wayland_egl should covert "GL Window Surface Coordinate" to "Wayland Window System Coordinate" before calling of wl_surface_damage().
Wayland Window System Coordinate
(0,0) (Width,0)
+---------+
| |
| |
| |
| |
| |
+---------+
(0,Height) (Width, Height)
GL Window Surface Coordinate
(0,Height) (Width,Height)
+---------+
| |
| |
| |
| |
| |
+---------+
(0,0) (Width, 0)
* reference:
https://www.khronos.org/registry/egl/extensions/EXT/EGL_EXT_buffer_age.txt
https://www.khronos.org/registry/egl/extensions/KHR/EGL_KHR_partial_update.txt
Change-Id: I2cc0eadda428028ac2a53983e9a18c13378ee777
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
YoungJun Cho [Tue, 25 Oct 2016 02:26:48 +0000 (11:26 +0900)]
tpl_wayland_egl: clean up code __tpl_wayland_egl_surface_init()
This patch cleans up code __tpl_wayland_egl_surface_init().
The original TPL_ASSERT()s are called after using those pointer already.
And the 'surface->backend.data' re-initialization code is missed.
Change-Id: I34b4d2ac65d57f555b097da77302febffe177a97
Signed-off-by: YoungJun Cho <yj44.cho@samsung.com>
Gwan-gyeong Mun [Thu, 27 Oct 2016 14:03:58 +0000 (07:03 -0700)]
Merge "tpl_surface: add missed lock in tpl_surface_set_reset_cb()" into tizen
Gwan-gyeong Mun [Thu, 27 Oct 2016 13:14:14 +0000 (06:14 -0700)]
Merge "tpl_wayland_egl: remove duplicated routine in __cb_tbm_surface_queue_reset_callback()" into tizen
Gwan-gyeong Mun [Thu, 27 Oct 2016 12:32:48 +0000 (05:32 -0700)]
Merge "tpl_wayland_egl: clean up codes __tpl_wayland_egl_buffer_set_reset_flag()" into tizen
YoungJun Cho [Mon, 24 Oct 2016 04:37:04 +0000 (13:37 +0900)]
tpl_wayland_egl: clean up codes __tpl_wayland_egl_display_buffer_flusher_init/fini()
This patch cleans up codes for __tpl_wayland_egl_display_buffer_flusher_init/fini().
These functions do not use tpl_display_t type display except getting wayland_egl_display.
So it seems better to use tpl_wayland_egl_display_t type wayland_egl_display directly.
Change-Id: I6d00e564a2d42164c010580cc01aedb59dd4e9c3
Signed-off-by: YoungJun Cho <yj44.cho@samsung.com>
Gwan-gyeong Mun [Thu, 27 Oct 2016 12:04:45 +0000 (05:04 -0700)]
Merge "tpl_wayland_egl: clean up codes for __tpl_wayland_egl_display_fini()" into tizen
YoungJun Cho [Mon, 24 Oct 2016 02:51:41 +0000 (11:51 +0900)]
tpl_wayland_egl: clean up codes for __tpl_wayland_egl_display_fini()
This patch cleans up codes for __tpl_wayland_egl_display_fini()..
It re-arranges fini functions with reverse order.
Change-Id: Ia5cda03e12e80b01e462b4b7a845bca7f44b0938
Signed-off-by: YoungJun Cho <yj44.cho@samsung.com>
YoungJun Cho [Fri, 21 Oct 2016 08:31:27 +0000 (17:31 +0900)]
tpl_wayland_egl: clean up code for __tpl_wayland_egl_display_init()
This patch cleans up code for __tpl_wayland_egl_display_init() error routine.
There is no case that the wayland_egl_display is NULL and
this patch re-arranges fini functions with reverse order.
Change-Id: I55f89400f612ea74fb7fa1bdf392aba324bda397
Signed-off-by: YoungJun Cho <yj44.cho@samsung.com>
YoungJun Cho [Mon, 24 Oct 2016 06:37:31 +0000 (15:37 +0900)]
tpl_surface: add missed lock in tpl_surface_set_reset_cb()
This patch adds missed lock in tpl_surface_set_reset_cb().
The 'surface' should be protected.
Change-Id: I195018753051d687a1c71762e00568fe4b1fe793
Signed-off-by: YoungJun Cho <yj44.cho@samsung.com>