Etnaviv: MSAA working!

All the MSAA (Multi-sampling anti-aliasing) crash bugs appear to have been resolved, and every game I tried it with works! As the GCW Zero has a 320 by 240 screen, it is a prime candidate for anti-aliasing.

Read More

OpenCL on i.MX6

As a GPGPU aficionado, I am pretty excited to be able to run OpenCL on a small, low-power device. While playing around with it I wrote down some notes and performance tips.

Read More

Etnaviv on GC2000

I finally got around to playing a bit with the GPU on my GK802. By comparing the command streams of GLES2 demos I've tried to write down the largest differences between the GC2000 and GC800, from the viewpoint of driver implementation.

  • Hierarchical depth: GC2000 supports a new mode for the depth buffer, representing the depth buffer in a hierarchical way. In this mode multiple buffers are being allocated for one depth surface. In general the purpose of hierarchical depth is to be able to reject fragments quickly by aggregating the minimum value of a tile of depth buffer values at incrementally lower resolutions. In the literature various mechanisms for hierarchical Z have been described (see for example greene93), which one is implemented by Vivante is an open question.
    • Another open question is whether non-hierarchical depth is still supported. I assume so, but we will only know for sure after some experimentation.
Read More


Woohoo, the well known glxgears demo is now available for etnaviv. I ported it from egl2gears.

Read More

Using the etnaviv shader assembler

This post describes the only part of etna_pipe API that is not yet equal or at least analogous to Gallium. Etnaviv does not yet have a GLSL shader compiler (or TGSI converter). Until then, shaders can only be compiled from native assembly.

Read More