Freedreno status report: FOSS graphics on Adreno/Snapdragon

Rob Clark

24 March 2015

First, an overview of Adreno

First, an overview of Adreno (continued)

Motivation: Lack of FOSS gfx on ARM

Some History… the early days

Some History… Adreno 3xx

Some History… Adreno 3xx (continued)

Some History… Adreno 3xx/4xx

Freedreno and the Linux Graphics Stack (Xorg)

Xorg Architecture

Xorg Architecture

Freedreno and the Linux Graphics Stack (Wayland)

Wayland Architecture

Wayland Architecture

Freedreno and the Android Graphics Stack

Coming Soon, hopefully?

Freedreno Gallium Internals

Gallium Architecture

Gallium Architecture

Freedreno Tiling

Freedreno Queries (Basic Concept)

Freedreno Queries (With Tiling)

see https://github.com/freedreno/freedreno/wiki/Queries

Debugging… $FD_MESA_DEBUG

[robclark@reptile:~]$ FD_MESA_DEBUG=help glxinfo | head
debug_get_flags_option: help for FD_MESA_DEBUG:
|     msgs [0x00000001] Print debug messages
|   disasm [0x00000002] Dump TGSI and adreno shader disassembly
|   dclear [0x00000004] Mark all state dirty after clear
|    flush [0x00000008] Force flush after every draw
|   noscis [0x00000010] Disable scissor optimization
|   direct [0x00000020] Force inline (SS_DIRECT) state loads
| nobypass [0x00000040] Disable GMEM bypass
| fraghalf [0x00000080] Use half-precision in fragment shader
|    nobin [0x00000100] Disable hw binning
|    noopt [0x00000200] Disable optimization passes in compiler
|  optmsgs [0x00000400] Enable optimizer debug messages
|  optdump [0x00000800] Dump shader DAG to .dot files
|  glsl120 [0x00001000] Temporary flag to force GLSL 120 (rather than 130) on a3xx+
|     nocp [0x00002000] Disable copy-propagation

Debugging… additional tips

Tools

On the road to GL 3.0 / GLES 3.0

GL 3.0 / GLES 3.0 TODO List

Compiler - ir3

How to get it

Help wanted

Devices

Inforce 6540 SBC (ifc6540)
Snapdragon 805 - APQ8084 - a420
Inforce 6410 SBC (ifc6410)
Snapdragon 600 - APQ8064 - a320
DragonBoard 410c
Snapdragon 410 - APQ8016 - a306
Compulab utilite2
Snapdragon 600 - APQ8064 - a320

Resources

Questions

Any questions?