[Mesa-dev] [ Open source project]

Roshan Chaudhari rgc184 at gmail.com
Wed Jun 18 20:08:50 PDT 2014


Thanks that was helpful.!


On Tue, Jun 17, 2014 at 12:35 PM, Thomas Helland <thomashelland90 at 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20140618/d52c2046/attachment.html>


More information about the mesa-dev mailing list