Hi Patrick, > > I don't know a whole lot about Mesa's structure, but I know that the > LLVMpipe driver is supposed to be the fastest software driver for x86 CPUs. > The reason is that it JIT compiles vertex/fragment programs into x86/x64 > assembly using LLVM as the code generator. LLVM contains extensive > optimization functions and is much more sophisticated than the "rtasm" > module you'll see in Mesa's source tree. Additionally, the LLVMpipe driver > will utilize multiple cores to execute vertex/fragment programs. For super > simple rendering, e.g. flat shaded gears in glxgears, I wouldn't be > surprised if special-case code (generally part of Mesa's 'swrast' module) is > faster because it does not require the overhead of executing a program for > each vertex/pixel, and can possibly operate on multiple pixels at once using > MMX/SSE2. However, the optimizations for those generally target apps <= > 2001, while newer apps that make extensive use of programmable hardware will > likely be far faster on LLVM pipe. >
I too noticed that with a simple GLES2 app with a not so simple rendering. I saw that with that app the xlib based renderer was crawling at 8-9 fps while the llvm based renderer was able to give performance as high as close to 250fps with single thread. I am not sure if that is expected and if the difference is so much significant. In any case I have not been able to understand clearly the difference between xlib based s/w renderer and the gallium based softpipe renderer (without llvm). Any pointers would be helpful. Thanks & Regards, Divick _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev