Hi Roshan, I've just gotten into the game myself, so I guess i can provide some newbie-info. I guess by "the list" you are referring to the suggestions for GSoC projects posted. I think the application date for GSoC is long passed (so no pay :/ ), but I don't think anyone will bash you for taking on the work if you want to. Just in case you haven't seen there's also the newbie-projects page[1]. There might be some smaller interesting projects there to. These are not to difficult, and will get you accustomed to the community, review-process, submitting patches, etc
I would love to be proven wrong, but I think the best source of documentation is poking around in the source code. There's also some documentation at [2]. There's also a readme-file in the glsl-directory explaining a bit the IR / compiler. The shader-compiler does a lot of "optimization passes" over the supplied shaders, trying to do things like dead-code elimination, cse, algebraic optimizations, etc. As of now I think (but I'm not sure) this is done more or less randomly. Try a bunch of them multiple times, until there's no proof that we're getting further. The static ordering part you are referring to i think is basically the following: Find a defined sequence that you can perform these passes (maybe repeat some of them multiple times), a defined number of times, that when completed yields a result that is as good as today's solution; 1. Less or equal amount of instructions 2. Less or equal time to compile shaders. Let's say, as an example, dead-code elimination to get rid of some cruft, then do some algebraic optimizations, then some constant propagation, followed by more dead-code elimination, then cse, then repeat everything 2 times. Basically trying out a lot of sequences, and testing the results. For testing you should use a toolkit to verify your results. This can be done by compiling mesa with debug-symbols, and using shader-db [3]. Shader-db does a compilation of a boatload of shaders, and reports time spent compiling them along with the end instruction count for each. Obviously startup-times and FPS in shader-heavy games like Dota2 are also always a nice addition. I will not guarantee that what I've written here is 100% correct, and I'm not really in a position to give any more details than that, as I'm really new to the game myself, and just getting my feet wet with some code-cleanups. [1] http://wiki.freedesktop.org/dri/NewbieProjects/ [2] http://mesa3d.org/ [3] http://cgit.freedesktop.org/~anholt/shader-db regard, Thomas
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev