Gallium interface seems a good place to cleanly separate state tracking from 
rendering. Everything is already done for you -- you just need to insert RPC 
between Mesa state tracker and softpipe pipe driver. I belive that there was 
even some attempt at doing something similar for virtualization purposes 
(vgallium I believe, the only URL I could find for it was 
http://spice-space.org/page/PortingVgalliumToSpice )

Also, LLVM community is working on adding support to MC-JIT to run code 
remotely so if you co-processor supports LLVM then there might be solution 
would be to continue using llvmpipe. But this depends  on LLVM upstream 
completing that feature, and would require large changes in llvmpipe to make 
the split between execution and compilation water tight.

If neither the above suites your needs or tastes, then you could of course 
split the swrast too, but I suspect it would be much harder, as the Mesa <-> 
driver interface is less water tight than Mesa State tracker <-> pipe driver 
interface.

Whatever you do, you should try to split between existing components and never 
try splitting an existing component in the middle. Otherwise it will be many 
order of magnitudes harder, and the result would probably be too complex to 
merge back into Mesa upstream. That is, it would require an herculian effort on 
your part, and for eternity. Whereas if you split betwen existing components 
you will get results much quicker, and you might be able to shoulder 
maintenance of that with the rest of the Mesa community.

Jose

----- Original Message -----
> Hi,
> 
> Alright, I'm pursuing this idea about splitting mesa into two
> components, where state tracking happens on the host processor,
> whereas a second co-processor gets to do the s/w rendering. The two
> parts would be communicating via a RPC mechanism and sharing the
> textures and render target buffers. The CPUs are in an AMP
> configuration.
> 
> Do you know if the code base (most importantly the data structure) is
> already designed to achieve this? Has this been done before?
> 
> Best regards,
> 
> -Ilyes
> 
> On Thu, Oct 25, 2012 at 2:34 AM, Kenneth Graunke
> <kenn...@whitecape.org> wrote:
> > On 10/24/2012 02:44 PM, Ilyes Gouta wrote:
> >>
> >> Hi,
> >>
> >> I'm rather new to mesa and would like to ask if there is still a
> >> pure
> >> s/w rendering path for the OpenGL|ES 1.1 pipeline in mesa; that's
> >> not
> >> LLVM based (gallium) but just plain C?
> >>
> >> If yes, what's it status vs. GLES and is there any additional
> >> dependencies?
> >>
> >> Thanks,
> >>
> >> -Ilyes
> >
> >
> > There are two actually: softpipe (Gallium based software rasterizer
> > which
> > doesn't use LLVM), and swrast (the older classic Mesa software
> > rasterizer).
> >
> > swrast appears to pass a decent set of the ES 1 conformance suite.
> > Either
> > would probably be fine.
> >
> > --Ken
> _______________________________________________
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
> 
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to