[Mesa-dev] [PATCH 2/2] draw: inject frontface info into wireframe outputs

Zack Rusin zackr at vmware.com
Wed Jul 31 21:21:38 PDT 2013


> > +   if (draw_will_inject_frontface(lp_context->draw) &&
> I think it's annoying you have to do these calls to determine if there's
> a valid frontface here for each line instead of just per draw call but
> it doesn't seem easy to avoid it.

Yea, there's no trivial way of avoiding it.

> Also, no love for llvmpipe point face? I realize d3d10 doesn't require
> it but OpenGL (and IIRC d3d9) do.

I didn't know of any tests for the points and we care only about lines right now. It's just four extra lines of code or so, so I can trivially add it but I don't have anything to test it with.

> Looks like quite a heavy interface (and sort of silly to allocate 128
> bits in the vertex data (so actually twice that for one line) for 1 bit
> of information but given all our data passed on to the line/point funcs
> are float4 I don't really see any other easy way neither), but seems all
> necessary unfortunately. I guess another option would be to pass the
> face info always along the vertex data no matter what (which would mean
> all those additional calls for setting up outputs, determining if
> there's a valid frontface etc. could go along with the storage needed)
> for all primitives to the point/line/tri funcs but I'm not really
> thrilled about that idea neither (passing it for tris so it doesn't have
> to be recalculated may or may not be a good idea neither).

Yes, plus then we'd need a brand new pipeline stage that is always run and that is largely useless for vast majority of rendering. It's sort of a lose lose scenario. The only thing that is clear is that we have to pass the data along the shader outputs, everything else is a messy glue to make it possible.

z


More information about the mesa-dev mailing list