3 ms·
Related, and also interesting (especially as a response to "TinyGL is a lot faster than Mesa"), is Mesa's llvm rendering backend llvmpipe. It compiles the rende
by maggit 12y ago
Related, and also interesting (especially as a response to "TinyGL is a lot faster than Mesa"), is Mesa's llvm rendering backend llvmpipe. It compiles the rendering pipeline to llvm bitcode which is then compiled to machine code. It makes use of multiple CPU cores and SIMD instructions. The result is surprisingly quick software rendering of anything OpenGL.
Key differences to TinyGL: Mesa llvmpipe implements "all" of OpenGL and GLES2 (That is, everything that is implemented in Mesa works with this backend) and the rendering is accurate.
I have not done a head-to-head benchmark, and I don't think it would be that interesting since the two libraries are from entirely different ages.
The existence of llvmpipe was part of the rationale for Qt5 to require OpenGL (GLES?) for rendering [1]. Qt5 has no other rendering backend.
[1]: I remember this from the beginning of Qt5 development, which is so long ago that I have a hard time finding a quotation. Maybe I can use this Phoronix article as backup: http://www.phoronix.com/scan.php?page=news_item&px=MTA5ODc http://www.phoronix.com/scan.php?page=news_item&px=MTA5ODc "The Qt developers praised the CPU-based Gallium3D driver and will be relying upon LLVMpipe when no GPU hardware driver is available. They say that using LLVMpipe is working better than any software rasterizer of their own. " "LLVMpipe remains too slow for OpenGL gaming (...), but it's good enough for a tool-kit and composited desktop."