All of the TGSI shaders have now had some human touch. In total, +40% fps in glxgears on llvmpipe. There could still be smaller optimization possibilities in the shaders, removing some temps mainly, but they no longer do anything stupid (yes, that’s the glsl compiler I just insulted, now shoo, it’s hand-tuned assembly from now on).
In other news, none of the PP functions so far show up in profiling. Remains to be seen whether that is the case with more powerful gpus.
MLAA is running inside Mesa, with the rest of the queue. Currently doing some final cleanups, you can expect the code to be in my private repo in some hours.
edit: Up. Go here to test.
An irrlicht demo, running with nored + MLAA:
Passes two and three running in Mesa. The only thing lacking from smooth output is the final blit; that didn’t want to cooperate with me tonight, but it’s getting late anyway.
The first pass of MLAA, edge detection, is running in the queue. Both varieties are working, depth and color.
glxgears with the depth one:
Here’s the latest set, with the mentioned bilinear artifacts gone. These are still from the userspace app.
July 4, 2011cand
FILED UNDER :Meta
While still thinking of the best way to handle various tunables, I proceeded to do some other work in the meantime.
Everything’s now configured via driconf. I especially like how driconf handles env var overrides for me. I also moved to a table-driven filter list, that dropped some 40 lines from the previous uglier solution.
Also ran some static analyzers, but none had anything to complain. Sigh :P
With regards to the client-side app, there were still some bilinear artifacts in the “quality”-post below. These have been solved. I also added a timer to the app, so now I don’t have to guesstimate how long the effect takes based on (1/new fps – 1/old fps).
I want to stress that the client-side port is not particularly optimized, but it will give interesting results on scaling between hardware and drivers.