The design of LLVM-based shader compiler for embedded architecture

The design of LLVM-based shader compiler for embedded architecture The increasing hand-held devices has resulted in widespread use of Apps. To sustain the Apps performance, most developers use Graphic Processing Units (GPUs) as hardware accelerator recently. As a result, GPUs become the basic system requirement in the smart hand-held devices. With the improvement of GPUs techniques, the rendering pipeline has become programmable by using the shading language proposed from DirectX and OpenGL. A shader compiler is essential to compile the shading language into GPU assembly in order to run on programmable rendering pipelines. In thisthesis, we describe a case study for the process to implement an OpenGL-ES 2.0 shader compiler for new GPU designed by an ITRI team. The compiler is based on LLVM and OpenGL framework Mesa. We use the front-end from Mesa that translates the OpenGL-ES shading language (GLSL ES) 2.0 to TGSI intermediate form and the Gallium3D device driver framework in Mesa will translate the TGSI to LLVM bitcode. Finally, we use the LLVM as backend to compile the bitcode to assembly NV gpu program4. In our preliminary experimental results, we use the gpu simulator provided from ITRI and GLES benchmark to show that our LLVM based shader compiler is able to generate reliable codes for basic OpenGL-ES programs.