[[PageOutline]] = Ventana Graphics Capabilities The IMX6 CPU contains the following hardware graphics accelerators: * IPU - Image Processing Unit * VPU - Video Processing Unit * GPU - Graphics Processing Unit [=#ipu] == IPU - Image Processing Unit The Image Processing Unit contains hardware support for the following: * Image Re-sizing and Blending * Image Enhancement * Image Inversion / Rotation Software support: * The Gateworks Yocto BSP contains an IPU driver with a [https://github.com/Gateworks/linux-imx6/blob/gateworks_3.10.53_1.1.0_ga/include/uapi/linux/ipu.h userspace ioctl API] * The IPU driver API is used by the gst-fsl-plugins and gstreamer-imx Gstreamer plugins * Other examples can be found here: * ​https://community.freescale.com/docs/DOC-94961 * https://github.com/rogeriorps/ipu-examples * imx-test package ​http://downloads.yoctoproject.org/mirror/sources/imx-test-5.2.tar.gz [=#vpu] == VPU - Video Processing Unit (Codec Support) The Video Processing Unit in the IMX6 is a CODA960 licensed IP block provided by Chips&Media supporting the following codecs: Encode: * H.264 BP/CBP * H.263 V2 * MPEG-4 SP * MPEG-2 * MJPEG Baseline Decode: * MPEG-2 MP/HP * H.264 BP/MP/HP * H.264 MVC BP/MP/HP * VC1 SP/MP/AP * MPEG-4/Xvid SP/ASP * DivX v3/4/5/6 * H.263 V2 * MJPEG Baseline * VP6/VebM VP8 Performance: * IMX6SOLO/DUALLITE (IMX6SDL): * HD 1080p30Hz + D1 decode * HD 1080p30Hz or 2x 720p encode * IMX6DUAL/I.MX6QUAD (IMX6DQ) (2 IPU's): * HD 1080p60Hz + D1 or 2x 1080p30Hz Decode * HD 1080p30Hz or 2x 720p encode Software support: * Yocto BSP packages: * firmware-imx-vpu-imx6q - contains firmware (/lib/firmware/vpu/vpu_fw_imx6q.bin) for IMX6DUAL/IMX6QUAD * firmware-imx-vpu-imx6d - contains firmware (/lib/firmware/vpu/vpu_fw_imx6d.bin) for IMX6DUALLITE/IMX6SOLO * libfslvpuwrap3 / libvpu4 - libraries * gst-fsl-plugin - gstreamer plugin support for IMX6 VPU * libfslcodec-* - various gstreamer libraries Documentation: * Yocto BSP's - i.MX_6_VPU_Application_Programming_Interface_Linux_Reference_Manual.pdf (from the Freescale i.MX6 Yocto BSP releases which you must download from Freescale) References: * ​[https://community.freescale.com/servlet/JiveServlet/download/317735-256858/VPU_API_RM_L3.0.35_1.1.0.pdf Freescale IMX6VPUAPI] documents the VPU API - This is from the LINUXDOCS_BUNDLE downloadable from Freescale's IMX6 site - check there for the most recent version [=#gpu] == GPU - Graphics Processing Unit The IMX6 contains 2D and 3D GPU support from Vivante with some variations based on the specific IMX SoC: * IMX6DUAL/QUAD: - Vivante GC2000 (3D GPU) * Clock: 600-800MHz (the IMX6 clocks this at 533MHz) * 176Mtri/s * 1000Mpxl/s * OpenGL ES 1.1/2.0/3.0 * OpenCL 1.1 EP * Cores: 1 * Shaders: 4 (Vec-4) and 16 (Vec-1) - Vivante GC355 (2D GPU - vector graphics) * 300Mpxl/s * OpenVG 1.1 - Vivante GC320 (2D GPU - blit) * 600Mpxl/s * IMX6DUALLITE/SOLO: - Vivante GC880 GPU * Clock: 600-800MHz (the IMX6 clocks this at 400MHz) * 53Mtri/s * 266Mpxl/s * OpenGL ES 1.1/2.0/3.0 * Cores: 1 * Shaders: 1 (Vec-4) and 4 (Vec-1) * OpenVG 1.1 (no GC320 on this SoC, so 2D vector graphics is through the GC880) - Vivante GC320 (2D GPU - blit) * 600Mpxl/s According to Freescale this GPU supports the following open standards: * OpenCL 1.1 Embedded Profile (EP) (Open Computing Language - framework for writing programs that execute across a heterogeneous platform consisting of CPUs, GPUs, DSPs, etc) * OpenGL ES 1.1/2.0 (Open Graphics Library - for 2D and 3D vector graphics) * OpenVG 1.1 (Vector Graphics Acceleration) Software Support: * Yocto BSP packages: - gpu-viv-bin-mx6q - xf86-video-imxfb-vivante - accelerated X11 server using the GPU * Documentation: - Yocto v1.3 - i.MX_6_G2D API.pdf (from the Freescale i.MX6 LTIB L3.0.35_1.0.0-GA BSP release which you must download from Freescale) - Yocto v1.6 / v1.7 - i.MX_6_G2D_API_User's_Guide.pdf (from the Freescale i.MX6 Yocto L3.10.17_1.0.0-GA BSP release which you must download from Freescale) - Yocto master - i.MX_6_Graphics_User's_Guide.pdf (from the Freescale i.MX6 Yocto L3.10.53_1.1.0-GA BSP release which you must download from Freescale) - Android JB4.3 - i.MX_6_G2D_API_User_Guide.pdf (from the Freescale i.MX6 Android JB4.3_1.1.0-GA BSP release which you must download from Freescale) - Android KK4.4.3 - i.MX_6_Graphics_User's_Guide.pdf (from the Freescale i.MX6 Android KK4.4.3_2.0.0-GA BSP release which you must download from Freescale)