|
|
#1 |
|
Senior Member
Join Date: May 2002
Posts: 3,908
|
what exactly is a geometry shader, and how does it differ from a vertex shader with SM3.0/3.0+ capabilities?
here's my limited understanding of geometry processors in GPUs/ graphics systems: geometry engines: pre-NV10 non-consumer graphics chips / graphics systems i.e. SGI RealityEngine, InfiniteReality, arcade boards, and other non-gamer highend 3D cards of the 1990s. T&L unit: pretty much the same as a geometry engine - first used in consumer cards like NV10 - GeForce 256. vertex shaders - all modern consumer GPUs have these geometry shader ???? I guess this will replace the vertex shader in DX10 hardware ? |
|
|
|
|
|
#2 |
|
Member
Join Date: Nov 2005
Location: Who knows...
Posts: 559
|
I'm fairly certain the GS is supposed to be an addition to the vertex and pixel shaders rather than a replacement for the former.
|
|
|
|
|
|
#3 |
|
Member
Join Date: Nov 2005
Location: Who knows...
Posts: 559
|
|
|
|
|
|
|
#4 |
|
Regular
|
This is a good thread:
http://www.beyond3d.com/forum/showthread.php?t=23146 The slides I dug out relating to the GS are useful: ![]() ![]() ![]() A geometry shader works at a larger level of granularity than vertices (which are at a larger granularity than pixels): triangles, objects, lines, strips, points. Primitives. Jawed |
|
|
|
|
|
#5 |
|
Regular
Join Date: Feb 2002
Location: California
Posts: 4,684
|
1) access to more than one input vertex
2) 1 in, 1 out rule no longer applies. GS can emit many many vertices 3) Stream Out. Can write data to a separate buffer and then process that buffer recursively 4) Can drive scene rendering without CPU interference. See "single pass cubemap" example. |
|
|
|
|
|
#6 |
|
Senior Member
Join Date: Jul 2004
Posts: 1,347
|
Is the geometry shader part of the proposed unified shader specification (seems logical) or not?
Last edited by wireframe; 18-Nov-2005 at 20:07. |
|
|
|
|
|
#7 | |
|
Member
Join Date: Oct 2004
Location: South Coast, England
Posts: 391
|
Quote:
Unless it's in the PDC slides or the Meltdown slides you won't be able to find a good/public answer to that... Also, given that DX10 is fixed caps the IHV's have to rely more on raw horsepower to sell; thus their particular strategies on how they do this are likely to become even more secret. Jack |
|
|
|
|
|
|
#8 | |
|
Senior Member
Join Date: Jul 2004
Posts: 1,347
|
Quote:
I dunno, it just seems a bit much to unify and add a whole new set of functions at the same time. I'm thinking the geometry shader would get a soft introduction and therefore be spared the strict adherence to the unified pixel/vertex shader specs. |
|
|
|
|
|
|
#9 | |
|
Member
Join Date: Oct 2004
Location: South Coast, England
Posts: 391
|
Quote:
I just checked out the print-out's of the PDC'05 slides, and they mention "Common Shader Cores" when covering the new hardware pipeline. On a couple of slides there is reference to vs_4_0, gs_4_0 and ps_4_0 profiles... I'm gonna refrain from commenting beyond that - I can't see anything in the public resources I've got available. Sorry!. Maybe it's been mentioned elsewhere and someone else can reference it Jack |
|
|
|
|
|
|
#10 | |
|
Senior Member
Join Date: Jul 2004
Posts: 1,347
|
Quote:
Just for completeness, when I first saw the geometry shader mentioned I got the impression that this is more-or-less a fixed function tesselator. This, of course, doesn't compute with the term "shader" being used and I am now beginning to warm up to the idea that it is something far more advanced. But how does it all fit together? I guess 'm gonna have to wait for SM 4.0 to find out. |
|
|
|
|
|
|
#11 |
|
Senior Member
Join Date: Aug 2002
Location: Miami, Fl
Posts: 1,036
|
Doesn't Xenos reuse its vertex/pixel shader ALUs for HOS, tesselation and such? If so, it seems geometry shading, or at least a subset, is possible given a flexible enough architecture with a pool of generalized ALUs. Also, doesn't the ability to perform scatter reads and writes affect the the potential for geometry shading in any way?
__________________
"Friendship is unnecessary, like philosophy, like art... It has no survival value; rather it is one of those things that give value to survival." -C.S. Lewis Last edited by Luminescent; 19-Nov-2005 at 00:53. |
|
|
|
|
|
#12 |
|
Regular
|
I interpret the GS in the SM4 pipeline as a multi-pass operation:
Not sure if that's right, though. Also, there are other diagrams around which show GS before VS ... erm. Also, I don't understand how occlusion queries fit in here - I think they are linked to the GS (working as virtual viewports, I think) but I dunno. I dare say geometry instancing is the closest SM3 came to having a GS. Jawed Last edited by Jawed; 18-Nov-2005 at 23:55. |
|
|
|
|
|
#13 |
|
Regular
Join Date: Feb 2002
Location: California
Posts: 4,684
|
Occlusion queries probably work via tagging.
|
|
|
|
|
|
#14 | |
|
Nutella Nutellae
Join Date: Feb 2002
Location: San Francisco, CA
Posts: 4,156
|
Quote:
__________________
[my blog] Isn't it enough to see that a garden is beautiful without having to believe that there are fairies at the bottom of it too? [Douglas Adams] The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way |
|
|
|
|
|
|
#15 | |
|
Nutella Nutellae
Join Date: Feb 2002
Location: San Francisco, CA
Posts: 4,156
|
Quote:
Dunno if the final specs are changed of it's just a sign of vertices being someway able to recirculate into the pipeline (with or without memexport)
__________________
[my blog] Isn't it enough to see that a garden is beautiful without having to believe that there are fairies at the bottom of it too? [Douglas Adams] The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way |
|
|
|
|
|
|
#16 |
|
Regular
Join Date: Feb 2002
Location: California
Posts: 4,684
|
Is memexport equivalent to streamout? Scatter writes are not stream writes. memexport doesn't appear in any of the publically talked about WGF2.0 features.
|
|
|
|
|
|
#17 |
|
Nutella Nutellae
Join Date: Feb 2002
Location: San Francisco, CA
Posts: 4,156
|
Woops..I assumed they were the same thing, but I see now that streamout is less general
__________________
[my blog] Isn't it enough to see that a garden is beautiful without having to believe that there are fairies at the bottom of it too? [Douglas Adams] The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way |
|
|
|
|
|
#18 |
|
Regular
|
From XBox 360 Shader Topics:
–Memexport writes data to main memory alloc export=1 // or =2, depending on tile alignmentSo it seems to write a stream of data to an address. Presumably you can just keep on changing the address as required to move around. Jawed |
|
|
|
|
|
#19 |
|
Regular
Join Date: Feb 2002
Location: California
Posts: 4,684
|
How do they insure order? Unlike GS or even VS, there is no guarantee of pixel processing order, and you have concurrency to deal with. This doesn't seem to allow any kind of meaningful datastructure to be exported. How do I insure that my shader gets to write a contiguous block of values to M, M+1, M+2, M+3, etc without some other pixel shader program writing in between? Seems like each and every pixel would have to have its own memexport address and private area.
Also, if the address can be changed within a single render call, it's not really a stream, but a windowed scatter write. Stream implies FIFO, and it implies a total order. |
|
|
|
|
|
#20 |
|
Regular
|
memexport can only be used during vertex shading - though I can't remember where I read this.
The base address per vertex is, effectively, generated by a "malloc()" type operation in the first instruction in that sample (erm, that's what it looks like to me - some random address). Quite how that's communicated forwards into another pass, for reading back in, I dunno. Lots of missing detail... Jawed Last edited by Jawed; 19-Nov-2005 at 01:28. |
|
|
|
|
|
#21 | |||||||
|
Member
Join Date: Oct 2004
Location: South Coast, England
Posts: 391
|
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
hth Jack |
|||||||
|
|
|
|
|
#22 | |
|
Member
Join Date: Oct 2004
Location: South Coast, England
Posts: 391
|
Quote:
Also, as a general comment... Why are you dragging XB360 into this? Historically consoles have taken a "base" level and then customized it. Take the original XBox - it's primarily SM1 with a few extra trimmings. Related to the comment in my previous post, D3D10 is relatively new as far as the XB360 timeline goes... such that there might be parallels, but just because D3D10 is close and XB360 is released doesn't necessitate a connection Cheers, Jack |
|
|
|
|
|
|
#23 |
|
Regular
|
The thing that bugs me is why is Stream Output a component of the DX10 pipeline if not to support multi-pass vertex/primitive shading?
When (where) else is data that's streamed out going to be used? I know that ATI talks about Xenos being capable of helping do physics, and stream out being a key component of that. But I suppose I interpret that as merely overloading of the basic stream output concept. Jawed |
|
|
|
|
|
#24 | |||
|
Regular
|
Quote:
Quote:
Quote:
Me just jumping to conclusions Jawed EDIT2:"stream out" not "stream output", but I'm too lazy to change them Last edited by Jawed; 19-Nov-2005 at 01:46. |
|||
|
|
|
|
|
#25 | |
|
Member
Join Date: Oct 2004
Location: South Coast, England
Posts: 391
|
Quote:
I lurk in these forums more than I post, so I know you guys are pretty smart... Thus I think you'll appreciate that a stream processor (what I imagine the majority, if not all, current GPU's are) might find it hard to do a feedback loop. Thus requiring a revolution rather than evolution in current hardware design. hth Jack |
|
|
|
|
![]() |
| Bookmarks |
| Thread Tools | |
| Display Modes | |
|
|