[Mesa-dev] Mesa (d3d1x): d3d1x: add new Direct3D 10/11 COM state tracker for Gallium

José Fonseca jfonseca at vmware.com
Tue Sep 21 07:01:58 PDT 2010


On Tue, 2010-09-21 at 02:14 -0700, Jakob Bornecrantz wrote:
> On Tue, Sep 21, 2010 at 10:42 AM, Keith Whitwell <keithw at vmware.com> wrote:
> > On Mon, 2010-09-20 at 16:28 -0700, Luca Barbieri wrote:
> >> > A couple of questions - it looks like this is a drop-in for the
> >> > d3d10/11 runtime, rather than an implementation of the DDI.
> >> Yes.
> >>
> >> > I think
> >> > that makes sense, but it could also be possible to split it into two
> >> > pieces implementing either side of the d3d10 DDI interface.  Any
> >> > thoughts on whether that's interesting to you?
> >>
> >> I wrote it this way first of all because it's clearly easier to just
> >> write the code to support one interface, rather than writing two
> >> pieces, and it avoids unnecessary reliance on Microsoft interfaces,
> >> which often tend to be imperfectly documented.
> >> Not going through the DDI also clearly reduces CPU overhead and keeps
> >> the codebase simpler.
> >>
> >> I think a DDI implementation over Gallium could just live along as a
> >> sibling to the COM implementation, sharing common code, which is
> >> already split out into modules such as d3d1xshader and d3d1xstutil.
> >> The shader parser and translator can be fully shared and several
> >> conversions (e.g. DXGI_FORMAT -> pipe_format) are already separate
> >> from the main code, although perhaps more could be factored out.
> >>
> >> Instead, layering the COM API over the DDI API doesn't necessarily
> >> seem to be a win, especially because Gallium is so close to the
> >> D3D10/11 interfaces that it's not even clear that using the DDI is
> >> much easier than just using Gallium directly.
> >>
> >> I don't think I'll do it myself as an hobby project though.
> >
> > Sounds good Luca, just interested in your plans for this.
> >
> > I don't see any reason not to merge this to master straight away -- this
> > is all self-contained in its own directory & doesn't seem like it will
> > regress anything else...
> 
> Maybe not the binaries, but it looks like you pushed already anyways.

Is there any reason for the binaries to be commited?

Jose



More information about the mesa-dev mailing list