summaryrefslogtreecommitdiff
path: root/meson.build
diff options
context:
space:
mode:
authorXuelian <xuelian.bai@samsung.com>2019-11-20 17:38:53 +0800
committerXuelian Bai <xuelian.bai@samsung.com>2024-01-18 09:29:03 +0800
commit6b71079d643629371cbffd558e45fcdc04938dbf (patch)
tree0d7c1e66e73b51a169ffd377111e1d59aeec6c2f /meson.build
parentd495e8da3dd17dc60e582aba5d45f48e447d1b8a (diff)
downloadmesa-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.build15
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