platform/core/uifw/libtpl-egl.git
7 years agowayland_egl: Fixed build warning. 14/129414/2
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>
7 years agotpl_wayland_egl: Fixed case of non-pixed buffer in frontbuffer mode. 13/129413/1
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>
7 years agotpl_surface, tpl_wayland_egl: Refactored the procedue related with frontbuffer mode. 91/129191/3
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>
7 years agowayland-egl: Changed an ERR_LOG to normal log when wl_egl_window already has been... 15/125215/3
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>
7 years agowayland-egl: Prerotation need not to do window resize. 17/125217/2
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>
7 years agotpl_wayland_egl: Added geometry information of the client window to tpl_wayland_egl_b... 14/125214/1
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>
7 years agotpl_gbm, tpl_tbm: Revised exception checking syntax of the dequeue error situation. 04/123004/3
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>
7 years agotpl_wayland_egl: Set event queue by using new API of wayland-tbm. 03/123003/2
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>
7 years agotpl_gbm: Register reset callback of gbm's tbm_surface_queue 02/123002/2
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>
7 years agoadd BSD-3-Clause License to COPYING for gtest 17/125117/1 accepted/tizen/unified/20170414.163543 submit/tizen/20170414.020337 tizen_4.0.m1_release
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

7 years agotpl_tbm: Fix uninitialized local variable problem 68/122968/1 accepted/tizen/unified/20170406.053505 submit/tizen/20170404.080541
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>
7 years agoMerge "Use %license macro to copy license file" into tizen accepted/tizen_common accepted/tizen_ivi accepted/tizen_mobile accepted/tizen_tv accepted/tizen_wearable accepted/tizen/common/20170331.152606 accepted/tizen/ivi/20170329.034214 accepted/tizen/mobile/20170329.034045 accepted/tizen/tv/20170329.034124 accepted/tizen/unified/20170329.034238 accepted/tizen/wearable/20170329.034154 submit/tizen/20170328.072410
Gwan-gyeong Mun [Thu, 23 Mar 2017 05:44:12 +0000 (22:44 -0700)]
Merge "Use %license macro to copy license file" into tizen

7 years agoUse %license macro to copy license file 50/120450/4
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>
7 years agotpl_wayland_egl: subdivided the reason of failure of tbm_suface_queue_enqueue. 54/114854/4
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>
7 years agotpl_tbm: Add logs for default info. 53/114853/2
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>
7 years agotc: Reorganize test cases based on libtpl-egl APIs 84/115484/3
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>
7 years agotc: Change build process not to use spec file 55/112555/16
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>
7 years agotc: Fix bug on tpl_test_parse_arguments() 97/116597/2
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>
7 years agotc: Update change of API: tpl_surface_create_swapchain() 95/101695/2
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>
7 years agotc: Release tpl-test-0.3.0 85/94585/2
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>
7 years agotc: Add document with drm locked. 84/94584/3
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>
7 years agotc: Add test cases for testing libtpl-egl 83/94583/2
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>
7 years agotc: Create base class for testing with sample test case 82/94582/2
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>
7 years agotc: Add Google C++ Test Framework(gtest) Library 81/94581/2
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>
7 years agoMerge "tc: Cleanup previous not working TC" into tizen
Gwan-gyeong Mun [Tue, 24 Jan 2017 07:37:33 +0000 (23:37 -0800)]
Merge "tc: Cleanup previous not working TC" into tizen

7 years agotc: Cleanup previous not working TC 80/94580/2
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>
7 years agotpl: Add TPL_BACKEND_TBM_VULKAN_WSI enum value to tpl_backend_type_t 47/111047/1
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>
7 years agotpl_tbm: Disable worker_thread for tbm backend. 42/110842/2 tizen_3.0_tv accepted/tizen/3.0/common/20170119.105930 accepted/tizen/3.0/ivi/20170119.021139 accepted/tizen/3.0/mobile/20170119.021047 accepted/tizen/3.0/tv/20170119.021103 accepted/tizen/3.0/wearable/20170119.021121 accepted/tizen/common/20170119.171649 accepted/tizen/ivi/20170118.223441 accepted/tizen/mobile/20170118.223405 accepted/tizen/tv/20170118.223420 accepted/tizen/unified/20170309.034328 accepted/tizen/wearable/20170118.223426 submit/tizen/20170118.080614 submit/tizen_3.0/20170118.081137 submit/tizen_unified/20170308.100410
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>
7 years agowayland-egl: Refactoring and fixing peephole on wl_egl_window_resize() and wl_egl_win... 47/110147/1
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>
7 years agotpl_tbm: Remove missued pthread_mutex_init() for draw_waiting_mutex 42/109742/2
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>
7 years agowayland-egl: Fixed incorrect resize on prerotation 81/108881/2
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>
7 years agotpl_wayland_egl: When wl_display_dispatch_queue() fails, print infomation of error... 79/107779/2
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>
7 years agotpl_wayland_egl: clean up __tpl_wayland_egl_surface_init() 49/106249/5
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>
7 years agoMerge "tpl_tbm: clean up __tpl_tbm_surface_fini()" into tizen
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

7 years agotpl_wayland_egl: clean up __cb_client_window_resize_callback() 03/104403/2
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>
7 years agowayland-egl: clean up wl_egl_window_create() 02/104402/2
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>
7 years agoMerge "tpl_tbm: implement worker thread interface" into tizen
Gwan-gyeong Mun [Wed, 11 Jan 2017 09:27:14 +0000 (01:27 -0800)]
Merge "tpl_tbm: implement worker thread interface" into tizen

7 years agoMerge "tpl_worker_thread: added new interface draw_wait_buffer_get" 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

7 years agoMerge "tpl_tbm: added vulkan support funcs" 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

7 years agotpl_display: modify return value of tpl_display_create() when it is already existed 24/101724/2
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>
7 years agotpl_wayland_vk_wsi: apply wayland-vulkan protocol 94/102994/2
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

7 years agotpl_tbm: clean up __tpl_tbm_surface_fini() 22/106222/1
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>
7 years agotpl_tbm: implement worker thread interface 08/104008/1
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

7 years agotpl_worker_thread: added new interface draw_wait_buffer_get 07/104007/1
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

7 years agotpl_tbm: added vulkan support funcs 06/104006/1
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

7 years agowayland-vulkan: added wayland-vulkan protocol 93/102993/2
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

7 years agotpl: Add tpl_surface_get_rotation() / tpl_surface_set_rotation_capability() apis 70/96770/6 accepted/tizen_3.0.m2_mobile accepted/tizen_3.0.m2_tv accepted/tizen_3.0.m2_wearable tizen_3.0.m2 accepted/tizen/3.0.m2/mobile/20170104.142606 accepted/tizen/3.0.m2/tv/20170104.143256 accepted/tizen/3.0.m2/wearable/20170104.143639 accepted/tizen/3.0/common/20161205.091705 accepted/tizen/3.0/common/20161206.125421 accepted/tizen/3.0/ivi/20161204.233929 accepted/tizen/3.0/ivi/20161205.070024 accepted/tizen/3.0/mobile/20161204.233835 accepted/tizen/3.0/mobile/20161205.070006 accepted/tizen/3.0/tv/20161204.233850 accepted/tizen/3.0/tv/20161205.070013 accepted/tizen/3.0/wearable/20161204.233909 accepted/tizen/3.0/wearable/20161205.070018 accepted/tizen/common/20161202.233303 accepted/tizen/ivi/20161205.000053 accepted/tizen/mobile/20161205.000026 accepted/tizen/tv/20161205.000031 accepted/tizen/wearable/20161205.000040 submit/tizen/20161202.054342 submit/tizen_3.0.m2/20170104.093752 submit/tizen_3.0/20161202.055418 submit/tizen_3.0/20161205.053741
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>
7 years agoMerge "tpl_worker_thread: drop checking of fence_result on __tpl_worker_thread_loop... accepted/tizen/3.0/common/20161203.012239 accepted/tizen/3.0/ivi/20161202.010129 accepted/tizen/3.0/mobile/20161202.010033 accepted/tizen/3.0/tv/20161202.010058 accepted/tizen/3.0/wearable/20161202.010115 accepted/tizen/common/20161201.140002 accepted/tizen/ivi/20161202.005840 accepted/tizen/mobile/20161202.005748 accepted/tizen/tv/20161202.005803 accepted/tizen/wearable/20161202.005820 submit/tizen/20161201.080017 submit/tizen_3.0/20161201.080219 submit/tizen_common/20161201.142231
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

7 years agotpl_worker_thread: drop checking of fence_result on __tpl_worker_thread_loop() 44/101244/1
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

7 years agotpl_tbm: Delete TPL_ASSERT checking to __tpl_tbm_display_get_window_info. 38/101238/1
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>
7 years agotpl_wayland_egl: Add missing error-checking to __tpl_wayland_egl_display_buffer_flush... 82/101182/1
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>
7 years agoMerge "tpl_wayland_egl: For the hide effect, client should not attach 'NULL' when... accepted/tizen/3.0/common/20161130.065342 accepted/tizen/3.0/ivi/20161130.012834 accepted/tizen/3.0/mobile/20161130.012735 accepted/tizen/3.0/tv/20161130.012753 accepted/tizen/3.0/wearable/20161130.012814 accepted/tizen/common/20161129.173700 accepted/tizen/ivi/20161130.015659 accepted/tizen/mobile/20161130.015558 accepted/tizen/tv/20161130.015615 accepted/tizen/wearable/20161130.015639 submit/tizen/20161129.103413 submit/tizen_3.0/20161129.104022
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

7 years agoworker_thread: added epoll_wait continue condition 97/93697/2
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

7 years agotpl_worker_thread: rollback change the timing of calling of epoll_ctl_add() on "next... 92/93692/2
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

7 years agotpl_utils: fix double callback call in __tpl_list_remove_data 52/93652/2
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

7 years agotpl_wayland_egl: For the hide effect, client should not attach 'NULL' when surface... 13/100513/1
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>
7 years agotpl_worker_thread: temporarily add 'unused' attribute to suppress warning 48/99348/5
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>
7 years agotpl_wayland_egl: remove remaining unused surface frame callback in function 28/99328/1
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>
7 years agotpl_wayland_egl: remove useless member of struct _tpl_wayland_egl_display 41/97641/3
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

7 years agotpl_wayland_egl: remove wl_callback routine 40/97640/2
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

7 years agotpl_worker_thread: Add Missing break and Checking of fd of close() 18/97118/1 accepted/tizen/3.0/common/20161116.143310 accepted/tizen/3.0/ivi/20161116.021342 accepted/tizen/3.0/mobile/20161116.021242 accepted/tizen/3.0/tv/20161116.021259 accepted/tizen/3.0/wearable/20161116.021322 accepted/tizen/common/20161114.171249 accepted/tizen/ivi/20161114.010010 accepted/tizen/mobile/20161114.005837 accepted/tizen/tv/20161114.005911 accepted/tizen/wearable/20161114.005941 submit/tizen/20161111.084308 submit/tizen_3.0/20161111.105520 submit/tizen_3.0/20161115.021303
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

7 years agotpl_wayland_egl: Add log for checking flush callback. 93/95593/2 accepted/tizen/3.0/common/20161114.081230 accepted/tizen/3.0/ivi/20161110.020622 accepted/tizen/3.0/mobile/20161110.020519 accepted/tizen/3.0/tv/20161110.020539 accepted/tizen/3.0/wearable/20161110.020559 accepted/tizen/common/20161109.140326 accepted/tizen/ivi/20161109.002954 accepted/tizen/mobile/20161109.002940 accepted/tizen/tv/20161109.002947 accepted/tizen/wearable/20161109.002950 submit/tizen/20161108.120107 submit/tizen_3.0/20161108.120456 submit/tizen_3.0_common/20161110.084657
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>
7 years agotpl_wayland_egl: Invert y to rect of the damaged region. 92/95592/2
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>
8 years agotpl_wayland_egl: clean up code __tpl_wayland_egl_surface_init() 57/93557/3
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>
8 years agoMerge "tpl_surface: add missed lock in tpl_surface_set_reset_cb()" into tizen
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

8 years agoMerge "tpl_wayland_egl: remove duplicated routine in __cb_tbm_surface_queue_reset_cal...
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

8 years agoMerge "tpl_wayland_egl: clean up codes __tpl_wayland_egl_buffer_set_reset_flag()...
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

8 years agotpl_wayland_egl: clean up codes __tpl_wayland_egl_display_buffer_flusher_init/fini() 80/93380/4
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>
8 years agoMerge "tpl_wayland_egl: clean up codes for __tpl_wayland_egl_display_fini()" into...
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

8 years agotpl_wayland_egl: clean up codes for __tpl_wayland_egl_display_fini() 79/93379/3
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>
8 years agotpl_wayland_egl: clean up code for __tpl_wayland_egl_display_init() 48/93248/4
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>
8 years agotpl_surface: add missed lock in tpl_surface_set_reset_cb() 02/93402/1
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>
8 years agotpl_wayland_egl: remove duplicated routine in __cb_tbm_surface_queue_reset_callback() 01/93401/1
YoungJun Cho [Mon, 24 Oct 2016 06:35:14 +0000 (15:35 +0900)]
tpl_wayland_egl: remove duplicated routine in __cb_tbm_surface_queue_reset_callback()

This patch removes duplicated routine in __cb_tbm_surface_queue_reset_callback().
The TPL_CHECK_ON_NULL_RETURN() already checks wayland_egl_surface is NULL or not.

Change-Id: Ia17386495cf5fa15210e6e8847ffc7b2e8bf92cc
Signed-off-by: YoungJun Cho <yj44.cho@samsung.com>
8 years agotpl_wayland_egl: clean up codes __tpl_wayland_egl_buffer_set_reset_flag() 89/93389/1
YoungJun Cho [Mon, 24 Oct 2016 05:28:55 +0000 (14:28 +0900)]
tpl_wayland_egl: clean up codes __tpl_wayland_egl_buffer_set_reset_flag()

This patch cleans up code for __tpl_wayland_egl_buffer_set_reset_flag().
There is a possibility to reuse wayland_egl_buffer when tbm_surface is NULL.

Change-Id: If1b5580ecea47c435eccec44e0d0c78ae5696162
Signed-off-by: YoungJun Cho <yj44.cho@samsung.com>
8 years agotpl_gbm: add backend data initialization for error case 33/93233/1
YoungJun Cho [Fri, 21 Oct 2016 07:14:12 +0000 (16:14 +0900)]
tpl_gbm: add backend data initialization for error case

This patch adds backend data initialization for error case
for __tpl_gbm_surface_init().

Change-Id: I6f2f374c6c6bad7e471670c0be0a12609057c888
Signed-off-by: YoungJun Cho <yj44.cho@samsung.com>
8 years agotpl_surface: add missed unlock 88/93188/1
YoungJun Cho [Fri, 21 Oct 2016 02:00:21 +0000 (11:00 +0900)]
tpl_surface: add missed unlock

This patch adds missed unlock for tpl_surface_set_frontbuffer_mode().

Change-Id: Ic5947e526b1df44380fa9b0f8e2a56f8f1170e01
Signed-off-by: YoungJun Cho <yj44.cho@samsung.com>
8 years agotpl_surface: narrow the lock section 87/93187/1
YoungJun Cho [Fri, 21 Oct 2016 01:46:58 +0000 (10:46 +0900)]
tpl_surface: narrow the lock section

This patch narrows the lock section.
The 'tbm_surface' NULL checking routine is not related with tpl surface.

Change-Id: Ic547e0784933dcfe1f779aaa2748ebf463f084a8
Signed-off-by: YoungJun Cho <yj44.cho@samsung.com>
8 years agotpl_worker_thread: remove regist vblank handler. 55/92055/2
deasung.kim [Thu, 13 Oct 2016 05:22:44 +0000 (14:22 +0900)]
tpl_worker_thread: remove regist vblank handler.

vblank handler raises performance regression.
remove regist vblank handler and replace all present mode to MAILBOX.

Change-Id: I4a56b77aea2ff67dbe0f09dc322d3219a2c69190

8 years agotpl_util: Revised in order to use dlog as the default tpl logs. 44/91944/2
joonbum.ko [Wed, 12 Oct 2016 08:31:13 +0000 (17:31 +0900)]
tpl_util: Revised in order to use dlog as the default tpl logs.

 - If set ENABLE_DLOG which is the flag in the spec file with 0, default log change to fprintf.
 - To distinguish the kind of logs, I added several below font colors.
  FONT_DEFAULT, FONT_RED(error), FONT_YELLOW(warning), FONT_GREEN(frontend), FONT_BLUE(backend), FONT_MAGENTA(debug)

Change-Id: I13f41add53e0e3f3346bc89d4d056623f9bd98d1
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
8 years agotpl_wayland_vk_wsi: implement the wsi's present mode 37/91337/7
deasung.kim [Sat, 24 Sep 2016 10:59:45 +0000 (19:59 +0900)]
tpl_wayland_vk_wsi: implement the wsi's present mode

implement __tpl_wayland_vk_wsi_display_query_window_supported_present_modes
vblank event feature supports FIFO/FIFO_RELAXED modes

Change-Id: Id4fafee58ad3b2772449c3fb050ede2c004c52a9

8 years agotpl_worker_thread: change the timing of calling of epoll_ctl_add() on "next draw... 95/91595/4
deasung.kim [Mon, 10 Oct 2016 09:44:13 +0000 (18:44 +0900)]
tpl_worker_thread: change the timing of calling of epoll_ctl_add() on "next draw wait buffer".
- before: __tpl_worker_thread_loop() iterates  all surfaces before calling of epoll_wait()
  after : __tpl_worker_thread_loop() calls once __tpl_worker_prepare_draw_wait_buffer after handling of "current surface's buffer draw-done event".

Change-Id: Ia8ffb537794eb01c19f4fff33acf40e3071f1184

8 years agoMerge "tpl: tpl_surface_create_swapchain() API is modified for present mode support...
Gwan-gyeong Mun [Wed, 12 Oct 2016 07:05:26 +0000 (00:05 -0700)]
Merge "tpl: tpl_surface_create_swapchain() API is modified for present mode support      tpl_display_query_supported_present_modes_from_native_window() is added for querying of present mode" into tizen

8 years agotpl: tpl_surface_create_swapchain() API is modified for present mode support 36/91336/4
deasung.kim [Sat, 24 Sep 2016 09:26:46 +0000 (18:26 +0900)]
tpl: tpl_surface_create_swapchain() API is modified for present mode support
     tpl_display_query_supported_present_modes_from_native_window() is added for querying of present mode

 - Add enum of tpl_display_present_mode_t
   it's comments is referred from vulkan present mode comments of vulkan spec.

Change-Id: Ief1f322dbb083996d7b77afed7832860dc6e063a

8 years agoMerge "tpl_worker_thread: added vblank event" into tizen
Gwan-gyeong Mun [Wed, 12 Oct 2016 06:54:35 +0000 (23:54 -0700)]
Merge "tpl_worker_thread: added vblank event" into tizen

8 years agoMerge "tpl_worker_thread: added worker_thread files" into tizen
Gwan-gyeong Mun [Mon, 10 Oct 2016 11:21:09 +0000 (04:21 -0700)]
Merge "tpl_worker_thread: added worker_thread files" into tizen

8 years agotpl_worker_thread: added vblank event 34/91334/2
deasung.kim [Sat, 24 Sep 2016 09:06:08 +0000 (18:06 +0900)]
tpl_worker_thread: added vblank event

added vblank event use tdm client for present mode FIFO

Change-Id: I86830125cf9091e634a03375857a7723f7f9cafc

8 years agotpl_worker_thread: added worker_thread files 33/91333/2
deasung.kim [Sat, 24 Sep 2016 06:53:03 +0000 (15:53 +0900)]
tpl_worker_thread: added worker_thread files

change thread model from per each surface to one process
event handle in worker thread
backends set "draw done"/"fd get" func to tpl_worker_thread_surface

will be added more event functions

Change-Id: Ic6a316c75f3a0fa40e6fb3e8830f488e92d5cfa5

8 years agotpl_wayland_egl: Do unreference the attached buffers when the flushing of buffer... 50/91150/3 accepted/tizen/3.0/ivi/20161028.151244 accepted/tizen/3.0/mobile/20161028.143140 accepted/tizen/3.0/tv/20161028.143451 accepted/tizen/3.0/wearable/20161028.150819 accepted/tizen/common/20161019.145632 accepted/tizen/ivi/20161019.141942 accepted/tizen/mobile/20161019.141926 accepted/tizen/tv/20161019.141932 accepted/tizen/wearable/20161019.141937 submit/tizen/20161019.023529 submit/tizen_3.0/20161028.062323 submit/tizen_3.0/20161028.092423 submit/tizen_3.0_common/20161104.104000 submit/work91/20161019.023152
joonbum.ko [Thu, 6 Oct 2016 05:45:16 +0000 (14:45 +0900)]
tpl_wayland_egl: Do unreference the attached buffers when the flushing of buffer is occured. it uses the list of attached_buffers.

Change-Id: Iaf880e86807af33e75ad7ee41e682628db4216e1
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
8 years agotpl: Add TPL_ERROR_OUT_OF_MEMORY to enum vaulue of tpl_result_t. 17/91217/1
Mun, Gwan-gyeong [Thu, 6 Oct 2016 09:14:18 +0000 (18:14 +0900)]
tpl: Add TPL_ERROR_OUT_OF_MEMORY to enum vaulue of tpl_result_t.

 - it provides error case of OOM (out of memory) for users of libtpl-egl.

   previous: tpl returns TPL_ERROR_INVALID_OPERATION or NULL when the tpl fails on allocation of memory.
   current : tpl returns TPL_ERROR_OUT_OF_MEMORY or NULL when the tpl fails on allocation of memory.

Change-Id: I9859b71be94422b2f36250d62a7e68029f355072
Signed-off-by: Mun, Gwan-gyeong <kk.moon@samsung.com>
8 years agotpl_wayland_egl: Fix error check for dispatch queue 14/91114/1 accepted/tizen/3.0/mobile/20161015.033645 accepted/tizen/3.0/tv/20161016.004915 accepted/tizen/3.0/wearable/20161015.083546 accepted/tizen/common/20161006.153722 accepted/tizen/ivi/20161007.103754 accepted/tizen/mobile/20161007.103743 accepted/tizen/tv/20161007.103752 accepted/tizen/wearable/20161007.103749 submit/tizen/20161006.041545 submit/tizen_3.0_mobile/20161015.000004 submit/tizen_3.0_tv/20161015.000003 submit/tizen_3.0_wearable/20161015.000004
Sangjin Lee [Thu, 6 Oct 2016 01:56:33 +0000 (10:56 +0900)]
tpl_wayland_egl: Fix error check for dispatch queue

Change-Id: I8b2f684a160358b632e1edf2d1f28a8843b409ed

8 years agotpl: Added frontend API "tpl_surface_set_reset_cb" 71/90471/4 accepted/tizen/common/20161005.165649 submit/tizen/20161005.133318
joonbum.ko [Tue, 27 Sep 2016 09:41:29 +0000 (18:41 +0900)]
tpl: Added frontend API "tpl_surface_set_reset_cb"

 - This API can set function of reset_cb to tpl_surface.
 - When the tbm_surface_queue_reset is occured, if there is reset_cb which is registered by frontend, tpl_surface calls that function of reset_cb with reset_data.

 - tpl_surface_validate() also can notify info of surface's "reset/resized states" to frontend  as before.
  But if you want to know the surface reset state without render call, it is better that registers callback of reset, using above API.

Change-Id: Ib762856ad1db306c435013218c1a4be2b24ef1c9
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
8 years agotpl_wayland_egl: Fix misused return value of wl_display_roundtrip_queue() on buffer_... 91/90991/2
joonbum.ko [Wed, 5 Oct 2016 08:44:52 +0000 (17:44 +0900)]
tpl_wayland_egl: Fix misused return value of wl_display_roundtrip_queue() on  buffer_flusher_init()

 - If there are  errors on wl_display_roundtrip_queue then it  returns values as '-1'.

Change-Id: I754df1768b46f0d815af84255255997429eefa7b
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
8 years agotpl_wayland_egl: Use the tizen_surface_shm protocol for flushing of buffer 98/90398/6
Sangjin Lee [Fri, 23 Sep 2016 07:04:07 +0000 (16:04 +0900)]
tpl_wayland_egl: Use the tizen_surface_shm protocol for flushing of buffer

If the client's state changes the deiconified state, the tizen display server sends tizen_surface_shm_flusher event to client.
So, when the client gets the  tizen_surface_shm_flusher event from server, client can flush buffers of surface_queue.
And the tizen_surface_shm_flush event is dispatched by client's default event queue in tpl_wayland_egl.

Change-Id: Icccb55e621fe264bf299d9d8c81e6f5376cee24d

8 years agotpl_wayland_egl: Fixed some bugs related to wl_display_dispatch_queue_pending. 06/89706/3
joonbum.ko [Mon, 26 Sep 2016 01:49:06 +0000 (10:49 +0900)]
tpl_wayland_egl: Fixed some bugs related to wl_display_dispatch_queue_pending.
                 Temporal fix : Change of tbm_surface's reset state.

 - Currently, tbm_surface's reset state is changed by tpl_surface_validate() and tbm_surface_queue event handler.
   When we have good solution of changing of tbm_surface's reset state,  tpl_surface_validate()'s wayland egl backend should remove changing of tbm_surface's reset state.

 - Fixed some bugs about ACTIVE/DEACTIVE(queue_flush) events and finally applied wl_display_dispatch_queue_pending().

 - Related with below commit.

    019e7ff6cade7d660524cb23f7b7c442011a07dd
    tpl_wayland_egl: dispatching before checking whether can dequeue or not.

     - The event processing can be delayed in case there are idle buffer in free queue.
      So, in dequeueable procedure, it has to call wl_display_dispatch_queue_pending before checking whether tbm_surface_queue can dequeue or not.
      It can process that the events related to 'queue flush' more rapidly.

 - In future commit, tpl_surface_validate will be modified to suitable one which is related to reset flag.

Change-Id: I0584211aed14ef2dd22531074c3b50e8463dd95f
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
8 years agotpl_wayland_egl: Call wl_display_dispatch_queue_pending with wl_tbm_event_queue inste... 05/89705/4
joonbum.ko [Fri, 23 Sep 2016 05:04:54 +0000 (14:04 +0900)]
tpl_wayland_egl: Call wl_display_dispatch_queue_pending with wl_tbm_event_queue instead of dispatching with default_queue on __tpl_wayland_egl_surface_fini().

 - __tpl_wayland_egl_surface_fini() should call wl_display_dispatch_queue_pending with wl_tbm_event_queue because of the wl_event_queue is seperated default_queue and wl_tbm_event_queue.

Change-Id: I7b80e8752e4d056c4ee6fba5467503cd6c73c0db
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
8 years agotpl_wayland_egl: Release locks while tpl-egl waits for vblank done. 04/89704/2
joonbum.ko [Fri, 23 Sep 2016 04:47:45 +0000 (13:47 +0900)]
tpl_wayland_egl: Release locks while tpl-egl waits for vblank done.

 - If error occurs on tdm_client_handle_events(), the worker thread may be faced the loop of unlimited.
 - As a result, after the next tpl_surface API is called , the main thread will be faced the dead lock state
Change-Id: I7902678dad6120d540563279f35ccd5a344851cc
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
8 years agotpl_wayland_egl: Revert commit 'dispatching before checking whether can dequeue or... 75/89075/2
joonbum.ko [Thu, 22 Sep 2016 04:05:09 +0000 (13:05 +0900)]
tpl_wayland_egl: Revert commit 'dispatching before checking whether can dequeue or not.'

Change-Id: Ic053d5ce9d98ba94d09224541534f11e54575761
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
8 years agotpl_wayland_egl: Reused buffer's reset flag set to TPL_FALSE. 74/89074/2
joonbum.ko [Thu, 22 Sep 2016 02:52:23 +0000 (11:52 +0900)]
tpl_wayland_egl: Reused buffer's reset flag set to TPL_FALSE.

Change-Id: I2edc82f5e61ccb35deb22bdefe9b888568a313f9
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
8 years agotpl: Fixed image dump util. 73/89073/2
joonbum.ko [Thu, 22 Sep 2016 02:41:44 +0000 (11:41 +0900)]
tpl: Fixed image dump util.

Change-Id: I8c1727194fb1934cda60f6d413590ecc2ff0eb73
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>
8 years agotpl_wayland_egl: dispatching before checking whether can dequeue or not. 08/88508/1 accepted/tizen/3.0/ivi/20161011.050531 accepted/tizen/common/20160920.131918 accepted/tizen/ivi/20160920.231734 accepted/tizen/mobile/20160920.231617 accepted/tizen/tv/20160920.231650 accepted/tizen/wearable/20160920.231714 submit/tizen/20160920.023021 submit/tizen_3.0_ivi/20161010.000004
joonbum.ko [Mon, 19 Sep 2016 10:59:01 +0000 (19:59 +0900)]
tpl_wayland_egl: dispatching before checking whether can dequeue or not.

 - The event processing can be delayed in case there are idle buffer in free queue.
  So, in dequeueable procedure, it has to call wl_display_dispatch_queue_pending before checking whether tbm_surface_queue can dequeue or not.
  It can process that the events related to 'queue flush' more rapidly.

Change-Id: I5512e576e985d57dc9181e338f589d344f2b8161
Signed-off-by: joonbum.ko <joonbum.ko@samsung.com>