diff --git a/recipes/imx-gpu-viv.inc b/recipes/imx-gpu-viv.inc new file mode 100644 index 0000000..d9ec886 --- /dev/null +++ b/recipes/imx-gpu-viv.inc @@ -0,0 +1,214 @@ +# Copyright (C) 2012-2013 Freescale Semiconductor +# Copyright (C) 2012-2014 O.S. Systems Software LTDA. +# Released under the MIT license (see COPYING.MIT for the terms) + +inherit fsl-eula-unpack + +ACCEPT_FSL_EULA = "1" + +DESCRIPTION = "GPU driver and apps for imx6" + +DEPENDS += "libx11 libxdamage libxext libxfixes mesa-dri-libgl-dev" +DEPENDS_${PN} += "libx11 libxdamage libxext libxfixes" +RDEPENDS_${PN} += "libx11 libxdamage libxext libxfixes mesa-dri-libglapi" + +SRC_URI = "${FSL_MIRROR}/${PN}-${PV}.bin;fsl-eula=true;unpack=fsl \ + file://egl.pc \ + file://egl_x11.pc \ + file://glesv1_cm.pc \ + file://glesv1_cm_x11.pc \ + file://glesv2.pc \ + file://glesv2_x11.pc \ + file://vg.pc \ + file://vg_x11.pc \ + file://gc_wayland_protocol.pc \ + file://wayland-egl.pc \ + file://wayland-viv.pc \ + file://directfbrc \ + file://glproto.pc \ + file://gl.pc \ + file://dri.pc" + +PACKAGES =+ "libclc libclc-dev libclc-dbg \ + libgl libgl-dev libgl-dbg \ + libglesv1 libglesv1-dev libglesv1-dbg \ + libglesv2 libglesv2-dev libglesv2-dbg \ + libglslc libglslc-dev libglslc-dbg \ + libopencl libopencl-dev libopencl-dbg \ + libopenvg libopenvg-dev libopenvg-dbg \ + libvdk libvdk-dev libvdk-dbg \ + libegl libegl-dev libegl-dbg \ + libgal libgal-dev libgal-dbg \ + libvivante libvivante-dev libvivante-dbg \ + libvivante-dri libvivante-dri-dbg \ + libvivante-dfb \ + libwayland-viv libwayland-viv-dev libwayland-viv-dbg \ + libgc-wayland-protocol libgc-wayland-protocol-dev libgc-wayland-protocol-dbg \ + libwayland-egl-dev libvsc libvsc-dbg \ +" + +# FIXME: The provided binary doesn't provide soname. If in future BSP + # release the libraries are fixed, we can drop this hack. +REALSOLIBS = "${SOLIBS}" +SOLIBS = "${SOLIBSDEV}" +ALLSOLIBS = ".so*" + +do_install () { + install -d ${D}${libdir} + install -d ${D}${includedir} + install -d ${D}${bindir} + + cp -P ${S}/gpu-core/usr/lib/*.so* ${D}${libdir} + rm -f ${D}${libdir}*wl* + #rm -f ${D}${libdir}/libGL.so* + + install -d ${D}${libdir}/dri + cp -axr ${MACHINE_SYSROOT}/usr/lib/dri/* ${D}${libdir}/dri/ + + #cp ${S}/g2d/usr/lib/*.so* ${D}${libdir} + cp -r ${S}/gpu-core/usr/include/* ${D}${includedir} + cp -Pr ${S}/g2d/usr/include/* ${D}${includedir} + cp -r ${S}/gpu-demos/opt ${D} + cp -r ${S}/gpu-tools/gmem-info/usr/bin/* ${D}${bindir} + + #we need GL headers from mesa in stage + cp -axr ${HOST_SYSROOT}/usr/include/GL ${D}${includedir}/. + + install -d ${D}${libdir}/pkgconfig + + #install gl.pc and glproto.pc + install -m 0644 ${SRCDIR}/gl.pc ${D}${libdir}/pkgconfig/gl.pc + install -m 0644 ${SRCDIR}/glproto.pc ${D}${libdir}/pkgconfig/glproto.pc + install -m 0644 ${SRCDIR}/dri.pc ${D}${libdir}/pkgconfig/dri.pc + + # The preference order, based in DISTRO_FEATURES, is x11, wayland, directfb and fb + cp -r ${S}/gpu-core/usr/lib/dri ${D}${libdir} + #cp -r ${S}/apitrace/x11/usr/lib/* ${D}${libdir} + #cp -r ${S}/apitrace/x11/usr/bin/* ${D}${bindir} + + #backend=x11 + + install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/egl_x11.pc ${D}${libdir}/pkgconfig/egl.pc + install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/glesv1_cm_x11.pc ${D}${libdir}/pkgconfig/glesv1_cm.pc + install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/glesv2_x11.pc ${D}${libdir}/pkgconfig/glesv2.pc + install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/vg_x11.pc ${D}${libdir}/pkgconfig/vg.pc + + # Install Vendor ICDs for OpenCL's installable client driver loader (ICDs Loader) + install -d ${D}${sysconfdir}/OpenCL/vendors/ + install -m 0644 ${S}/gpu-core/etc/Vivante.icd ${D}${sysconfdir}/OpenCL/vendors/Vivante.icd + + # We'll only have one backend here so we rename it to generic name + # and avoid rework in other packages, when possible + #mv ${D}${libdir}/libGL.so.1.2 ${D}${libdir}/libGL.so.1.2.0 + #ln -sf libGL.so.1.2.0 ${D}${libdir}/libGL.so.1.2 + #ln -sf libGL.so.1.2.0 ${D}${libdir}/libGL.so.1 + #ln -sf libGL.so.1.2.0 ${D}${libdir}/libGL.so + mv ${D}${libdir}/libEGL-x11.so ${D}${libdir}/libEGL.so.1.0 + ln -sf libEGL.so.1.0 ${D}${libdir}/libEGL.so.1 + ln -sf libEGL.so.1.0 ${D}${libdir}/libEGL.so + mv ${D}${libdir}/libGAL-x11.so ${D}${libdir}/libGAL.so + mv ${D}${libdir}/libVIVANTE-x11.so ${D}${libdir}/libVIVANTE.so + + # update libglesv2 as backend dependent + rm -rf ${D}${libdir}/libGLESv2* + cp ${S}/gpu-core/usr/lib/libGLESv2-x11.so ${D}${libdir}/libGLESv2.so.2.0.0 + ln -sf libGLESv2.so.2.0.0 ${D}${libdir}/libGLESv2.so.2 + ln -sf libGLESv2.so.2.0.0 ${D}${libdir}/libGLESv2.so + + # skip packaging wayland libraries if no support is requested + rm ${D}${libdir}/libgc_wayland_protocol.* + rm ${D}${libdir}/libwayland-viv.* + rm ${D}${libdir}/*dfb.so + rm ${D}${libdir}/*wl.so + rm ${D}${libdir}/*fb.so + + #for backend in wl x11 fb dfb dri; do + # find ${D}${libdir} -name "*-$backend.so" -exec rm '{}' ';' + # find ${D}${libdir} -name "*.$backend.so" -exec rm '{}' ';' + #done + + find ${D}${libdir} -type f -exec chmod 644 {} \; + find ${D}${includedir} -type f -exec chmod 644 {} \; +} + +FILES_${PN} += "/opt" +FILES_${PN}-dev = "${includedir}" +FILES_${PN}-dbg = "${bindir}/.debug ${libdir}/.debug /opt/viv_samples/*/*/.debug" + +FILES_libclc = "${libdir}/libCLC${SOLIBS}" +FILES_libclc-dev = "${includedir}/CL ${libdir}/libCLC${SOLIBSDEV}" +FILES_libclc-dbg = "${libdir}/.debug/libCLC${SOLIBS}" + +# libEGL.so is used by some demo apps from Freescale +FILES_libegl = "${libdir}/libEGL${REALSOLIBS} ${libdir}/libEGL${SOLIBSDEV} ${libdir}/libEGL${ALLSOLIBS}" +FILES_libegl-dev = "${includedir}/EGL ${includedir}/KHR ${libdir}/pkgconfig/egl.pc" +FILES_libegl-dbg = "${libdir}/.debug/libEGL${SOLIBS}" + +FILES_libgal = "${libdir}/libGAL${SOLIBS}" +FILES_libgal-dev = "${libdir}/libGAL${SOLIBSDEV}" +FILES_libgal-dbg = "${libdir}/.debug/libGAL${SOLIBS}" + +FILES_libgl = "${libdir}/libGL${REALSOLIBS} ${libdir}/libGL${SOLIBS} ${libdir}/libGL${ALLSOLIBS}" +FILES_libgl-dev = "${includedir}/GL ${libdir}/libGL${SOLIBSDEV} ${libdir}/pkgconfig/glproto.pc ${libdir}/pkgconfig/gl.pc" +FILES_libgl-dbg = "${libdir}/.debug/libGL.${SOLIBS}" +DEPENDS_libgl += "libgl-dev libgal libdrm libvivante-dri" +RDEPENDS_libgl += "libgal libdrm libvivante-dri" + +# libEGL needs to open libGLESv1.so +FILES_libglesv1 = "${libdir}/libGLESv1*${REALSOLIBS} ${libdir}/libGLESv1*${SOLIBS} ${libdir}/libGLES_*${SOLIBS} ${libdir}/libGLES_*${ALLSOLIBS} ${libdir}/libGLESv1_*${ALLSOLIBS}" +FILES_libglesv1-dev = "${includedir}/GLES ${libdir}/libGLESv1*${SOLIBS} ${libdir}/libGLES_*${SOLIBSDEV} ${libdir}/pkgconfig/glesv1_cm.pc" +FILES_libglesv1-dbg = "${libdir}/.debug/libGLESv1*${SOLIBS} ${libdir}/.debug/libGLES_*${SOLIBS}" +DEPENDS_libglesv1 += "libglesv1-dev libgal" + +# libEGL needs to open libGLESv2.so +FILES_libglesv2 = "${libdir}/libGLESv2${REALSOLIBS} ${libdir}/libGLESv2${SOLIBS} ${libdir}/libGLESv2${ALLSOLIBS}" +FILES_libglesv2-dev = "${includedir}/GLES2 ${libdir}/libGLESv2${SOLIBSDEV} ${libdir}/pkgconfig/glesv2.pc" +FILES_libglesv2-dbg = "${libdir}/.debug/libGLESv2${SOLIBS}" +RDEPENDS_libglesv2 = "libglslc libvsc libgal" +DEPENDS_libglesv2 += "libglslc libglslc-dev libgal libvsc" + +FILES_libglslc = "${libdir}/libGLSLC${SOLIBS}" +FILES_libglslc-dev = "${includedir}/CL ${libdir}/libGLSLC${SOLIBSDEV}" +FILES_libglslc-dbg = "${libdir}/.debug/libGLSLC${SOLIBS}" + +FILES_libopencl = "${libdir}/libOpenCL${SOLIBS}" +FILES_libopencl-dev = "${includedir}/CL ${libdir}/libOpenCL${SOLIBSDEV}" +FILES_libopencl-dbg = "${libdir}/.debug/libOpenCL${SOLIBS}" +RDEPENDS_libopencl = "libclc" + +FILES_libvsc = "${libdir}/libVSC${SOLIBS}" +FILES_libvsc-dbg = "${libdir}/.debug/libVSC${SOLIBS}" + +FILES_libopenvg = "${libdir}/libOpenVG*${SOLIBS}" +FILES_libopenvg-dev = "${includedir}/VG ${libdir}/libOpenVG*${SOLIBSDEV} ${libdir}/pkgconfig/vg.pc" +FILES_libopenvg-dbg = "${libdir}/.debug/libOpenVG*${SOLIBS}" + +FILES_libvdk = "${libdir}/libVDK${SOLIBS}" +FILES_libvdk-dev = "${includedir}/*vdk.h ${libdir}/libVDK${SOLIBSDEV}" +FILES_libvdk-dbg = "${libdir}/.debug/libVDK${SOLIBS}" + +FILES_libvivante = "${libdir}/libVIVANTE${SOLIBS}" +FILES_libvivante-dev = "${libdir}/libVIVANTE${SOLIBSDEV}" +FILES_libvivante-dbg = "${libdir}/.debug/libVIVANTE${SOLIBS}" + +FILES_libvivante-dri = "${libdir}/dri/*.so ${libdir}/pkgconfig/dri.pc" +FILES_libvivante-dri-dbg = "${libdir}/dri/.debug/vivante_dri.so" + +FILES_libvivante-dfb = "${libdir}/bVIVANTE-dfb.so" + +FILES_libwayland-viv = "${libdir}/libwayland-viv${REALSOLIBS} ${libdir}/libwayland-viv${SOLIBS} ${libdir}/libwayland-viv${ALLSOLIBS}" +FILES_libwayland-viv-dev = "${libdir})/libwayland-viv${SOLIBSDEV} ${libdir}/pkgconfig/wayland-viv.pc" +FILES_libwayland-viv-dbg = "${libdir}/.debug/libwayland-viv${SOLIBS}" + +FILES_libgc-wayland-protocol = "${libdir}/libgc_wayland_protocol${REALSOLIBS} ${libdir}/libgc_wayland_protocol${SOLIBS} ${libdir}/libgc_wayland_protocol${ALLSOLIBS}" +FILES_libgc-wayland-protocol-dev = "${libdir}/libgc_wayland_protocol${SOLIBSDEV} ${libdir}/pkgconfig/gc_wayland_protocol.pc" +FILES_libgc-wayland-protocol-dbg = "${libdir}/libgc_wayland_protocol${SOLIBS}" + +FILES_libwayland-egl-dev = "${libdir}/pkgconfig/wayland-egl.pc" + +FILES_libvivante-dfb += "${sysconfdir}/directfbrc" + +COMPATIBLE_MACHINES = ".*" +RECIPE_FLAGS = "mx6" +COMPATIBLE_IF_FLAGS = "mx6" + diff --git a/recipes/imx-gpu-viv/directfbrc b/recipes/imx-gpu-viv/directfbrc new file mode 100644 index 0000000..bae398c --- /dev/null +++ b/recipes/imx-gpu-viv/directfbrc @@ -0,0 +1,10 @@ +# directfbrc begin +system=fbdev +mode=1024x768 # display size (change to fit your needs) +desktop-buffer-mode=frontonly # if no double buffering in framebuffer driver +depth=16 +pixelformat=RGB16 +#no-hardware # disable hardware acceleration +#no-software # disable software fallbacks +# directfbrc end + diff --git a/recipes/imx-gpu-viv/dri.pc b/recipes/imx-gpu-viv/dri.pc new file mode 100644 index 0000000..cffe8e3 --- /dev/null +++ b/recipes/imx-gpu-viv/dri.pc @@ -0,0 +1,11 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=/usr/lib +includedir=/usr/include +dridriverdir=/usr/lib/dri + +Name: dri +Description: Direct Rendering Infrastructure +Version: 7.11.0 +Requires.private: libdrm >= 2.4.24 +Cflags: -I${includedir} diff --git a/recipes/imx-gpu-viv/egl.pc b/recipes/imx-gpu-viv/egl.pc new file mode 100644 index 0000000..a21922d --- /dev/null +++ b/recipes/imx-gpu-viv/egl.pc @@ -0,0 +1,12 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=/usr/lib +includedir=/usr/include + +Name: egl +Description: Vivante EGL library +Requires.private: +Version: 8.0 +Libs: -L${libdir} -lEGL +Libs.private: -lm -lpthread -ldl +Cflags: -I${includedir} -DLINUX diff --git a/recipes/imx-gpu-viv/egl_x11.pc b/recipes/imx-gpu-viv/egl_x11.pc new file mode 100644 index 0000000..5921583 --- /dev/null +++ b/recipes/imx-gpu-viv/egl_x11.pc @@ -0,0 +1,12 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=/usr/lib +includedir=/usr/include + +Name: egl +Description: Vivante EGL library +Requires.private: libdrm x11 xext xdamage xfixes xcb +Version: 8.0 +Libs: -L${libdir} -lEGL +Libs.private: -lm -lpthread -ldl +Cflags: -I${includedir} -DLINUX diff --git a/recipes/imx-gpu-viv/gc_wayland_protocol.pc b/recipes/imx-gpu-viv/gc_wayland_protocol.pc new file mode 100644 index 0000000..f4610ea --- /dev/null +++ b/recipes/imx-gpu-viv/gc_wayland_protocol.pc @@ -0,0 +1,10 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: gc_wayland_protocol +Description: Vivante Wayland Protocol Extension Library +Version: 0.1 +Cflags: -I${includedir} +Libs: -L${libdir} -lgc_wayland_protocol diff --git a/recipes/imx-gpu-viv/gl.pc b/recipes/imx-gpu-viv/gl.pc new file mode 100644 index 0000000..223a6f4 --- /dev/null +++ b/recipes/imx-gpu-viv/gl.pc @@ -0,0 +1,13 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=/usr/lib +includedir=/usr/include + +Name: gl +Description: Mesa OpenGL library +Requires.private: glproto >= 1.4.11 +Version: 7.11.0 +Libs: -L${libdir} -lGL +Libs.private: -lm -lpthread -ldl +Cflags: -I${includedir} +glx_tls: yes diff --git a/recipes/imx-gpu-viv/glesv1_cm.pc b/recipes/imx-gpu-viv/glesv1_cm.pc new file mode 100644 index 0000000..d97b067 --- /dev/null +++ b/recipes/imx-gpu-viv/glesv1_cm.pc @@ -0,0 +1,12 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=/usr/lib +includedir=/usr/include + +Name: glesv1_cm +Description: Vivante OpenGL ES 1.1 CM library +Requires.private: +Version: 8.0 +Libs: -L${libdir} -lGLESv1_CM -lEGL -lGAL +Libs.private: -lm -lpthread -ldl +Cflags: -I${includedir} diff --git a/recipes/imx-gpu-viv/glesv1_cm_x11.pc b/recipes/imx-gpu-viv/glesv1_cm_x11.pc new file mode 100644 index 0000000..e801633 --- /dev/null +++ b/recipes/imx-gpu-viv/glesv1_cm_x11.pc @@ -0,0 +1,12 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=/usr/lib +includedir=/usr/include + +Name: glesv1_cm +Description: Vivante OpenGL ES 1.1 CM library +Requires.private: libdrm x11 xext xdamage xfixes xcb +Version: 8.0 +Libs: -L${libdir} -lGLESv1_CM -lEGL -lGAL +Libs.private: -lm -lpthread -ldl +Cflags: -I${includedir} diff --git a/recipes/imx-gpu-viv/glesv2.pc b/recipes/imx-gpu-viv/glesv2.pc new file mode 100644 index 0000000..9be46f2 --- /dev/null +++ b/recipes/imx-gpu-viv/glesv2.pc @@ -0,0 +1,12 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=/usr/lib +includedir=/usr/include + +Name: glesv2 +Description: Vivante OpenGL ES 2.0 library +Requires.private: +Version: 8.0 +Libs: -L${libdir} -lGLESv2 -lEGL -lGAL +Libs.private: -lpthread -lrt +Cflags: -I${includedir} diff --git a/recipes/imx-gpu-viv/glesv2_x11.pc b/recipes/imx-gpu-viv/glesv2_x11.pc new file mode 100644 index 0000000..57ad807 --- /dev/null +++ b/recipes/imx-gpu-viv/glesv2_x11.pc @@ -0,0 +1,12 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=/usr/lib +includedir=/usr/include + +Name: glesv2 +Description: Vivante OpenGL ES 2.0 library +Requires.private: libdrm x11 xext xdamage xfixes xcb +Version: 8.0 +Libs: -L${libdir} -lGLESv2 -lEGL -lGAL +Libs.private: -lpthread -lrt +Cflags: -I${includedir} diff --git a/recipes/imx-gpu-viv/glproto.pc b/recipes/imx-gpu-viv/glproto.pc new file mode 100644 index 0000000..560ad98 --- /dev/null +++ b/recipes/imx-gpu-viv/glproto.pc @@ -0,0 +1,9 @@ +prefix=/usr +exec_prefix=/usr +libdir=/usr/lib +includedir=/usr/include + +Name: GLProto +Description: GL extension headers +Version: 1.4.16 +Cflags: -I${includedir} diff --git a/recipes/imx-gpu-viv/vg.pc b/recipes/imx-gpu-viv/vg.pc new file mode 100644 index 0000000..7c00def --- /dev/null +++ b/recipes/imx-gpu-viv/vg.pc @@ -0,0 +1,12 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=/usr/lib +includedir=/usr/include + +Name: vg +Description: Vivante OpenVG 1.1 library +Requires.private: +Version: 8.0 +Libs: -L${libdir} -lOpenVG -lEGL -lGAL +Libs.private: -lpthread -lrt +Cflags: -I${includedir} diff --git a/recipes/imx-gpu-viv/vg_x11.pc b/recipes/imx-gpu-viv/vg_x11.pc new file mode 100644 index 0000000..94fb91e --- /dev/null +++ b/recipes/imx-gpu-viv/vg_x11.pc @@ -0,0 +1,12 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=/usr/lib +includedir=/usr/include + +Name: vg +Description: Vivante OpenVG 1.1 library +Requires.private: libdrm x11 xext xdamage xfixes xcb +Version: 8.0 +Libs: -L${libdir} -lOpenVG -lEGL -lGAL +Libs.private: -lpthread -lrt +Cflags: -I${includedir} diff --git a/recipes/imx-gpu-viv/wayland-egl.pc b/recipes/imx-gpu-viv/wayland-egl.pc new file mode 100644 index 0000000..ba1b898 --- /dev/null +++ b/recipes/imx-gpu-viv/wayland-egl.pc @@ -0,0 +1,10 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: wayland-egl +Description: Bind the driver EGL to the Wayland API +Version: 1.0.0 +Libs: -L${libdir} -lEGL +Cflags: -I${includedir} diff --git a/recipes/imx-gpu-viv/wayland-viv.pc b/recipes/imx-gpu-viv/wayland-viv.pc new file mode 100644 index 0000000..3fdedd0 --- /dev/null +++ b/recipes/imx-gpu-viv/wayland-viv.pc @@ -0,0 +1,10 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: Wayland Vivante Lib +Description: Wayland server side library for Vivante's EGL driver +Version: 0.1 +Cflags: -I${includedir}/wayland-viv +Libs: -L${libdir} -lwayland-viv diff --git a/recipes/imx-gpu-viv_5.0.11.p7.1-hfp.oe b/recipes/imx-gpu-viv_5.0.11.p7.1-hfp.oe new file mode 100644 index 0000000..2bd7e09 --- /dev/null +++ b/recipes/imx-gpu-viv_5.0.11.p7.1-hfp.oe @@ -0,0 +1,5 @@ +# Copyright (C) 2013, 2014 Freescale Semiconductor +# Released under the MIT license (see COPYING.MIT for the terms) + +require imx-gpu-viv.inc + diff --git a/recipes/imx-gpu-viv_5.0.11.p7.1-hfp.oe.sig b/recipes/imx-gpu-viv_5.0.11.p7.1-hfp.oe.sig new file mode 100644 index 0000000..091a06c --- /dev/null +++ b/recipes/imx-gpu-viv_5.0.11.p7.1-hfp.oe.sig @@ -0,0 +1 @@ +bbe19c0c33a8cfbe4d91d52f899ac7f2a3f72628 imx-gpu-viv-5.0.11.p7.1-hfp.bin