Vivante GCNANO GPU overview

来自百问网嵌入式Linux wiki




Introduction

STMicroelectronics STM32MP1平台具有基于Vivante Gcnano GPUOpenGLES硬件IP。.
您可以在Vivante GCNANO网页上找到更多信息。[1][2]

Features

Supported open standards

Vivante Gcnano GPU 与以下Khronos的开放标准3D图形[3]:
  • OpenGLES 2.0
  • OpenGLES 1.1
  • OpenVG 1.1
  • EGL 1.4

Vivante Gcnano GPU configuration

  • Core Clock 264MHz
  • Shader Clock 264MHz
  • Pixel Rate 264 MPixel/sec
  • Triangle Rate 26.4 M tri/sec
  • Vertex rate 66 M vtx/sec
  • 1 shader core (Vec 4)
  • 2.112 GFLOPS shader

GPU softwares

GPU software structure.png

Vivante Gcnano GPU userland libraries

excepted if customers signed a NDA with Vivante (please contact Vivante if you need these library source codes). The Gcnano libraries (userland) are:
  • OpenGLES 1.1 library
  • OpenGLES 2.0 library
  • EGL 1.4 library
  • gbm library
  • GAL library
  • GLSLC and VSC libraries
  • VDK library

Vivante Gcnano kernel driver

Source code is available for all customers in all OpenSTLinux baselines.

To access source code:

devtool modify gcnano-driver-stm32mp

Source code is then downloaded here:

  • <your_view>/build*/workspace/sources/gcnano-driver-stm32mp


Refer to OpenEmbedded - devtool to know more about devtool.

Additional information

  • STMicroelectronics provides debug Vivante Gcnano libraries according to any baseline version, allowing customers to debug/analyze their applications with the Vivante Tool Kit (VTK). Please have a look to the article 如何使用VTK调试Gcnano GPU for more details.

Useful links

EGL

Supported EGL backend

From VIVANTE_GAL3D_Unified_Src_drv_6.1.x, Vivante delivery, Vivante Gcnano libraries support both DRM/GBM and Wayland backends.
Refer to EGL backends article for details.

EGL texture 0-copy

Gcnano supports the EGL texture 0-copy extension.

EGL texture 0-copy extension allows an EGL application to share a texture buffer with the GPU by avoiding to copy the texture from application to the GPU.

Refer to EGL texture 0-copy article for more details.

Graphic Benchmarks

Please refer to the How to test and benchmark OpenGLES article.

Debugging

Please have a look to following articles: