On Monday 14 December 2009 12:49:53 michal wrote:
> Keith Whitwell pisze:
> > On Mon, 2009-12-14 at 06:51 -0800, michal wrote:
> >> Zack Rusin pisze:
> >>> On Monday 14 December 2009 09:29:03 Keith Whitwell wrote:
> >>>> On Mon, 2009-12-14 at 06:23 -0800, michal wrote:
> >>>>> To fully support geometry shaders, we need some means to declare a
> >>>>> two-dimensional register file. The following declaration
> >>>>>
> >>>>> DCL IN[3][0]
> >>>>>
> >>>>> would declare an input register with index 0 (first dimension) and
> >>>>> size 3 (second dimension). Since the second dimension is a size, not
> >>>>> an index (or, for that matter, an index range), a new token has been
> >>>>> added that specifies the declared size of the register.
> >>>>
> >>>> Is this a good representation?  What would happen if there was:
> >>>>
> >>>> DCL IN[4][0]
> >>>> DCL IN[3][1]
> >>>>
> >>>> Presumably the "3" is always going to be "3", and it's a property of
> >>>> the geometry shader - I think Zack has a patch which adds something
> >>>> like:
> >>>>
> >>>> PROP GS_VERTICES_IN 3
> >>>>
> >>>> Then couldn't we just have the equivalent of:
> >>>>
> >>>> DCL IN[][0]
> >>>> DCL IN[][1]
> >>>>
> >>>> with the size of the first dimension specified by the property?
> >>>
> >>> Yea, that's what I thought the dimensional arrays should look like for
> >>> GS in TGSI (they already do in GLSL and HLSL).
> >>
> >> Actually, GS_VERTICES_IN could be derived from GS_INPUT_PRIM property.
> >>
> >> GL_ARB_geometry_shader4 has this mapping:
> >>
> >> "
> >>
> >>                                  Value of built-in
> >>         Input primitive type     gl_VerticesIn
> >>         -----------------------  -----------------
> >>         POINTS                          1
> >>         LINES                           2
> >>         LINES_ADJACENCY_ARB             4
> >>         TRIANGLES                       3
> >>         TRIANGLES_ADJACENCY_ARB         6
> >>
> >> "
> >>
> >> But that also defeats the purpose of this patch -- INPUT registers would
> >> have implied two-dimensionality when declared inside GS.
> >
> > We have agreed that, its true...
> >
> > So is this patch necessary?  Is it sufficient to simply make the
> > statements that:
> >
> > a) Geometry shader INPUTs are always two dimensional
> > b) The first dimension is determined by the input primitive type?
> 
> Yes, thanks.

k, i'm a bit confused. i can't say it's very pretty but it works so i'm cool 
with any form of declarations but where does that leave the problem of 
actually accessing those inputs? i mean how will we access the color of the 
second vertex if multidimensional arrays don't exist.
will it be
GEOM
PROPERTY GS_INPUT_PRIMITIVE TRIANGLES
DCL IN[0], POSITION
DCL OUT[0], POSITION
 MOV OUT[0], IN[0][0]
 EMIT_VERTEX
 MOV OUT[0], IN[1][0]
 EMIT_VERTEX
 MOV OUT[0], IN[2][0]
 EMIT_VERTEX
 END_PRIMITIVE
END

z

------------------------------------------------------------------------------
Return on Information:
Google Enterprise Search pays you back
Get the facts.
http://p.sf.net/sfu/google-dev2dev
_______________________________________________
Mesa3d-dev mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to