so the only way we will get these massive speedups promised by dx10 is if the dev says "sod dx9" ?
I think what Davros meant when saying "massive speedups" is if game A is implemented in DX 9 purely, and if game A has another version written in DX 10 purely then DX 10 version with all the new features enabled will look better but use less resources and generate higher fps than the DX 9 version. Is that correct?
Sometimes... It really depends on where your performance bottleneck is located.
If you're completely maxing out on, say, the multipliers in the pixel shaders, then, on the same HW, you'll render that part at the speed no matter which API you're using.
In practice, a scene has different parts with different properties. Some will be floating point limited, others will be texture unit limited etc.
Thanks for the link to the pdf. I understand for the most part but the term 'batches' as I am understanding refers to 'jobs for drawing objects'?
On the 1st page, it is written that "Every DrawIndexedPrimitive() is a batch". For non D3D users, DrawIndexedPrimitive is the "draw call" referred in the article, i.e. the CPU asking the GPU to draw the triangles (the "objects" as you call it) it prepared for rendering.
A quick summary of Draw Call costs would be :
D3D9 > OpenGL >= D3D10
I wouldn't be so sure about that. I remember one NVidia GPU architect-engineer once said that D3D10 will be much better than D3D9 in terms of draw call cost but it won't be as good as OpenGL. Unfortunately I couldn't find the post where he said it.
Gah, I meant to reply to this at the time. I meant changing the representation of a surface on disk to something the GPU likes to consume, before its sent to the hardware.I am not sure what you are mean with “format conversion” here.