[Mesa-dev] What I'm working on

Brian Paul brianp at vmware.com
Tue Oct 12 08:28:50 PDT 2010


On 10/11/2010 03:49 PM, Ian Romanick wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> I just thought I'd give people a head-up of what I'm working on for the
> next few weeks and how this relates to what other Intel people are doing.
>
> We're trying to get 3D fully enabled on Sandybridge hardware for our Q4
> release.  Since there are quite a few subtle changes from Ironlake to
> Sandybridge, we don't want to re-work N different shader backends.  Eric
> is trying to get his direct GLSL IR backend working solid on all
> GEN4-ish hardware, including Sandybridge.  That will get GLSL working,
> but that leaves fixed-function and assembly shaders.
>
> To get the rest working, I'm implementing code to generate GLSL IR
> directly from assembly shaders and from fixed-function.  To do this
> right, there is some additional infrastructure needed.  This is why I
> recently implemented GL_ARB_explicit_attrib_location.
>
> Over the next week or two I will implement
> GL_EXT_separate_shader_objects.  The plan is to then treat the assembly
> shaders like the compiled, par-linked programs that are used in EXT_sso.
>   I'm only doing the EXT version because there is a lot less to do for
> it, and I believe that will supply enough infrastructure for the
> assembly shader rework.  This will live in a (hopefully short lived)
> branch in my personal GIT repo called ext_sso.

It's great you're implementing this extension.


> Once that is done, I'll start converting the shader assembler to
> generate GLSL IR.  Fixed-function will get the same treatment shortly
> thereafter.
>
> It should be possible to move ir_to_mesa out of core Mesa and into a
> (lower) driver level.  As has been discussed numerous times, the
> assembly-like IRs in Mesa (classic Mesa IR and TGSI) are completely
> useless for generating code for GPUs.

I'm sorry, but that's an exageration.  Mesa IR and TGSI are very 
similar to the original ARB vertex/fragment program languages which 
were clearly intended for GPU implementation.  They may not be ideal 
in some ways, but certainly not completely useless.


> llvmpipe has shown that they are
> also completely useless for generating code for CPUs.  The various
> proposed GLSL->LLVM and LLVM->GLSL translation layers will allow these
> relics to die.

Someone will need to write a GLSL IR -> TGSI translator during the 
interim.  I haven't had much spare time lately, but if I can find some 
I'll take a crack at it.

-Brian


More information about the mesa-dev mailing list