I.MX Graphics User’s Guide User's
User Manual:
Open the PDF directly: View PDF
Page Count: 170 [warning: Documents this large are best viewed by clicking the View PDF Link!]
- Chapter 1 Introduction
- Chapter 2 i.MX G2D API
- Chapter 3 i.MX EGL and OGL Extension Support
- Chapter 4 i.MX Framebuffer API
- Chapter 5 OpenCL
- 5.1 Overview
- 5.2 Vivante OpenCL implementation
- 5.3 Optimization for OpenCL embedded profile
- 5.3.1 Using preferred multiple of work-group size
- 5.3.2 Using multiple work-groups of reduced size
- 5.3.3 Packing work-item data
- 5.3.4 Improving locality
- 5.3.5 Minimizing use of 1 KB local memory
- 5.3.6 Using 16 byte memory Read/Write size
- 5.3.7 Useing _RTZ rounding mode
- 5.3.8 Using native functions
- 5.3.9 Using buffers instead of images
- 5.4 OpenCL Debug messages
- Chapter 6 OpenVX Introduction
- Chapter 7 Vulkan
- Chapter 8 Multiple GPUs and Virtualization
- Chapter 9 G2D compositor on Weston
- Chapter 10 XServer Video Driver
- Chapter 11 Advanced GPU Configuration
- Chapter 12 Vivante Software Tool Kit
- 12.1 Vivante Tool Kit overview
- 12.2 vEmulator
- 12.2.1 Supported operating systems and graphics hardware
- 12.2.2 vEmulator components
- 12.2.3 vEmulator for OpenCL
- 12.2.4 Supported extensions
- 12.2.5 vEmulator environment variable setup
- 12.2.6 Sample code overview
- 12.2.7 Building and running the code examples
- 12.2.8 OpenGL ES 1.1 examples
- 12.2.8.1 Tutorial1: rotating three-color triangle
- 12.2.8.2 Tutorial2: rotating six-color cube
- 12.2.8.3 Tutorial3: rotating multi-textured cube
- 12.2.8.4 Tutorial4: lighting and fog
- 12.2.8.5 Tutorial5: blending and bit-mapped fonts
- 12.2.8.6 Tutorial6: particles using point sprites
- 12.2.8.7 Tutorial7: vertex buffer objects
- 12.2.9 OpenGL ES 2.0 examples
- 12.3 vShader
- 12.4 vCompiler
- 12.5 vTexture
- 12.6 vProfiler and vAnalyzer
- 12.6.1 Fundamentals of performance optimization
- 12.6.2 vProfiler setup for the Linux OS
- 12.6.3 vProfiler setup for the Android platform
- 12.6.4 vProfiler setup for the QNX OS
- 12.6.5 vProfiler collecting performance data
- 12.6.6 vAnalyzer viewing and analyzing a run-time profile
- 12.6.7 vAnalyzer charts
- 12.6.8 vAnalyzer viewers
- 12.7 Debug and performance counters
- Chapter 13 GPU Tools
- Chapter 14 GPU Memory Introduction
- Chapter 15 Application Programming Recommendations
- 15.1 Understand the system configuration and target application
- 15.2 Optimize off chip data transfer such as accessing off-chip DDR memory/mobile DDR memory
- 15.3 Avoid W-Clipping issue in the Application Program
- 15.4 Avoid GPU hang and data corruption when use occlusion query
- 15.5 Avoid random cache or memory accesses
- 15.6 Optimize your use of system memory
- 15.7 Target a fixed frame rate that is visibly smooth
- 15.8 Minimize GL state changes
- 15.9 Batch primitives to minimize the number of draw calls
- 15.10 Perform calculations per vertex instead of per fragment/pixel
- 15.11 Enable early-Z, hierarchical-Z and back face culling
- 15.12 Use branching carefully
- 15.13 Do not use static or stack data as vertex data - use VBOs instead
- 15.14 Use dynamic VBO if data is changing frame by frame
- 15.15 Tessellate your data so that Hierarchical Z (HZ) can do its job
- 15.16 Use dynamic textures as a texture cache (texture atlas)
- 15.17 If you use many small triangle strips, stitch them together
- 15.18 Specify EGL configuration attributes precisely
- 15.19 Use aligned texture/render buffers
- 15.20 Disable MSAA rendering unless high quality is needed
- 15.21 Avoid partial clears
- 15.22 Avoid mask operations
- 15.23 Use MIPMAP textures
- 15.24 Use compressed textures if constricted by RAM/ROM budget
- 15.25 Draw objects from near to far if possible
- 15.26 Avoid indexed triangle strips.
- 15.27 Vertex attribute stride should not be larger than 256 bytes
- 15.28 Avoid binding buffers to mixed index/vertex array
- 15.29 Avoid using CPU to update texture/buffer contexts during render
- 15.30 Avoid frequent context switching
- 15.31 Optimize resources within a shader
- 15.32 Avoid using glScissor Clear for small regions
- 15.33 Use PRE to accelerate data transfer
- 15.34 i.MX 8QuadMax dual-GPU performance
- Chapter 16 Demo Framework
- 16.1 Summaries
- 16.2 Introduction
- 16.3 Design overview
- 16.4 High level overview
- 16.5 Demo application details
- 16.6 Helper Class Overview
- 16.7 Android SDK+NDK on Windows OS build guide
- 16.8 Ubuntu build guide
- 16.9 Windows OS build guide
- 16.10 Yocto build guide
- 16.11 FslContentSync.py notes
- 16.12 Roadmap – Upcoming features
- 16.13 Known limitations
- Chapter 17 Environment Variables Summary