[Mesa-dev] [PATCH-RFC] draw: Rewrite primitive decomposer
Zack Rusin
zackr at vmware.com
Thu Aug 5 12:43:11 PDT 2010
On Thursday 05 August 2010 12:51:57 Chia-I Wu wrote:
> On Thu, Aug 5, 2010 at 3:20 AM, Zack Rusin <zackr at vmware.com> wrote:
> >> With GS, the order of the vertices of a primitive becomes significant.
> >> We can no longer permute the vertices to support flatshade_first (at
> >> least, not before GS runs).
> >
> > Awesome stuff. Thanks for looking into this. I'd commit that patch and
> > we'll abstract it under some settable "use d3d or gl rules" flag for
> > draw - we'll
>
> Yeah, that should be a settable flag. But we should then support
> flatshade_first somewhere else.
>
> The GL rule is last vertex last for each primitive. The D3D rule is first
> vertex first. My idea is to have draw_decompose_tmp.h use a local
> variable, last_vertex_last, to select the rules. In draw_gs_tmp.h and
> draw_so_emit_tmp.h, last_vertex_last is TRUE when the new settable flags is
> TRUE. However, in draw_pt_decompse.h, where the rules no longer matter,
> last_vertex_last is set to !(flatshade && flatshade_first).
>
> As for draw_pt_vcache_tmp.h, I am considering removing it and make vcache
> look more like varray except with index buffer buffer. I will try to work
> out the idea soon.
Sounds like a good plan to me.
> > need it for clipping anyway.
>
> For clipping?
Yea, GL defines the view volume as:
-w <= x <= w
-w <= y <= w
-w <= z <= w
while the other api defines it as:
-w <= x <= w
-w <= y <= w
0 <= z <= w
(difference in draw as shown in the attached diff)
In draw currently we're implementing the GL semantics so I'm just adding a
switch to let the draw users pick which semantics they'd like to have draw
follow.
z
-------------- next part --------------
A non-text attachment was scrubbed...
Name: d3d_clip.diff
Type: text/x-patch
Size: 1430 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20100805/09b2fc62/attachment.bin>
More information about the mesa-dev
mailing list