Glassy Mesa Project — Intro and Status

Intro

LunarG received funding from Valve to explore the possibility of game performance improvements using the LunarGLASS technology in the Mesa driver, specifically the potential for FPS improvements through shader runtime improvements. LunarGLASS includes the glslang frontend and the LLVM compiler component as well additional modifications to make LLVM suitable for shader compilation.

The main component developed for this effort was a translator from LunarGLASS Bottom IR to Mesa GLSL IR. This allows all Mesa backends which consume Mesa GLSL IR to potentially benefit from this technology, including i965.

Status

Glassy Mesa has progressed to the point of running a trace from the game Left 4 Dead 2. Two different frames from this trace were “randomly” chosen and integrated into a looping APITrace run to allow for FPS measurements on i965 Haswell. These measurements showed 15% and 22% decreases in frame time for the Glassy stack over the Classic stack, with the most complex frame showing the most improvement. Static cycle times gathered from the scheduler for all L4D2 shaders for both the Glassy and Classic stacks corroborate the improvements seen.
While these results are by no means conclusive, they do suggest that this approach is promising and further development and study would be worthwhile.

LunarG has made a branch available on both the LunarG github repository containing this code for others to study and discuss. Much work is still required to make this branch completely functional and performant. LunarG will be updating this branch frequently as development progresses.

Further Points of Interest:

  • This initial prototype was developed with one engineer working 10 weeks
  • Additional details of the current status are available in the accompanying slide set

Feedback

Participate in the open discussion and development of this technology within the Mesa development community.  We need your feedback.