   limit in geometry shader
  Hi!In the documentation of dxd10 it is written:"The maximum number of 32-bit values that can be output from a geometry shader is 1024."I wonder: Why is there a maximum number and what is the reason for this maximum number, the graphics card or dxd10 itself?   
  The geometry shader needs to store it's result somewhere, so that the other parts of the pipeline can use the data that it generates. Since high-performance memory required for graphics core operations is both expensive and difficult to manufacture in bulks - and bus bandwidth isn't free either - they have specified a hard limit on the memory (1 KB) that can be used for this purpose per-primitive. In addition, they don't have to worry about dynamic allocation of the output storage, since that amount of memory is always available.The limit is specified in D3D10 specs, but the hardware manufacturers adhere to that in their interfaces.You could code around this limitation by looping the data back to the geometry input streams; for example, to enable recursive tessellation.   ;  As the specification of D3D 10 is written together with the GPU manufactures it is highly believable that at last one of them want this limit.The reason for this limit could anything from cache sizes to bit length of a counter.;  Its worth noting that outputting 1024 values does not necessarily mean you can get 1024 triangles. If you just pass-through a position-only triangle then you're already using 3 slots per triangle, thus giving you a maximum of 341 triangles (assuming a triangle list [wink]). If you start sending texture coordinates and so on then that number starts to drop even faster...Jack   