Welcome to the forum What does it do? and could you explain the ideas behind it - and the DPX shader? From the code it looks like it does gamma per component and then does a complex contrast curve .. also per component. This might be something that SweetFX can already do by using gamma and curves, but I don't know until I've checked the math. Humus has written a good article/slideshow on how to optimize shaders here : http://humus.name/index.php?page=Articles&ID=6 If I was to optimize this I'd start with cleaning up the code and simplifying what I could. You split calculations up so they are per component, while I prefer to vectorize as it results in much simpler looking code. I did this to the DPX shader as well. I have also been thinking of replacing the math in DPX with a lookup texture which should make it much faster. I couldn't use LUTs before , but in eFX 2.0 I can load custom textures which can be used for LUTs. I already have some of the ideas here planned for SweetFX 2.0 - the custom borders are easy to do with eFX. It's easy to make some. No, it applies it to angles that are close to 90 degrees - corners. This makes them rounded. I have it turned off in the default settings because it affects text too much for my taste. This form of dithering was also used in many arcades as a lot of them used to run on modified 3dfx hardware. It's a subtle and very specific look that many probably won't remember or be nostalgic for, but from the screenshots it looks like it indeed works. Nice work leilei. I also have some (disabled) color reduction code in the Dither shader that I used to test some of the new dither modes I was working on. I may return to this code later and make it an actual feature.