|
|
|
|
@ -5,7 +5,7 @@
|
|
|
|
|
DESCRIPTION = "GPU driver and apps for imx"
|
|
|
|
|
SECTION = "libs"
|
|
|
|
|
LICENSE = "Proprietary"
|
|
|
|
|
LIC_FILES_CHKSUM = "file://COPYING;md5=08fd295cce89b0a9c74b9b83ed74f671"
|
|
|
|
|
LIC_FILES_CHKSUM = "file://COPYING;md5=75abe2fa1d16ca79f87cde926f05f72d"
|
|
|
|
|
|
|
|
|
|
DEPENDS += \
|
|
|
|
|
"${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', \
|
|
|
|
|
@ -14,7 +14,7 @@ DEPENDS += \
|
|
|
|
|
DEPENDS += \
|
|
|
|
|
"${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxcb libxshmfence libxxf86vm', \
|
|
|
|
|
'', d)}"
|
|
|
|
|
DEPENDS += "libdrm"
|
|
|
|
|
DEPENDS_append_imxdrm = " libdrm wayland"
|
|
|
|
|
|
|
|
|
|
# imx-gpu-viv does not provide everything it needs to for virtual/libgl
|
|
|
|
|
# on x11 backend or on Wayland backend with XWayland support.
|
|
|
|
|
@ -38,9 +38,11 @@ EXTRA_PROVIDES_append_mx8 = " \
|
|
|
|
|
"
|
|
|
|
|
PROVIDES += " \
|
|
|
|
|
imx-gpu-viv \
|
|
|
|
|
libgal-imx \
|
|
|
|
|
virtual/egl \
|
|
|
|
|
virtual/libgal-x11 \
|
|
|
|
|
virtual/libopenvg \
|
|
|
|
|
virtual/opencl-headers \
|
|
|
|
|
virtual/opencl-icd \
|
|
|
|
|
virtual/wayland-egl \
|
|
|
|
|
${EXTRA_PROVIDES} \
|
|
|
|
|
"
|
|
|
|
|
@ -54,7 +56,7 @@ inherit fsl-eula-unpack
|
|
|
|
|
SRC_URI = "${FSL_MIRROR}/${PN}-${PV}.bin;fsl-eula=true"
|
|
|
|
|
|
|
|
|
|
# Note : If you add a package here, to prevent a naming conflict see the python_anonymous() futher below
|
|
|
|
|
PACKAGES =+ "libclc-imx libclc-imx-dev \
|
|
|
|
|
PACKAGES_1 = "libclc-imx libclc-imx-dev \
|
|
|
|
|
libgl-imx libgl-imx-dev \
|
|
|
|
|
libgles-imx libgles-imx-dev \
|
|
|
|
|
libgles2-imx libgles2-imx-dev \
|
|
|
|
|
@ -67,8 +69,10 @@ PACKAGES =+ "libclc-imx libclc-imx-dev \
|
|
|
|
|
libgal-imx libgal-imx-dev \
|
|
|
|
|
libvivante-dri-imx \
|
|
|
|
|
libvsc-imx \
|
|
|
|
|
libgbm-imx libgbm-imx-dev \
|
|
|
|
|
libwayland-viv-imx libwayland-viv-imx-dev \
|
|
|
|
|
"
|
|
|
|
|
PACKAGES_2 = ""
|
|
|
|
|
PACKAGES_2_mx8 = "libgbm-imx libgbm-imx-dev"
|
|
|
|
|
PACKAGES_3 = "libwayland-viv-imx libwayland-viv-imx-dev \
|
|
|
|
|
libgc-wayland-protocol-imx libgc-wayland-protocol-imx-dev \
|
|
|
|
|
libwayland-egl-imx-dev \
|
|
|
|
|
imx-gpu-viv-tools \
|
|
|
|
|
@ -76,6 +80,7 @@ PACKAGES =+ "libclc-imx libclc-imx-dev \
|
|
|
|
|
libvulkan-imx libvulkan-imx-dev \
|
|
|
|
|
libopenvx-imx libopenvx-imx-dev \
|
|
|
|
|
"
|
|
|
|
|
PACKAGES =+ "${PACKAGES_1} ${PACKAGES_2} ${PACKAGES_3}"
|
|
|
|
|
python __anonymous () {
|
|
|
|
|
has_vivante_kernel_driver_support = (d.getVar('MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT', True) or '0')
|
|
|
|
|
if has_vivante_kernel_driver_support != '1':
|
|
|
|
|
@ -94,16 +99,15 @@ INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
|
|
|
|
|
REALSOLIBS := "${SOLIBS}"
|
|
|
|
|
SOLIBS = "${SOLIBSDEV}"
|
|
|
|
|
|
|
|
|
|
# For the packages that make up the OpenGL interfaces, inject variables so that
|
|
|
|
|
# they don't get Debian-renamed (which would remove the -imx suffix).
|
|
|
|
|
#
|
|
|
|
|
# FIXME: All binaries lack GNU_HASH in elf binary but as we don't have
|
|
|
|
|
# the source we cannot fix it. Disable the insane check for now.
|
|
|
|
|
python __anonymous() {
|
|
|
|
|
# FIXME: All binaries lack GNU_HASH in elf binary but as we don't have
|
|
|
|
|
# the source we cannot fix it. Disable the insane check for now.
|
|
|
|
|
packages = d.getVar('PACKAGES', True).split()
|
|
|
|
|
for p in packages:
|
|
|
|
|
d.appendVar("INSANE_SKIP_%s" % p, " ldflags")
|
|
|
|
|
|
|
|
|
|
# For the packages that make up the OpenGL interfaces, inject variables so that
|
|
|
|
|
# they don't get Debian-renamed (which would remove the -imx suffix).
|
|
|
|
|
for p in (("libegl", "libegl1"), ("libgl", "libgl1"),
|
|
|
|
|
("libgles1", "libglesv1-cm1"), ("libgles2", "libglesv2-2"),
|
|
|
|
|
("libgles3",) , ("libvulkan",)):
|
|
|
|
|
@ -131,8 +135,14 @@ IS_MX8_mx8 = "1"
|
|
|
|
|
|
|
|
|
|
PACKAGE_FP_TYPE = "hardfp"
|
|
|
|
|
|
|
|
|
|
HAS_GPU3D = "false"
|
|
|
|
|
HAS_GPU3D_imxgpu3d = "true"
|
|
|
|
|
HAS_GBM = "false"
|
|
|
|
|
HAS_GBM_mx8 = "true"
|
|
|
|
|
|
|
|
|
|
# GLES 3.1 is supported for all i.MX 8
|
|
|
|
|
# GLES 3.2 is supported for i.MX 8QM only
|
|
|
|
|
GLES3_HEADER_REMOVALS = "gl31.h gl32.h"
|
|
|
|
|
GLES3_HEADER_REMOVALS_remove_mx8 = "gl31.h"
|
|
|
|
|
GLES3_HEADER_REMOVALS_remove_mx8qm = "gl32.h"
|
|
|
|
|
|
|
|
|
|
do_install () {
|
|
|
|
|
install -d ${D}${libdir}
|
|
|
|
|
@ -144,9 +154,11 @@ do_install () {
|
|
|
|
|
cp -r ${S}/gpu-demos/opt ${D}
|
|
|
|
|
cp -r ${S}/gpu-tools/gmem-info/usr/bin/* ${D}${bindir}
|
|
|
|
|
|
|
|
|
|
# Use vulkan header from vulkan recipe to support vkmark
|
|
|
|
|
rm -rf ${D}${includedir}/vulkan/vulkan.h
|
|
|
|
|
|
|
|
|
|
install -d ${D}${libdir}/pkgconfig
|
|
|
|
|
if ${HAS_GPU3D}; then
|
|
|
|
|
if ${HAS_GBM}; then
|
|
|
|
|
install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/gbm.pc ${D}${libdir}/pkgconfig/gbm.pc
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
@ -159,9 +171,9 @@ do_install () {
|
|
|
|
|
install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/glesv1_cm.pc ${D}${libdir}/pkgconfig/glesv1_cm.pc
|
|
|
|
|
install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/glesv2.pc ${D}${libdir}/pkgconfig/glesv2.pc
|
|
|
|
|
install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/vg.pc ${D}${libdir}/pkgconfig/vg.pc
|
|
|
|
|
install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/gc_wayland_protocol.pc ${D}${libdir}/pkgconfig/gc_wayland_protocol.pc
|
|
|
|
|
#install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/gc_wayland_protocol.pc ${D}${libdir}/pkgconfig/gc_wayland_protocol.pc
|
|
|
|
|
install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/wayland-egl.pc ${D}${libdir}/pkgconfig/wayland-egl.pc
|
|
|
|
|
install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/wayland-viv.pc ${D}${libdir}/pkgconfig/wayland-viv.pc
|
|
|
|
|
#install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/wayland-viv.pc ${D}${libdir}/pkgconfig/wayland-viv.pc
|
|
|
|
|
|
|
|
|
|
if [ "${USE_X11}" = "yes" ]; then
|
|
|
|
|
|
|
|
|
|
@ -207,7 +219,16 @@ do_install () {
|
|
|
|
|
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-${backend}.so ${D}${libdir}/libGAL.so
|
|
|
|
|
if [ "${USE_WL}" = "yes" ]; then
|
|
|
|
|
# Special case for libVDK on Wayland backend, deliver fb library as well.
|
|
|
|
|
# Need to rename the libraries to avoid the code below that will remove
|
|
|
|
|
# *-fb.so and *-wl.so
|
|
|
|
|
mv ${D}${libdir}/libVDK-fb.so ${D}${libdir}/libVDK-framebuffer.so
|
|
|
|
|
mv ${D}${libdir}/libVDK-wl.so ${D}${libdir}/libVDK-wayland.so
|
|
|
|
|
ln -sf libVDK-wayland.so ${D}${libdir}/libVDK.so
|
|
|
|
|
else
|
|
|
|
|
mv ${D}${libdir}/libVDK-${backend}.so ${D}${libdir}/libVDK.so
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# update libglesv2 as backend dependent
|
|
|
|
|
rm -rf ${D}${libdir}/libGLESv2*
|
|
|
|
|
@ -223,6 +244,9 @@ do_install () {
|
|
|
|
|
install -d ${D}${libdir}/vulkan
|
|
|
|
|
mv ${D}${libdir}/libvulkan-${backend}.so ${D}${libdir}/vulkan/libvulkan_VSI.so
|
|
|
|
|
fi
|
|
|
|
|
for header in ${GLES3_HEADER_REMOVALS}; do
|
|
|
|
|
rm -f ${D}${includedir}/GLES3/${header}
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
# skip packaging wayland libraries if no support is requested
|
|
|
|
|
if [ "${USE_WL}" = "no" ]; then
|
|
|
|
|
@ -274,7 +298,7 @@ FILES_libclc-imx-dev = "${includedir}/CL ${libdir}/libCLC${SOLIBSDEV}"
|
|
|
|
|
INSANE_SKIP_libegl-imx += "dev-so"
|
|
|
|
|
FILES_libegl-imx = "${libdir}/libEGL${REALSOLIBS} ${libdir}/libEGL${SOLIBSDEV} "
|
|
|
|
|
FILES_libegl-imx-dev = "${includedir}/EGL ${includedir}/KHR ${libdir}/pkgconfig/egl.pc"
|
|
|
|
|
RDEPENDS_libegl-imx += "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'libgc-wayland-protocol-imx libwayland-viv-imx libgc-wayland-protocol-imx', '', d)}"
|
|
|
|
|
#RDEPENDS_libegl-imx += "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'libgc-wayland-protocol-imx libwayland-viv-imx libgc-wayland-protocol-imx', '', d)}"
|
|
|
|
|
RDEPENDS_libegl-imx-dev += "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'libwayland-egl-imx-dev', '', d)}"
|
|
|
|
|
|
|
|
|
|
FILES_libgal-imx = "${libdir}/libGAL${SOLIBS} ${libdir}/libGAL_egl${SOLIBS}"
|
|
|
|
|
@ -285,9 +309,9 @@ INSANE_SKIP_libgal-imx += "build-deps"
|
|
|
|
|
|
|
|
|
|
FILES_libvsc-imx = "${libdir}/libVSC${SOLIBS}"
|
|
|
|
|
|
|
|
|
|
FILES_libgbm-imx = "${libdir}/libgbm${SOLIBS} ${libdir}/gbm_viv${SOLIBS}"
|
|
|
|
|
FILES_libgbm-imx-dev = "${libdir}/pkgconfig/gbm.pc ${includedir}/gbm.h ${libdir}/libgbm${SOLIBSDEV}"
|
|
|
|
|
RDEPENDS_libgbm-imx += "libdrm"
|
|
|
|
|
FILES_libgbm-imx_mx8 = "${libdir}/libgbm${SOLIBS} ${libdir}/gbm_viv${SOLIBS}"
|
|
|
|
|
FILES_libgbm-imx-dev_mx8 = "${libdir}/pkgconfig/gbm.pc ${includedir}/gbm.h ${libdir}/libgbm${SOLIBSDEV}"
|
|
|
|
|
RDEPENDS_libgbm-imx_append_mx8 = " libdrm"
|
|
|
|
|
|
|
|
|
|
FILES_libvulkan-imx = "${libdir}/vulkan/libvulkan_VSI${SOLIBS}"
|
|
|
|
|
FILES_libvulkan-imx-dev = "${includedir}/vulkan ${libdir}/vulkan/libvulkan_VSI${SOLIBSDEV}"
|
|
|
|
|
@ -331,8 +355,9 @@ FILES_libopenvg-imx = "${libdir}/libOpenVG*${SOLIBS}"
|
|
|
|
|
FILES_libopenvg-imx-dev = "${includedir}/VG ${libdir}/libOpenVG*${SOLIBSDEV} ${libdir}/pkgconfig/vg.pc"
|
|
|
|
|
RDEPENDS_libopenvg-imx += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd-gpuconfig', '', d)}"
|
|
|
|
|
|
|
|
|
|
FILES_libvdk-imx = "${libdir}/libVDK${SOLIBS}"
|
|
|
|
|
FILES_libvdk-imx = "${libdir}/libVDK*${SOLIBS}"
|
|
|
|
|
FILES_libvdk-imx-dev = "${includedir}/*vdk*.h ${libdir}/libVDK${SOLIBSDEV}"
|
|
|
|
|
INSANE_SKIP_libvdk-imx += "dev-so"
|
|
|
|
|
|
|
|
|
|
FILES_libvivante-dri-imx = "${libdir}/dri/vivante_dri.so"
|
|
|
|
|
RDEPENDS_libvivante-dri-imx = "libdrm"
|
|
|
|
|
@ -340,7 +365,7 @@ RDEPENDS_libvivante-dri-imx = "libdrm"
|
|
|
|
|
INSANE_SKIP_libwayland-viv-imx += "dev-so"
|
|
|
|
|
FILES_libwayland-viv-imx = "${libdir}/libwayland-viv${REALSOLIBS} ${libdir}/libwayland-viv${SOLIBS}"
|
|
|
|
|
FILES_libwayland-viv-imx-dev = "${includedir}/wayland-viv ${libdir})/libwayland-viv${SOLIBSDEV} ${libdir}/pkgconfig/wayland-viv.pc"
|
|
|
|
|
RPROVIDES_libwayland-viv-imx += "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'xf86-video-imxfb-vivante', '', d)}"
|
|
|
|
|
RPROVIDES_libwayland-viv-imx += "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'xf86-video-imx-vivante', '', d)}"
|
|
|
|
|
|
|
|
|
|
INSANE_SKIP_libgc-wayland-protocol-imx += "dev-so"
|
|
|
|
|
FILES_libgc-wayland-protocol-imx = "${libdir}/libgc_wayland_protocol${REALSOLIBS} ${libdir}/libgc_wayland_protocol${SOLIBS}"
|
|
|
|
|
@ -352,3 +377,5 @@ FILES_imx-gpu-viv-tools = "${bindir}/gmem_info"
|
|
|
|
|
|
|
|
|
|
FILES_imx-gpu-viv-demos = "/opt"
|
|
|
|
|
INSANE_SKIP_imx-gpu-viv-demos += "rpaths dev-deps"
|
|
|
|
|
|
|
|
|
|
# COMPATIBLE_MACHINE = "(mx6q|mx6dl|mx6sx|mx6sl|mx8)"
|
|
|
|
|
|