New instancing demo

Ruined: Feel free doing your own and optimizing it for what ever comes to first to your mind. (Hair Dryer, Toaster, <insert your favorite HW nickname here>, etc...) As long as you haven't showed any capabilities to do tech demos to any hardware, you should be a bit more careful on your statements. Humus working at ATI? so what? we can't be sure that you aren't coming from nVidia damage control department.

I have been watching you for a while be careful or you might be get axed.




Humus, you really should join a Demo group. ;)
 
I ended up with different results in the last couple tests then most so far. Could it be that the last few tests are very CPU dependant? Here is what I scored with my 6800 Ultra at stock speeds on a 3.7 P4 CPU with 61.77 drivers. It ran in a window that was 792X566 but opening it up to full screen only dropped the score a couple FPS in last test only.
1: 412
2: 467
3: 440
4: 216
5: 101

Edited for better clarity
 
Nice demo Humus, thanks for doing it.
Just for kicks, I just downloaded the D3D9 SDK and Nvidias Asteroid demo+source to try whether I could hack it so that it would run on ATI cards with GI as well. Unfortunately, I've no experience with 3d programming, and after my changes, whenever I activated Instancing, all asteroids and ships turned black :(.

Perhaps someone else on this forum could give it a try? I bet lots of people here are interested in the results...
 
Evildeus said:
DegustatoR said:
pat777 said:
I didn't know Humus coded his demo to use a vertex frequency stream divider.
Exactly. This demo probably doesn't use NV40's GI at all.
Well Ati and Nv are not doing it the same way, Ati is using a trick AFAIR :?:


Well it's valid way to do things in DX9c but there is another way based on the same API that should benefit NV40. Once Humus's site comes back I'll grab the source and see what I can do ;)
 
pocketmoon66 said:
Well it's valid way to do things in DX9c but there is another way based on the same API that should benefit NV40. Once Humus's site comes back I'll grab the source and see what I can do ;)
There is no other way than IDirect3DDevice9::SetStreamSourceFreq(), which is what Humus is using. The only difference is the way you check whether the hardware supports GI.
 
Should we be expecting an increased use of particle systems now? :D

I still don't quite understand when is the best situation to use GI... :?

Is it just huge amounts of simple objects (particles, low polygon objects)?
 
digitalwanderer said:
euan said:
cool :)

Option 2 makes my PSU give out a faint but high pitch noise, and option 4 gives out a lower pitch and sounds a bit like white noise. More fascinating that instancing itself. :LOL:
What are your systems specs Euan?

(Same Euan as that other place I got perma-banned from BTW? If so, HI EUAN!!!!!!!!! )

Yes, I'm the one and only Euan... :)

PC spec is 2500XP running with 360Mhz FSB (just to keep the noise down a bit).
1GB DDR RAM.
X800pro vivo with 16 pipes enabled, but running at pro speeds (vivo didn't get detected with the XTPE bios, but there is a new bios around somewhere still to be tried).

Bench:
1. 316
2. 275
3. 312
4. 92
5. 42

using Cat 4.9b

edit: 360 FSB, not 320MHz
 
pocketmoon66 said:
Well it's valid way to do things in DX9c but there is another way based on the same API that should benefit NV40. Once Humus's site comes back I'll grab the source and see what I can do ;)
Interesting if true, give it a try :)
 
Evildeus said:
DaveBaumann said:
Evildeus said:
Well Ati and Nv are not doing it the same way, Ati is using a trick AFAIR :?:

How so?
Aren't they using a texture data to enable it via the drivers?
Actually no, all the R300 and above cards support "true" geometry instancing in hardware, but unfortunately Microsoft tied this function to SM3.0 and so it's not visible by default detection methods (SM2.0 or SM2.0B = theoretically no GI support)

The "trick" is to enable GI support even though the card doesn't report as an SM3.0 device. This is a workaround to MS directly linking GI to SM3 and giving no other caps-bit alternatives.

Make sense?
 
Evildeus said:
Aren't they using a texture data to enable it via the drivers?

No, they are exposing a FOURCC format (which is usually reserved for other texture format support) as a flag to say that it has the capabilitiy of supporting instancing - effectively they are using this as a Caps bit because there is no explicit caps bit for Instancing (although this caould also be achieved by device ID i suppose).

That is only for the detection - as Xmas mentioned, the instancing call is exactly as DirectX requires. That makes no mention of actual implementation - which is believed to be enabled in software but utilise hardware registers, which in istself may just be how instancing support is achieved elsewhere.
 
3200+ and a 6800 Ultra Extreme

1: 325 (1 draw call)
2: 290 (350ish drawcalls)
3: 360 (1 draw call)
4: 120 (don't remember n0 of draw calls)
5: 50 (as many draw calls as particles)
 
euan said:
cool :)

Option 2 makes my PSU give out a faint but high pitch noise, and option 4 gives out a lower pitch and sounds a bit like white noise. More fascinating that instancing itself. :LOL:

Heheheee, mine too,

you dont happen to have an nforce2 based mobo? My computer 'sings' to me depending on what parts of the system are being taxed. The last 3 tests definatley are more taxing on the mem subsystem in order of progression 3<4<5.

To be more specific the sound in test 5 conveys to me that my system memory is being canned, whilst test 4 seems to be more CPU cache and some system mem, whilst 3 is most probably CPU cache being tested (EDIT:this is wrong LOL). Tests 1 and 2 my computer aint singing

:)

Could someone xplain at which point u are taking your readings from? It would be cool if Humus could implement an average fps, that would make assesment alot more easier, negating human error in recording the fps.

Oh and I found this version to be a little buggy, i had to mess abt with min/max/fullscreen be4 i managed to get the effets to show properly. Sometimes was getting the effects half screen, sometimes black screen.

1. 460 >---- 160
2. 385 >---- 150
3. 425 >---- 200
4. 125
5. 59

This is fresh instal SP2/cats 4.9/dx9.0c

9800Pro>XT 480/400
nforce2 @ 235x11.5 (2.7Ghz)

mong
 
Xmas said:
There is no other way than IDirect3DDevice9::SetStreamSourceFreq(), which is what Humus is using. The only difference is the way you check whether the hardware supports GI.

SetStreamSourceFreq(0, D3DSTREAMSOURCE_INDEXEDDATA | numInstances);
SetStreamSourceFreq(0, D3DSTREAMSOURCE_INSTANCEDATA | 1);

[edit] ah got home. yes he does.
 
Back
Top