diff options
author | Xuelian <xuelian.bai@samsung.com> | 2019-11-20 17:38:53 +0800 |
---|---|---|
committer | Xuelian Bai <xuelian.bai@samsung.com> | 2024-01-18 09:29:03 +0800 |
commit | 6b71079d643629371cbffd558e45fcdc04938dbf (patch) | |
tree | 0d7c1e66e73b51a169ffd377111e1d59aeec6c2f /meson.build | |
parent | d495e8da3dd17dc60e582aba5d45f48e447d1b8a (diff) | |
download | mesa-6b71079d643629371cbffd558e45fcdc04938dbf.tar.gz mesa-6b71079d643629371cbffd558e45fcdc04938dbf.tar.bz2 mesa-6b71079d643629371cbffd558e45fcdc04938dbf.zip |
egl_dri2: Add support for Tizen
Re-implement _eglLog based on dlog
Add build support for Tizen platform.
Added missed dri2_fini_surface() at tizen_destroy_surface().
Add platform_tizen.c that supports _EGL_PLATFORM_TIZEN. It works with libtpl-egl
(Tizen Porting Layer for egl), libtbm(Tizen Buffer Manager) where back buffers
of windows are backed by GEM objects.
In Tizen a native window has a queue (tbm_surface_queue) of back buffers
allocated by the WL_TBM(wayland client case, WL_TBM is abbreviation of
wayland-tbm protocol) or gbm ( tizen has implements gbm with tbm) or tbm
through tbm_backend.
For each frame, EGL needs to
dequeue the next back buffer
render to the buffer
enqueue the buffer
After enqueuing, the buffer is no longer valid to EGL.
It supports DRI image loader extension, DRI dri2 loader extension and DRI swrast
loader extension.
It supports EGL_NATIVE_SURFACE_TIZEN target type for eglCreateImageKHR.
(https://www.khronos.org/registry/EGL/extensions/TIZEN/EGL_TIZEN_image_native_surface.txt)
BindWaylandDisplayWL / UnbindWaylandDisplayWL / QueryWaylandBufferWL are
overloaded because tizen platform has its own instead of WL_DRM.
Referenced documents:
https://www.x.org/wiki/Events/XDC2016/Program/XDC2016_Tizen_Window_System_EGL_Vulkan.pdf
https://wiki.tizen.org/wiki/3.0_Porting_Guide/Graphics_and_UI/libtpl-egl
https://wiki.tizen.org/wiki/TBM
egllog: add unlock call preventing the deadlock
Implement dlog for mesa main
_eglLog is a basic log function for mesa, re-implement
it based on dlog here for debug purpose.
Log level can be changed by setting environment variable
EGL_LOG_LEVEL.
Log API for mesa main module are all implemented in file
src/mesa/main/error.c, re-implement them based on dlog
for debug convenience
add configuration of building and packaging for rpi3 ( vc4 gpu driver )
add udev rule files for rpi3 (vc4 drm device)
Mered old commit:
commit f5205524bf20b63c2efe20e99429c9d55543b711
Author: Zhaowei Yuan <zhaowei.yuan@samsung.com>
Date: Mon May 6 13:52:32 2019 +0800
commit 704bb72470589ede7246af8c6b0a9210df42f1c7
Author: Xuelian <xuelian.bai@samsung.com>
Date: Wed Nov 20 19:08:41 2019 +0800
commit 247adc92138ad456f5db39acfe5be69748973df3
Author: Joonbum Ko <joonbum.ko@samsung.com>
Date: Wed Apr 29 20:01:56 2020 +0900
Change-Id: I83348c1cff5f0f59f79bc3c016623adf6fbba32b
Signed-off-by: Xuelian <xuelian.bai@samsung.com>
Diffstat (limited to 'meson.build')
-rw-r--r-- | meson.build | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/meson.build b/meson.build index 2902c1019f6..39c952122a2 100644 --- a/meson.build +++ b/meson.build @@ -338,7 +338,7 @@ endforeach _platforms = get_option('platforms') if _platforms.contains('auto') if system_has_kms_drm - _platforms = ['x11', 'wayland'] + _platforms = ['x11', 'wayland', 'tizen'] elif ['darwin', 'cygwin'].contains(host_machine.system()) _platforms = ['x11'] elif ['haiku'].contains(host_machine.system()) @@ -354,6 +354,7 @@ endif with_platform_android = _platforms.contains('android') with_platform_x11 = _platforms.contains('x11') with_platform_wayland = _platforms.contains('wayland') +with_platform_tizen = _platforms.contains('tizen') with_platform_haiku = _platforms.contains('haiku') with_platform_windows = _platforms.contains('windows') @@ -1966,6 +1967,18 @@ if with_platform_wayland pre_args += '-DWL_HIDE_DEPRECATED' endif +if with_platform_tizen + dep_tpl_egl = dependency('tpl-egl') + dep_libtbm = dependency('libtbm') + dep_libtdm = dependency('libtdm') + dep_wayland_client = dependency('wayland-client') + dep_dlog = dependency('dlog') + dep_wl_protocols = dependency('wayland-protocols', version : '>= 1.8') + dep_wayland_client = dependency('wayland-client', version : '>=1.11') + dep_wayland_server = dependency('wayland-server', version : '>=1.11') + pre_args += ['-DHAVE_TIZEN_PLATFORM'] +endif + dep_x11 = null_dep dep_xext = null_dep dep_xfixes = null_dep |