imx-gpu-viv: add G2D libs and GPU tools selection
authorGary Bisson <gary.bisson@boundarydevices.com>
Mon, 21 Sep 2015 13:45:16 +0000 (15:45 +0200)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Mon, 12 Oct 2015 21:40:18 +0000 (23:40 +0200)
GPU package now includes libraries for GPU2D as well as several tools to
monitor and debug the GPUs.

GPU2D libraries have been tested with the example provided in the
package:
 # /usr/share/examples/fsl-samples/g2d/overlay_test/g2d_overlay_test
 Overlay rendering time 53861us .

The tools have been tested with the following commands:
 # cd /usr/share/examples/viv_samples/vdk/
 # apitrace trace --api egl ./tutorial7 &
 # gmem_info
 ... display memory use per PID ...
 # killall tutorial7
 # apitrace replay tutorial7.trace
 # eglretrace tutorial7.trace

[Thomas: tweak the installation logic to be more explicit about paths
being copied, and to use cp -dpfr consistently.]

Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/freescale-imx/imx-gpu-viv/Config.in
package/freescale-imx/imx-gpu-viv/imx-gpu-viv.mk

index 2a0cf84e1c850ff63acbf1c8e6287c1b948ec3d8..1c00eaa8c65832e4f70f9cdfca2c09586926aa3d 100644 (file)
@@ -58,6 +58,16 @@ config BR2_PACKAGE_PROVIDES_LIBGLES
 config BR2_PACKAGE_PROVIDES_LIBOPENVG
        default "imx-gpu-viv"
 
+config BR2_PACKAGE_IMX_GPU_VIV_APITRACE
+       bool "install apitrace tools"
+       select BR2_PACKAGE_IMX_GPU_VIV_G2D
+       help
+         Copy the apitrace tool to the target. Apitrace consists
+         of a set of tools to trace, replay and/or inspect OpenGL,
+         OpenGL ES APIs calls
+
+         http://apitrace.github.io/
+
 config BR2_PACKAGE_IMX_GPU_VIV_EXAMPLES
        bool "install examples"
        help
@@ -65,4 +75,15 @@ config BR2_PACKAGE_IMX_GPU_VIV_EXAMPLES
 
          Warning: examples take approximately 150 MB of disk space.
 
+config BR2_PACKAGE_IMX_GPU_VIV_G2D
+       bool "install G2D libraries"
+       help
+         Copy the GPU2D libraries to the target.
+
+config BR2_PACKAGE_IMX_GPU_VIV_GMEM_INFO
+       bool "install gmem_info tool"
+       help
+         Copy the gmem_info tool to the target which provides
+         information about GPU memory consumption.
+
 endif
index aa1e3b60a8d00b9bef13d13a16fc2fbb28526460..a66c82eefca089b0b3adfc170a151e659520fa5f 100644 (file)
@@ -62,9 +62,17 @@ define IMX_GPU_VIV_FIXUP_FB_HEADERS
 endef
 endif
 
+ifeq ($(BR2_PACKAGE_IMX_GPU_VIV_G2D),y)
+define IMX_GPU_VIV_INSTALL_G2D_STAGING
+       cp -dpfr $(@D)/g2d/usr/include/* $(STAGING_DIR)/usr/include/
+       cp -dpfr $(@D)/g2d/usr/lib/* $(STAGING_DIR)/usr/lib/
+endef
+endif
+
 define IMX_GPU_VIV_INSTALL_STAGING_CMDS
        cp -r $(@D)/gpu-core/usr/* $(STAGING_DIR)/usr
        $(IMX_GPU_VIV_FIXUP_FB_HEADERS)
+       $(IMX_GPU_VIV_INSTALL_G2D_STAGING)
        for lib in egl glesv2 vg; do \
                $(INSTALL) -m 0644 -D \
                        $(@D)/gpu-core/usr/lib/pkgconfig/$${lib}.pc \
@@ -72,6 +80,20 @@ define IMX_GPU_VIV_INSTALL_STAGING_CMDS
        done
 endef
 
+ifeq ($(BR2_PACKAGE_IMX_GPU_VIV_APITRACE),y)
+ifeq ($(IMX_GPU_VIV_LIB_TARGET),x11)
+define IMX_GPU_VIV_INSTALL_APITRACE
+       cp -dpfr $(@D)/apitrace/x11/usr/bin/* $(TARGET_DIR)/usr/bin/
+       cp -dpfr $(@D)/apitrace/x11/usr/lib/* $(TARGET_DIR)/usr/lib/
+endef
+else
+define IMX_GPU_VIV_INSTALL_APITRACE
+       cp -dpfr $(@D)/apitrace/non-x11/usr/bin/* $(TARGET_DIR)/usr/bin/
+       cp -dpfr $(@D)/apitrace/non-x11/usr/lib/* $(TARGET_DIR)/usr/lib/
+endef
+endif
+endif
+
 ifeq ($(BR2_PACKAGE_IMX_GPU_VIV_EXAMPLES),y)
 define IMX_GPU_VIV_INSTALL_EXAMPLES
        mkdir -p $(TARGET_DIR)/usr/share/examples/
@@ -79,11 +101,26 @@ define IMX_GPU_VIV_INSTALL_EXAMPLES
 endef
 endif
 
+ifeq ($(BR2_PACKAGE_IMX_GPU_VIV_G2D),y)
+define IMX_GPU_VIV_INSTALL_G2D
+       cp -dpfr $(@D)/g2d/usr/lib/* $(TARGET_DIR)/usr/lib/
+endef
+endif
+
+ifeq ($(BR2_PACKAGE_IMX_GPU_VIV_GMEM_INFO),y)
+define IMX_GPU_VIV_INSTALL_GMEM_INFO
+       cp -dpfr $(@D)/gpu-tools/gmem-info/usr/bin/* $(TARGET_DIR)/usr/bin/
+endef
+endif
+
 # On the target, remove the unused libraries.
 # Note that this is _required_, else ldconfig may create symlinks
 # to the wrong library
 define IMX_GPU_VIV_INSTALL_TARGET_CMDS
+       $(IMX_GPU_VIV_INSTALL_APITRACE)
        $(IMX_GPU_VIV_INSTALL_EXAMPLES)
+       $(IMX_GPU_VIV_INSTALL_G2D)
+       $(IMX_GPU_VIV_INSTALL_GMEM_INFO)
        cp -a $(@D)/gpu-core/usr/lib $(TARGET_DIR)/usr
        for lib in EGL GAL VIVANTE GLESv2; do \
                for f in $(TARGET_DIR)/usr/lib/lib$${lib}-*.so; do \