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
