On Friday 24 July 2009 15:40:25 Keith Whitwell wrote: > I think a fast software rasterizer project would be better described as > "create a gallium driver targetting LLVM" (as opposed to optimizing > softpipe), as softpipe fills a pretty useful niche in its current form. > > Thinking of LLVM as "the hardware" has a couple of positive > psychological implications -- most importanly that we are in the > business of programming LLVM to do rasterization, rather than just using > it to provide some niche fastpaths in an otherwise complete software > rasterizer. > > Below a certain level (be it triangle or batch of quads or even vertex > buffer), everything should be handled by LLVM-generated code, in the > same way we would hand off to hardware at a given level... > > There at least four key places where we want to generate code (TGSI > shaders are only one of them), and we want to choose plumbing between > them which is optimal for however llvm turns out to require it -- all of > which means that in such a driver LLVM won't be hidden behind shader > opcodes, but will be completely in the foreground.
Yea, that sounds great, but that all sounds like an argument to remove gallivm from master rather than keep it. Obviously a driver aimed at making LLVM target hardware would be highly desirable for cpus, cell, larrabee and so on, but gallivm doesn't add value to that project right now. If we were to start a project like that then doing TGSI->LLVM IR in the driver instead of through gallivm would be just simpler. It'd be a lot easier and quicker to export that generator once we'd know that it's actually reusable (so doing the design bottom->top, rather than top->down). It's a huge advantage of actually writing a driver that needs a certain functionality, versus writing certain functionality hoping that it will fill a need of a driver in the future (what we've done so far in gallivm). It would mean that gallivm would actually prove to be useful, rather than force it to just be (in its current form at least). So yea, I think ideally we'd just bootstrap a quick and dirty driver and we could move the basic soa code-generation from gallivm to it, remove temporarily gallivm and work on that code in the driver. z ------------------------------------------------------------------------------ _______________________________________________ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev