From 64707285de7ee0e9abf3de7f93b3ecd2bfaee068 Mon Sep 17 00:00:00 2001 From: Fabio Berton Date: Mon, 11 Jun 2018 11:23:26 -0300 Subject: [PATCH] imx-gpu-viv: Update to 6.2.4.p1.2 Key Features of the Vivante 6.x Driver Series - Full support for Khronos OpenGL ES 3.2 API. The new OpenGL ES 3.2 and OpenGL ES Shading Language 3.20 specifications bring AEP, plus additional functionality, into core OpenGL ES. Vivante OpenGL ES 3.2 implementation has passed Khronos OpenGL ES 3.2 Conformance Test. And Vivante GC7000XS* GPU core has been certified by Khronos as an OpenGL ES 3.2 compliant product. - Backward Compatible with 5.x and 4.x Drivers. Existing OpenGL ES 3.x/2.0 applications can run on these drivers without any changes. 6.2.4P1 GPU Release (8MQ GA) ======================================== Key Features ============ - OpenCL improvements - Wayland-weston DRM Support - Wayland-weston with 2D accelerated renderer - Wayland-Weston EGL DRM Modifier support - Wayland-Weston EGL Framebuffer compression - Wayland-Weston DMABUF support - OpenCV tests with OpenCL - Add GPU DRM support - GLES CTS version 3.2.4 6.2.4P1 Improvements ================== OCL: MGS-3255-34 add opencl memory optimzation OCL: MGS-3255-33 fix opencl test buffer copy failure OCL: MGS-3640 fix opencl corruption for arm_compute_library OCL: MGS-3710 SoftISP meet CL_INVALID_WORK_GROUP_SIZE (-54) on mscale and qxp OCL: cache invalidate for uncached buffer get accesing user space memory outsied uaccess.h error OCL: ovx and ocl running together EGL MGS-3711 met display blurred when run weston-nested EGL: Enable extension EGL_EXT_image_dma_buf_import_modifiers EGL: weston-nested met process aborted and core dump EGL: MGS-3399 fix wayland egl resize cts failure EGL: support direct rendering on external drm buffer EGL: MGS-3840-2 fix 6qp display flicker with fbdev test EGL: MGS-3791 imx6q shared egl context rendering issue EGL: MGS-3744 fix GC355 OpenVG flicker on wayland EGL: MA-11528 Support enable framebuffer direct rendering GLES3.0: 6QP FB have CTS failures with ESCTS 3.2.2.0 GLES: MGS-3570 glGenerateMipmap takes too much time on 5.x/6.x driver Weston: Disable surface compress if g2d-renderer GBM: Enable DRM compression for mscale board GBM: MGS-3625 6.2.4.p1: Fix xserver build break with GBM change GBM :MGS-3694 enable fb fd and tile status fd in GPU and DCSS on wayland Android:MA-11232 Enable HDR10 support on imx8mq platform. Android: MA-10844 GPU driver pass build after refine some NXP git path Android : MA-11101 Add HAL_PIXEL_FORMAT_NV12_TILED format to support VPU tile QNX:iMX8QM MGS-2906 VDK app fail if it's started as the first app after screen QNX:iMX8QM MGS-3289 [iMX8] Rotation using blitter seems broken QNX:iMX8QM MGS-3338 - Deadlock seen with Screen API test QNX:iMX8QM MGS-3323 QNX -[iMX8] Fix NV12 handling iMX8QM Disable depth compression for LPDDR4 parts OCL: MGS-3848-5 OCL1.2: test_image_streams failures OCL:MGS-3832 cl_convolution of ACL cause MMU exception OVX: MGS-3579 Fix the invalid scope of VX graph for 8QM OVG: MGS-3826 met core dump and system prompt out of memory when do OpenVG memory leak test. OVG: MGS-3750 fix gc355 openvg stuck issue on 6q and 6qp OVG: MGS-3791 VGCTS failed to run on i.MX6SL wayland OGL: MGS-3570 glGenerateMipmap takes too much time on 5.x/6.x driver OGL: MGS-3741 glmark2 test met error message General: MGS-3848 refinements for pm and isr General: MGS-3840 Display resume back very slow and has snow screen after suspend and resume. General: MGS-3751 met GPU core dump when run multiple es20 sdk apps Known Issues ============ MGS-3770 [6q/6qp] can not generate correct reference file after do api retrace and sometimes met stuck - Need wayland support in waffle. will be addressed in next release MGS-3747 [6dl/6q] X11: copytex can't work after "Qt5_NMapper" app test. YOCIMX-2354 Some qt3-3d demos not work. Issue related to QTwayland in 5.8 later MGS-3739 can not pass webgl 1.0.2 CTS test. Chromium 64 known issue. Same reproduced on desktop Signed-off-by: Fabio Berton Signed-off-by: Tom Hochstein Signed-off-by: Otavio Salvador (cherry picked from commit 44753dac76df485730f4a50466ff816886e3932e) --- .../imx-gpu-viv/imx-gpu-viv-6.inc | 70 ++++++++++++++----- ...2.bb => imx-gpu-viv_6.2.4.p1.2-aarch32.bb} | 4 +- 2 files changed, 53 insertions(+), 21 deletions(-) rename recipes-graphics/imx-gpu-viv/{imx-gpu-viv_6.2.2.p0-aarch32.bb => imx-gpu-viv_6.2.4.p1.2-aarch32.bb} (66%) diff --git a/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc b/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc index b6f5f24e..f47bd973 100644 --- a/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc +++ b/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc @@ -1,11 +1,11 @@ # Copyright (C) 2012-2016 Freescale Semiconductor -# Copyright (C) 2012-2016 O.S. Systems Software LTDA. +# Copyright (C) 2012-2018 O.S. Systems Software LTDA. # Released under the MIT license (see COPYING.MIT for the terms) DESCRIPTION = "GPU driver and apps for i.MX" 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', \ @@ -13,6 +13,10 @@ DEPENDS += " \ '', d), d)} \ " DEPENDS += "libdrm" +DEPENDS += " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxcb libxshmfence libxxf86vm', \ + '', d)} \ +" # imx-gpu-viv does not provide everything it needs to for virtual/libgl # on x11 backend or on Wayland backend with XWayland support. @@ -20,9 +24,23 @@ DEPENDS += "libdrm" DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'mesa', '', d)}" EXTRA_PROVIDES = "" -EXTRA_PROVIDES_append_imxgpu3d = " virtual/libgl virtual/libgles1 virtual/libgles2" -EXTRA_PROVIDES_append_mx6q = " virtual/opencl-icd opencl-headers" -PROVIDES += "imx-gpu-viv virtual/wayland-egl virtual/libgal-x11 virtual/egl virtual/libopenvg ${EXTRA_PROVIDES}" +EXTRA_PROVIDES_append_imxgpu3d = " \ + virtual/libgl \ + virtual/libgles1 \ + virtual/libgles2 \ +" +" +PROVIDES += " \ + imx-gpu-viv \ + virtual/libgal-x11 \ + opencl-headers \ + virtual/egl \ + virtual/libopenvg \ + virtual/opencl-headers \ + virtual/opencl-icd \ + virtual/wayland-egl \ + ${EXTRA_PROVIDES} \ +" RPROVIDES_${PN}_imxgpu3d += "imx-gpu-viv" @@ -73,16 +91,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",)): @@ -105,6 +122,10 @@ python __anonymous() { IS_MX6SL = "0" IS_MX6SL_mx6sl = "1" +PACKAGE_FP_TYPE = "hardfp" + +GLES3_HEADER_REMOVALS = "gl31.h gl32.h" + do_install () { install -d ${D}${libdir} install -d ${D}${includedir} @@ -115,6 +136,8 @@ 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 @@ -127,10 +150,6 @@ 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/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/gbm.pc ${D}${libdir}/pkgconfig/gbm.pc if [ "${USE_X11}" = "yes" ]; then @@ -176,7 +195,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 - mv ${D}${libdir}/libVDK-${backend}.so ${D}${libdir}/libVDK.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* @@ -184,10 +212,14 @@ do_install () { ln -sf libGLESv2.so.2.0.0 ${D}${libdir}/libGLESv2.so.2 ln -sf libGLESv2.so.2.0.0 ${D}${libdir}/libGLESv2.so + 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 - rm ${D}${libdir}/libgc_wayland_protocol.* - rm ${D}${libdir}/libwayland-viv.* + find ${D}${libdir} -name "libgc_wayland_protocol.*" -exec rm '{}' ';' + find ${D}${libdir} -name "libwayland-viv.*" -exec rm '{}' ';' fi for i in wl x11 fb dri; do @@ -234,7 +266,6 @@ 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-dev += "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'libwayland-egl-imx-dev', '', d)}" FILES_libgal-imx = "${libdir}/libGAL${SOLIBS} ${libdir}/libGAL_egl${SOLIBS}" @@ -290,8 +321,9 @@ INSANE_SKIP_libopenvg-imx += "dev-so" FILES_libopenvg-imx = "${libdir}/libOpenVG*${SOLIBS}" FILES_libopenvg-imx-dev = "${includedir}/VG ${libdir}/libOpenVG*${SOLIBSDEV} ${libdir}/pkgconfig/vg.pc" -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" diff --git a/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.2.2.p0-aarch32.bb b/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.2.4.p1.2-aarch32.bb similarity index 66% rename from recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.2.2.p0-aarch32.bb rename to recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.2.4.p1.2-aarch32.bb index 9f3b7cc1..05004570 100644 --- a/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.2.2.p0-aarch32.bb +++ b/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.2.4.p1.2-aarch32.bb @@ -4,8 +4,8 @@ require recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc -SRC_URI[md5sum] = "7d43f73b8bc0c1c442587f819218a1d5" -SRC_URI[sha256sum] = "4f93a4412c93ca5959aa2437bfed2ecbaf983b5b272be5977f76a967de5db150" +SRC_URI[md5sum] = "280990aab8dee2ee9ce508cbf0d6833f" +SRC_URI[sha256sum] = "dddadd164bede4793409ccfb636324dd73862c33458db66a5860f126bada25dc" PACKAGE_FP_TYPE = "hardfp" -- 2.40.1