Vya, you god understanding what I need, just simple representation without that deep API codes and schemes, thanks. I don't need to know how GPU draws the stuff.
I need to know in what sequence and what kind of info is moving between 3 hardwares , CPU GPU and VRAM
Steevo "Its no longer duplicated in RAM since DX 11 I believe. "
directX is not hardware , how can you avoid duplication , only way to do that is to send those created vertices directly into VRAM using DirectX API
so it changes whole thing , it means CPU can directly communicate with DirectX and so it means it can directly access Vram avoiding RAM , I don't think so .
but if that is true how comes that I'm creating 3d object and RAM gets filled always , if it can throw everything directly into VRAM
agent_x007, thank you for your efforts , you wrote:
Data => Points => Triangles => Primitives* => Rasteriser => Pixels => Display.
it can't be like that ...
1) first is data ? what kind of data is that ?
if that data is vertex coordinates than they already are points in space.
2) Triangle itself is a primitive , so it's can't be separated like:
first is triangulation and then comes primitive creation.
"You still need to know what happens in GPU, right ? " No.
for me it's more than enough to know that GPU has 3 stages after it receives data (Point coordinate floats and point index integers ONLY) receives it from RAM right ?
after getting that data GPU performs:
1) vertex shader(point manipulation moving into space and scaling)
2) fragment shader (colorization + antialiasing)
3) digital to analog conversion.
all I need to know now is CPU RAM VRAM order, so getting back to your sequence above ,
Steevo says no need to duplication , it's shuffling my brain again .
start from scratch:
you have 3d max opened and you pushed button "create sphere" (lets say 10 mil triangles , that takes 400mb point coordinate float data (x1.001,y2.254,z1.541 and millions of other numbers like that) and also 100mb integers vertex indexes (1,2,3,4,5,6,7 and so on))
So , where that data goes at first place after you pushed the button , it goes into RAM I believe, because when I creating heavy sphere and monitoring task manager it rapidly fills the RAM a little bit
in same time it fills my VRAM , but when going way way higher let's say 100million triangles , it cant go into vram anymore , viewwport gets dead slow coz GPU is not able to draw it anymore
but my RAM is filled with 11+gigabites.