wiki:ventana/gpu

Version 2 (modified by Tim Harvey, 2 months ago) (diff)

added details about vivante driver vs etnaviv driver

IMX6 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)

IMX6 GPU Software Support

IMX6 GPU support was added to the mainline Linux kernel in the form of the reverse engineered 'etnaviv' driver in Linux 4.5.

Prior to that, Freescale had patches for drivers that use some pre-compiled libraries. This is the case for the Gateworks 3.14 Linux kernel used for the Gateworks Yocto, Android, and Ubuntu Trusty (14.04) BSPs:

  • 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)