diff options
author | Vasiliy Ulyanov <v.ulyanov@samsung.com> | 2016-07-21 15:58:28 +0300 |
---|---|---|
committer | Vasiliy Ulyanov <v.ulyanov@samsung.com> | 2016-07-21 16:18:12 +0300 |
commit | 66b3e1470e1aaf3936bc8ac36e9d44c3020a44e8 (patch) | |
tree | 49e5224eaef7327b25c8b3d0a461acebd89a539f | |
parent | bc953ecee60e52a883c46ac62bdc09cf5934acbd (diff) | |
download | emulator-yagl-66b3e1470e1aaf3936bc8ac36e9d44c3020a44e8.tar.gz emulator-yagl-66b3e1470e1aaf3936bc8ac36e9d44c3020a44e8.tar.bz2 emulator-yagl-66b3e1470e1aaf3936bc8ac36e9d44c3020a44e8.zip |
YaGL: Check for GPU acceleration on bootsubmit/tizen/20160725.073531accepted/tizen/wearable/20160725.083348accepted/tizen/tv/20160725.083354accepted/tizen/mobile/20160725.083352accepted/tizen/ivi/20160725.083417accepted/tizen/common/20160725.153648
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.txt | 2 | ||||
-rw-r--r-- | packaging/emulator-yagl.spec | 6 | ||||
-rwxr-xr-x | packaging/opengl-es-setup-yagl-env.sh | 49 |
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 |