[Mesa-dev] What I'm working on
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
> 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.
More information about the mesa-dev