   Vertex Rendering Cost
  On the last project I was working on I was told by one the graphics programmers that the cost to render 1 to 1,000 verts in Direct X was the same. Is this a true statement or did I misunderstand something.   
  That depends on what you mean by "rendering" a vertex.Vertex transformation is usually almost free if done on the GPU, so for a simple vertex shader, it may take just as long to transform 1 vertex as 1000.If you're rendering back-facing triangles, then unless you have a complex vertex shader, there'll be very little difference in rendering 1 or 1000 triangles.For normal triangles, rendering fewer triangles is always better, but there may not be much of a difference.   ;  What this statement means is that the overhead of a draw call and stalls due to state changes matter much more than transforming a thousand vertices. Usually, within reasonable limits, it is therefore often not worth bothering whether to draw an extra 1000 or 2000 vertices.Doing some level-of-detail calculations and rendering a distant model with 150 vertices (re-uploading the data from CPU every frame) will in all likelihood be MUCH slower than simply throwing a 2000-5000 vert model at the graphics card, which it will hold in GPU memory.However, you need to be careful not to misinterpret this statement insofar as the number of vertices does not matter. One could say that if 1,000 is the same as 1, then 1,000,000 is the same as 1,000 as well. That is NOT the case.Transforming vertices does have a cost, although in reasonable settings, the cost is relatively small compared to other things. Thus, one should not be purposely wasteful, but one should not really worry too much either.Last generation graphics cards had dedicated vertex transform units which would do around 100-500 million transformations per second (depending on complexity). The other stages of the rendering pipeline were separate, so the number of vertex transforms barely had any impact at all as long as you did not saturate the vertex stage.Current generation graphics cards are "unified", which means they reassign the same hardware resources to different stages (vertex, geometry processing, fragment processing...) as needed. Thus, burning more cycles for vertices automatically means you have fewer cycles left for other things.However, current generation chips have enough power to fill a few billion pixels per second, so again, in contrast to "billions", you need not worry about "a few thousand".   ;Quote:Original post by samothWhat this statement means is that the overhead of a draw call and stalls due to state changes matter much more than transforming a thousand vertices. Usually, within reasonable limits, it is therefore often not worth bothering whether to draw an extra 1000 or 2000 vertices.Doing some level-of-detail calculations and rendering a distant model with 150 vertices (re-uploading the data from CPU every frame) will in all likelihood be MUCH slower than simply throwing a 2000-5000 vert model at the graphics card, which it will hold in GPU memory.However, you need to be careful not to misinterpret this statement insofar as the number of vertices does not matter. One could say that if 1,000 is the same as 1, then 1,000,000 is the same as 1,000 as well. That is NOT the case.Transforming vertices does have a cost, although in reasonable settings, the cost is relatively small compared to other things. Thus, one should not be purposely wasteful, but one should not really worry too much either.Last generation graphics cards had dedicated vertex transform units which would do around 100-500 million transformations per second (depending on complexity). The other stages of the rendering pipeline were separate, so the number of vertex transforms barely had any impact at all as long as you did not saturate the vertex stage.Current generation graphics cards are "unified", which means they reassign the same hardware resources to different stages (vertex, geometry processing, fragment processing...) as needed. Thus, burning more cycles for vertices automatically means you have fewer cycles left for other things.However, current generation chips have enough power to fill a few billion pixels per second, so again, in contrast to "billions", you need not worry about "a few thousand".Hey Samoth,Thanks a lot for your vary detailed answer it was exactly what I was looking for.Cheers-Sam   