[meta-freescale] [PATCH 02/32] imx-gpu-viv: Update to 6.2.4.p1.2

Otavio Salvador otavio at ossystems.com.br
Mon Jun 25 12:30:02 PDT 2018


From: Fabio Berton <fabio.berton at ossystems.com.br>

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 <fabio.berton at ossystems.com.br>
Signed-off-by: Tom Hochstein <tom.hochstein at nxp.com>
Signed-off-by: Otavio Salvador <otavio at ossystems.com.br>
---

 .../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.18.0



More information about the meta-freescale mailing list