Thanks that was helpful.!
On Tue, Jun 17, 2014 at 12:35 PM, Thomas Helland <thomashellan...@gmail.com> wrote: > 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