Geometry / Tessellation Shaders

Geometry/Tessellation shaders generally reduce performance on tile-based architectures

Tessellation and geometry shaders should be avoided if possible, as the hardware will be required to bin (place into tiles) many more vertices which are produced by these pipeline stages. This results in many more writes to the parameter buffer which is located off-chip in system memory.

Geometry and tessellation will usually result in increased pressure on the rasterization hardware, due to the increased number of triangles. The exact impact on performance will depend on the exact graphics core that the application is being deployed to.

Profiling with PVRTune would reveal the impact of using geometry and/or tessellation shaders.

If an application must use tessellation and/or geometry shaders on PowerVR hardware, the shaders may be hardware accelerated, may be emulated, or may not be supported at all.

This depends on the exact graphics core that the application is being deployed to:

  • Series 6XE graphics cores do not support either the tessellation or geometry shader extension, and therefore these stages in the graphics pipeline are not available on this platform.
  • Series 6, Series 6XT, Series 7XE and Series 8XE graphics cores have native support (hardware acceleration) for geometry shaders, and provide execution of tessellation shaders through software emulation.
  • Series 7XT and Series 8XT graphics cores provide native support (hardware acceleration) for both geometry and tessellation shaders.

While geometry shaders are not optimal when used to introduce new geometry, they can be used to cull geometry, which may result in some moderate performance gains. This should be verified through profiling using our PVRTune tool which is available in our SDK.