I'm just cleaning up some of the code in softpipe and draw where there 
are lots of nasty #ifdefs trying to select between the various shader 
execution mechanisms.  Hopefully it should clean things up a bit.

The basic idea is the same as always - put an interface around the 
different versions.  In softpipe for instance, we'll have three 
implementations of this interface for llvm, sse and interpreter 
respectively:


struct sp_fragment_shader_state
{
    struct pipe_shader_state shader; /* Maybe not needed */

    unsigned (*run)( struct sp_fragment_shader_state *,
                   struct something *   );

    void (*delete)( struct softpipe_context *,
                   struct sp_fragment_shader_state * );
};

I'll do something similar in the draw module as preparation for 
straightening out the vertex shader paths there.

Keith

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Mesa3d-dev mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to