[Mesa-dev] Merge criteria for glsl2 branch

Tom Stellard tstellar at gmail.com
Thu Jul 22 18:43:50 PDT 2010

On Wed, Jul 21, 2010 at 06:53:28PM -0700, Ian Romanick wrote:
> Hash: SHA1
> As everyone knows, a group of us at Intel have been rewriting Mesa's
> GLSL compiler.  The work started out-of-tree as a stand alone compiler.
>  We moved all of our work to the glsl2 branch in the Mesa tree as soon
> as we had some actual code being generated.  This was about month ago.
> Since that time we have implemented quite a bit more code generation and
> a complete linker.  The compiler is not done, but it gets closer every day.
> I think now is the time to start discussing merge criteria.  It is well
> known that the Intel graphics team favors quarterly releases.  In order
> to align with other people's release schedules, we'd really like to have
> the new compiler in a Mesa release at the end of Q3 (end of September /
> beginning of October).  That's just over two months from now.  In order
> to have a credible release, the compiler needs to be merged to master
> before then.  A reasonable estimate puts the end of August as the latest
> possible merge time.  Given how far the compiler has come in the last
> month, I have a lot of faith in being able to hit that target.
> We have developed our own set of merge requirements, and these are
> listed below.  Since this is such a large subsystem, we want to solicit
> input from the other stakeholders.
>  * No piglit regressions, except draw_buffers-05.vert, compared to
>     master in swrast, i965, or i915.
>  * Any failing tests do not crash (segfault, assertion failure, etc.).
> draw_buffers-05.vert is specifically excluded because I'm not sure the
> test is correct.
> One of the items on the TODO list is proper support for GLSL ES.  That
> work won't happen until the last couple weeks of August, so I don't
> think any sort of ES testing is suitable merge criteria.  Unless, of
> course, the tests in question should also work on desktop GLSL.
> We haven't and, for all practical purposes, can't test with Gallium or
> other hardware drivers.  The new compiler generates the same assembly IR
> that the current compiler generates.  We haven't added any instructions.
>  It does, however, generate different combinations of instructions,
> different uses of registers, and so on.  We don't expect there to be
> significant impact on other hardware, but there may be some.  The
> optimizer in r300 will certainly see different sequences of instructions
> than it is accustomed to seeing.  I can't foresee what impact this will
> have on that driver.

It is possible that the glsl2 frontend will break branching and loops in
the r300 compiler, because we are making assumptions about the
instruction sequences that the frontend provides when doing those two
things.  I don't think the glsl2 frontend will affect the correctness of
the rest of the compiler, but I'm sure the final generated code will
look different.


More information about the mesa-dev mailing list