summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVasiliy Ulyanov <v.ulyanov@samsung.com>2016-07-21 15:58:28 +0300
committerVasiliy Ulyanov <v.ulyanov@samsung.com>2016-07-21 16:18:12 +0300
commit66b3e1470e1aaf3936bc8ac36e9d44c3020a44e8 (patch)
tree49e5224eaef7327b25c8b3d0a461acebd89a539f
parentbc953ecee60e52a883c46ac62bdc09cf5934acbd (diff)
downloademulator-yagl-66b3e1470e1aaf3936bc8ac36e9d44c3020a44e8.tar.gz
emulator-yagl-66b3e1470e1aaf3936bc8ac36e9d44c3020a44e8.tar.bz2
emulator-yagl-66b3e1470e1aaf3936bc8ac36e9d44c3020a44e8.zip
If emulator is run without host GPU acceleration, yagl will likely terminate GL apps on initialization failure. In order to handle the situation propely, dummy GL libs are now packed along with yagl. When emulator boots up, a script will check if /dev/yagl is present and setup the symlinks appropriately. Change-Id: I6715c5798b0c2a6cdef16a24a1e3c8786f6aa36f Signed-off-by: Vasiliy Ulyanov <v.ulyanov@samsung.com>
-rw-r--r--dummy/CMakeLists.txt2
-rw-r--r--packaging/emulator-yagl.spec6
-rwxr-xr-xpackaging/opengl-es-setup-yagl-env.sh49
3 files changed, 15 insertions, 42 deletions
diff --git a/dummy/CMakeLists.txt b/dummy/CMakeLists.txt
index b5630e0..026f026 100644
--- a/dummy/CMakeLists.txt
+++ b/dummy/CMakeLists.txt
@@ -6,5 +6,5 @@ add_library(GLESv2_dummy SHARED gles2_dummy.c)
install(
TARGETS EGL_dummy GLESv1_dummy GLESv2_dummy
- LIBRARY DESTINATION lib/dummy-gl
+ LIBRARY DESTINATION ${INSTALL_LIB_DIR}/driver
)
diff --git a/packaging/emulator-yagl.spec b/packaging/emulator-yagl.spec
index 08ba251..9ade751 100644
--- a/packaging/emulator-yagl.spec
+++ b/packaging/emulator-yagl.spec
@@ -63,7 +63,7 @@ Development files for use with Wayland protocol
%build
cp %{SOURCE1001} .
%if "%{ENABLE_TIZEN_BACKEND}" == "1"
-cmake -DCMAKE_INSTALL_PREFIX=%{buildroot} -DINSTALL_LIB_DIR=%{buildroot}%{_libdir} -DPLATFORM_TIZEN=1
+cmake -DCMAKE_INSTALL_PREFIX=%{buildroot} -DINSTALL_LIB_DIR=%{buildroot}%{_libdir} -DPLATFORM_TIZEN=1 -DDUMMY_LIBS=1
%else
cmake -DCMAKE_INSTALL_PREFIX=%{buildroot} -DINSTALL_LIB_DIR=%{buildroot}%{_libdir} -DPLATFORM_X11=0 -DPLATFORM_GBM=0 -DPLATFORM_WAYLAND=1
%endif
@@ -74,9 +74,12 @@ rm -fr %{buildroot}
mkdir -p %{buildroot}
mkdir -p %{buildroot}%{_libdir}
mkdir -p %{buildroot}%{_libdir}/pkgconfig
+mkdir -p %{buildroot}/etc/profile.d
make install
+cp packaging/opengl-es-setup-yagl-env.sh %{buildroot}/etc/profile.d/
+
%if "%{ENABLE_TIZEN_BACKEND}" == "0"
cp pkgconfig/wayland-egl.pc %{buildroot}%{_libdir}/pkgconfig/
%post -n libwayland-egl -p /sbin/ldconfig
@@ -95,6 +98,7 @@ ln -sf driver/libGLESv1_CM.so.1.0 %{buildroot}%{_libdir}/libGLESv1_CM.so.1.1
%{_libdir}/driver/libEGL*
%{_libdir}/driver/libGL*
%{_libdir}/libGLESv1_CM.so.1.1
+%attr(770,root,root)/etc/profile.d/opengl-es-setup-yagl-env.sh
%if "%{ENABLE_TIZEN_BACKEND}" == "0"
%files -n libwayland-egl
diff --git a/packaging/opengl-es-setup-yagl-env.sh b/packaging/opengl-es-setup-yagl-env.sh
index 38fc8c3..6dd6b5a 100755
--- a/packaging/opengl-es-setup-yagl-env.sh
+++ b/packaging/opengl-es-setup-yagl-env.sh
@@ -1,45 +1,14 @@
- #!/bin/sh
+#!/bin/sh
-echo -e "[${_G} Opengl-es acceleration module setting. ${C_}]"
+echo -e "[${_G} OpenGL ES acceleration module setting. ${C_}]"
if [ -e /dev/yagl ] ; then
- echo -e "[${_G} Emulator support gles hw acceleration. ${C_}]"
- echo -e "[${_G} Change permission of /dev/yagl. ${C_}]"
- chown root:video /dev/dri/card0
- chown root:video /dev/yagl
- chmod 660 /dev/dri/card0
- chmod 660 /dev/yagl
- chsmack -a "*" /dev/dri/card0
- chsmack -a "*" /dev/yagl
- echo -e "[${_G} Apply to use hw gles library. ${C_}]"
- ln -s -f /usr/lib/yagl/libEGL.so.1.0 /usr/lib/libEGL.so
- ln -s -f /usr/lib/yagl/libEGL.so.1.0 /usr/lib/libEGL.so.1
- ln -s -f /usr/lib/yagl/libGLESv1_CM.so.1.0 /usr/lib/libGLESv1_CM.so
- ln -s -f /usr/lib/yagl/libGLESv1_CM.so.1.0 /usr/lib/libGLESv1_CM.so.1
- ln -s -f /usr/lib/yagl/libGLESv2.so.1.0 /usr/lib/libGLESv2.so
- ln -s -f /usr/lib/yagl/libGLESv2.so.1.0 /usr/lib/libGLESv2.so.1
-elif grep "yagl=1" /proc/cmdline ; then
- echo -e "[${_G} Emulator support gles hw acceleration. ${C_}]"
- echo -e "[${_G} Change permission of /dev/yagl. ${C_}]"
- chown root:video /dev/dri/card0
- chown root:video /dev/yagl
- chmod 660 /dev/dri/card0
- chmod 660 /dev/yagl
- chsmack -a "*" /dev/dri/card0
- chsmack -a "*" /dev/yagl
- echo -e "[${_G} Apply to use hw gles library. ${C_}]"
- ln -s -f /usr/lib/yagl/libEGL.so.1.0 /usr/lib/libEGL.so
- ln -s -f /usr/lib/yagl/libEGL.so.1.0 /usr/lib/libEGL.so.1
- ln -s -f /usr/lib/yagl/libGLESv1_CM.so.1.0 /usr/lib/libGLESv1_CM.so
- ln -s -f /usr/lib/yagl/libGLESv1_CM.so.1.0 /usr/lib/libGLESv1_CM.so.1
- ln -s -f /usr/lib/yagl/libGLESv2.so.1.0 /usr/lib/libGLESv2.so
- ln -s -f /usr/lib/yagl/libGLESv2.so.1.0 /usr/lib/libGLESv2.so.1
+ echo -e "[${_G} Emulator supports gles hw acceleration. ${C_}]"
+ ln -s -f libEGL.so.1.0 /usr/lib/driver/libEGL.so.1
+ ln -s -f libGLESv1_CM.so.1.0 /usr/lib/driver/libGLESv1_CM.so.1
+ ln -s -f libGLESv2.so.2.0 /usr/lib/driver/libGLESv2.so.2
else
echo -e "[${_G} Emulator does not support gles hw acceleration. ${C_}]"
- echo -e "[${_G} Apply to use gles stub library. ${C_}]"
- ln -s -f /usr/lib/dummy-gl/libEGL_dummy.so /usr/lib/libEGL.so
- ln -s -f /usr/lib/dummy-gl/libEGL_dummy.so /usr/lib/libEGL.so.1
- ln -s -f /usr/lib/dummy-gl/libGLESv1_dummy.so /usr/lib/libGLESv1_CM.so
- ln -s -f /usr/lib/dummy-gl/libGLESv1_dummy.so /usr/lib/libGLESv1_CM.so.1
- ln -s -f /usr/lib/dummy-gl/libGLESv2_dummy.so /usr/lib/libGLESv2.so
- ln -s -f /usr/lib/dummy-gl/libGLESv2_dummy.so /usr/lib/libGLESv2.so.1
+ ln -s -f libEGL_dummy.so /usr/lib/driver/libEGL.so.1
+ ln -s -f libGLESv1_dummy.so /usr/lib/driver/libGLESv1_CM.so.1
+ ln -s -f libGLESv2_dummy.so /usr/lib/driver/libGLESv2.so.2
fi