On Sunday 28 September 2008 15:04:42 Stephane Marchesin wrote:
>
> Oh, I'm thinking about doing driver-specific llvm backends here. 

Yea, that was always my plan.

> I've realised that the difference between GPUs really didn't allow common
> intermediate representation. Furthermore, the llvm tablegen format is
> very powerful and I don't think it'll be much more work.
>
> So basically instead of doing
> TGSI -> LLVM -> TGSI -> driver

The only scenario for this was D3D9 for which the driver has to live in the 
Windows kernel, and getting LLVM running in a Windows kernel would be 
excidingly difficult. So the use-case was client-side library does the 
conversion to LLVM, runs the LLVM optimization passes, transforms back into 
TGSI and feeds the optimized TGSI to the driver.

> I think we should be doing
> TGSI -> LLVM -> driver

Yea, for all cases where you can get LLVM code-generator into the actual 
driver that's what we want.

> That way we'd allow things like support for both vector (r300,
> nv30/40, sse...) backends and scalar (nv50, x87 ...) backends.
> Otherwise the scalar backends have to lower the vectors into scalars
> at the last minute and this could be suboptimal. I also want to
> support fixed pipe that way, by describing the fixed pipe
> functionality in llvm DAGs and letting the DAG matcher from llvm do
> the actual work. This is a cleaner approach to fixed pipe in gallium
> than what I tried before.

Sounds wonderful.

z

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Mesa3d-dev mailing list
Mesa3d-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to