   Performance of vertex buffers/ no vertex buffers
  Hi!Recently i have been reading posts where it is being discussed how much faster the primitive drawing methods using vertex buffers (DrawPrimitive, DrawIndexedPrimitve) are compared to the equivalent UP-methods. There seems to be some confusion around this topic, so i thought discussing it in a new thread would be interesting.Personally, i am in the following dilemma; I have written a small 3D game, and i am relatively happy with the frame rate (~30 fps). However, i am using the UP-methods exclusively, and reading how some people say that the vertex buffer-methods are much faster, i was wondering whether i should rewrite my code to only use vertex buffers, or is this not worth the hassle? (this may not be that much work, but being an amateur, the smallest obstacle could be a major time-consuming task)What are the differences in performance between these two types of primitve drawing methods - really?Regards,Krokus 
  Vertex buffers can be created so that the data resides on the graphics card. This is obviously big speed advantage, as data doesn''t have to be uploaded from system memory everytime you want to render the said data. (With UP functions you''re exclusively doing the uploads from sys mem.)VBs are not that difficult to use, check the documentation. ;quote:Original post by Krokus  What are the differences in performance between these two types of primitve drawing methods - really?this really depends on what your game''s geometry is like. is it all dynamic? if so, you''d get a boost from using a few dynamic vertex buffers, but its hard to say how much, 20-50 fps i''d guess, its also fairly difficult to do dynamic vertex buffers well, all batched up and everything.if its mostly static, aside from transformations (is your vertex data different every frame?), then it will be a major difference.what kind of hardware is that on? if its on average hardware, and your game isn''t made or broken by the fps, then its probably fine. that said, you should definitely at least learn vertex buffers, even if you don''t use them in this game. ;  Cheers fellas.It''s 95% static game geometry billybob, so you have convinced me.I will take the time to learn vertex buffers.thanks-Krokus ;  ok, i spent this saturday learning vertex buffers (what a saturday, eh? ), and it wasn''t that hard actually.I implemented vertex buffers in my code, but to my surprise i saw no real speedup whatsoever. In fact, a strange sluggishness in the controls could be observed, rather than a speedup (however, i would not go as far as to call it a slowdown either, just a latency in the game controls - it''s a first person platform game b.t.w).Did i do things wrong? are the sluggish controls symptomatic of some noob-mistake in regards to using vertex buffers?I am using an nVidia Geforce 2 card, and mostly trianglefans drawn using DrawPrimitive.It should also be noted that i draw 90% of the triangles using vertex buffers, and 10% without. would that be the cause of my problems?cheers for helping this noob out fellas!regards,Krokus ;  how many triangles per vertex buffer? per draw primitive call? you want as many as possible, fewest calls to the driver is generally best. at least 200 triangles per draw prim call is probably minimum,  ;  The d3d docs say you should go for at least 1000 vertices per call ;  i think i read that 200 number from an nVidia paper, but it could also have been 2000, i''m not sure. how about more than you are rendering now ;  I heard UP-functions create their own vertexbuffer each time you call them.   .lick;  Cheers guys, i will try and increase the number of triangles for each call, and let you know in more detail as i have checked things out... check back soon!-K 