• Welcome to TechPowerUp Forums, Guest! Please check out our forum guidelines for info related to our community.

How 3D is handled by hardware ?

Joined
Jun 16, 2020
Messages
32 (0.02/day)
System Name X99-A
Processor 5930k
Motherboard X99-A
Cooling Corsair H105
Memory 32gigs
Video Card(s) 1050 Ti
Power Supply EVGA Supernova 850G
Software Wind 10 64bit
Hello !

I'm making article regarding 3d in general , so I need to clear some things for myself.
particularly , How hardware handles 3d info during creation and drawing of 3d objects , I'm interested in sequence of those events , what comes first and what is second and third.
role of CPU RAM and VRAM.

No reason to unfold those questions if place is different
So, Any chance to find those answers here ?

Thank you !
 
Joined
May 8, 2016
Messages
2,024 (0.62/day)
System Name BOX
Processor Core i7 6950X @ 4,26GHz (1,28V)
Motherboard X99 SOC Champion (BIOS F23c + bifurcation mod)
Cooling Thermalright Venomous-X + 2x Delta 38mm PWM (Push-Pull)
Memory Patriot Viper Steel 4000MHz CL16 4x8GB (@3240MHz CL12.12.12.24 CR2T @ 1,48V)
Video Card(s) Titan V (~1650MHz @ 0.77V, HBM2 1GHz, Forced P2 state [OFF])
Storage WD SN850X 2TB + Samsung EVO 2TB (SATA) + Seagate Exos X20 20TB (4Kn mode)
Display(s) LG 27GP950-B
Case Fractal Design Meshify 2 XL
Audio Device(s) Motu M4 (audio interface) + ATH-A900Z + Behringer C-1
Power Supply Seasonic X-760 (760W)
Mouse Logitech RX-250
Keyboard HP KB-9970
Software Windows 10 Pro x64
Joined
Jun 16, 2020
Messages
32 (0.02/day)
System Name X99-A
Processor 5930k
Motherboard X99-A
Cooling Corsair H105
Memory 32gigs
Video Card(s) 1050 Ti
Power Supply EVGA Supernova 850G
Software Wind 10 64bit
actually question is simpler than those texts, I will read them maybe they will clear a cloud . actually here is my question


when creating 3d object let's say with 10mil triangles PC RAM is getting filled and you can see it in task manager
so to draw it on screen we need GPU , I need to understand the sequence of those events

1. CPU is telling 3d software to create sphere with 10 mil triangles
we entered 10mil and hit enter , what happens next , next is creation process

2. vertices created and moved into RAM at first place
(why it puts it into ram if it can just send it into VRAM directly) ?

if it sends vertices into RAM at first place
then that info needs to be duplicated into VRAM in order to draw it right ?

3. So we have exact point array duplication from RAM into VRAM in order to draw shell over those vertices (primitive creation process)
GPU has 3 main tasks

1) process vertices
2) draw vector shell over vertices
3) and finally rasterize image

how generally all that works can anyone explain? interested in sequence of events , which comes first and which second and third.
 
Last edited:
Joined
May 8, 2016
Messages
2,024 (0.62/day)
System Name BOX
Processor Core i7 6950X @ 4,26GHz (1,28V)
Motherboard X99 SOC Champion (BIOS F23c + bifurcation mod)
Cooling Thermalright Venomous-X + 2x Delta 38mm PWM (Push-Pull)
Memory Patriot Viper Steel 4000MHz CL16 4x8GB (@3240MHz CL12.12.12.24 CR2T @ 1,48V)
Video Card(s) Titan V (~1650MHz @ 0.77V, HBM2 1GHz, Forced P2 state [OFF])
Storage WD SN850X 2TB + Samsung EVO 2TB (SATA) + Seagate Exos X20 20TB (4Kn mode)
Display(s) LG 27GP950-B
Case Fractal Design Meshify 2 XL
Audio Device(s) Motu M4 (audio interface) + ATH-A900Z + Behringer C-1
Power Supply Seasonic X-760 (760W)
Mouse Logitech RX-250
Keyboard HP KB-9970
Software Windows 10 Pro x64
Like this ?




^A bit dated, but still good enough (DX11 adds tesselation stuff, and now we got DX12 with ray tracing on top of that).
 
Joined
Jun 16, 2020
Messages
32 (0.02/day)
System Name X99-A
Processor 5930k
Motherboard X99-A
Cooling Corsair H105
Memory 32gigs
Video Card(s) 1050 Ti
Power Supply EVGA Supernova 850G
Software Wind 10 64bit
yes but it's overcomplicated , I don't need to dive so deep inside , just want simple answers on some questions .
On required level I know 75% of that stuff I just need that rest 25% that I dont understand to fill up a whole picture

or maybe even cartoonify that somehow like:

after user presses button "create a sphere"
CPU says to 3d max:
"create a sphere"

1) 3d max starts code and vertices for future sphere are created, and stored into RAM at first place (but now we need to see them)
stored as a bunch of float numbers , everything in 3d is triangle , so, little math :

1 triangle = 3 points
and 1 point = 3 float numbers to hold its position
conclusion: 1 million triangle object = 9 million float point numbers only to hold a position of those points/vertices in 3d space
+ integer numbers of vertex index for every vertex.

2) now user needs to see that sphere ...
GPU processing unit needs to do some operations on that 9 million float numbers which were copied from RAM into VRAM right ?
so after copying that info from RAM into VRAM GPU starts to draw a shell over those vertices according to vertex indexes (indexing is required to know which vertex belongs to which triangle)

but those float numbers stay in RAM also , it never vanishes from there , it's dumb duplication of information from RAM to VRAM right ?

if paging file is off and I have 2 gigs of RAM but 8 gigs of VRAM, I will never use those 8 gigs of VRAM because my RAM can only handle and send 2 gigs right ?
you can say that it might send them part by part into VRAM but I assume it can't because it never flushes the RAM from triangles while working with 3d
so in that case RAM will bottleneck your GPU and GPU VRAM will always be filled only maximum with 2 gigs .

can you fill how I'm struggle to understand that simple thing , but still not able to find someone who will explain the process ... I need to know the sequence in which it happens
 
Joined
May 8, 2016
Messages
2,024 (0.62/day)
System Name BOX
Processor Core i7 6950X @ 4,26GHz (1,28V)
Motherboard X99 SOC Champion (BIOS F23c + bifurcation mod)
Cooling Thermalright Venomous-X + 2x Delta 38mm PWM (Push-Pull)
Memory Patriot Viper Steel 4000MHz CL16 4x8GB (@3240MHz CL12.12.12.24 CR2T @ 1,48V)
Video Card(s) Titan V (~1650MHz @ 0.77V, HBM2 1GHz, Forced P2 state [OFF])
Storage WD SN850X 2TB + Samsung EVO 2TB (SATA) + Seagate Exos X20 20TB (4Kn mode)
Display(s) LG 27GP950-B
Case Fractal Design Meshify 2 XL
Audio Device(s) Motu M4 (audio interface) + ATH-A900Z + Behringer C-1
Power Supply Seasonic X-760 (760W)
Mouse Logitech RX-250
Keyboard HP KB-9970
Software Windows 10 Pro x64
Here's a response from someone I know :
How hardware handles 3d info during creation and drawing of 3d objects , I'm interested in sequence of those events , what comes first and what is second and third.
"A Program on the CPU creates a scenegraph of objects.
A scenegraph is a datastructure in memory that stores, organizes and contains addresses to collections of vertex buffer objects (VBO)
Each vertex buffer object is a specific type of buffer made of a collection of vertices and connected faces.
When rendering these VBO's they are submitted as pointers to system memory (addresses) to the Graphics Data Queue (A transport structure of the graphics driver) this handles transport of the data across the PCI-e bus to the GPU's memory) once present they can be called by the submitting program and manipulated via the memory pointer returned from the graphics API.
When they are ready to be drawn, a drawcall referncing a VBO or collections of VBO's can be made to the Graphics API which submits them to the GPU pipeline for processing and ultimately being displayed on screen.(edited)
Alternatively geometry can be submitted and drawn directly via Drawcalls to the Graphics API
This submits all relevant data via the various Draw, Data, Command Queues to the Graphics driver and ultimately graphics core.

Problem is, specific way it's done is VERY VERY API/Program dependent.
It's basicly up to developer to decide how he want's to do stuff and what tools he want's to use."

As for RAM vs. VRAM :
You don't need 2GB of RAM to adress 2GB of VRAM, because virtual memory/adress space.

VRAM.png


Source : LINK.

PS. Don't expect simple answer for a complicated topic/problem.
There may not be one from the start.
 
Last edited:
Joined
Jun 16, 2020
Messages
32 (0.02/day)
System Name X99-A
Processor 5930k
Motherboard X99-A
Cooling Corsair H105
Memory 32gigs
Video Card(s) 1050 Ti
Power Supply EVGA Supernova 850G
Software Wind 10 64bit
still complicated , can you cartoonify that by words like above I described .
its too much info for me i dont have time to learn all 100+ unclear unfamiliar words presented there on slides.
just need to have simple diagram described by words , no need to draw graphics .
for children , what happens when we create a sphere , first software creates vertex and puts it in RAM , step by step . mybe its not putting them into ram i dont know...
thank you for you efforts 007 , I see you want to help . big thank you
 
Joined
Jul 19, 2006
Messages
43,629 (6.36/day)
Processor AMD Ryzen 7 7800X3D
Motherboard ASUS TUF x670e-Plus Wifi
Cooling EK AIO 360. Phantek T30 fans.
Memory 64GB G.Skill 6000Mhz
Video Card(s) Asus RTX 4090
Storage WD/Samsung m.2's
Display(s) LG C2 Evo OLED 42"
Case Fractal Design North
Audio Device(s) Topping E70 DAC, SMSL SP200 Amp, Adam Audio T5V's, Hifiman Sundara's.
Power Supply FSP Hydro Ti PRO 1000W
Mouse Razer Basilisk V3 Pro
Keyboard Epomaker 84 key
Software Windows 11 Pro
If you're writing an article on it, perhaps it's a good idea to actually understand the complexities, then make it less complicated through the way you describe it, instead of having others do that work for you.
 
Joined
Feb 3, 2017
Messages
3,986 (1.33/day)
Processor Ryzen 7800X3D
Motherboard ROG STRIX B650E-F GAMING WIFI
Memory 2x16GB G.Skill Flare X5 DDR5-6000 CL36 (F5-6000J3636F16GX2-FX5)
Video Card(s) INNO3D GeForce RTX™ 4070 Ti SUPER TWIN X2
Storage 2TB Samsung 980 PRO, 4TB WD Black SN850X
Display(s) 42" LG C2 OLED, 27" ASUS PG279Q
Case Thermaltake Core P5
Power Supply Fractal Design Ion+ Platinum 760W
Mouse Corsair Dark Core RGB Pro SE
Keyboard Corsair K100 RGB
VR HMD HTC Vive Cosmos
Joined
Jun 16, 2020
Messages
32 (0.02/day)
System Name X99-A
Processor 5930k
Motherboard X99-A
Cooling Corsair H105
Memory 32gigs
Video Card(s) 1050 Ti
Power Supply EVGA Supernova 850G
Software Wind 10 64bit
erocker , Im not making article for jensen huang ... I just need to describe and set some understanding what is going on under the hood, just in few simple sentences ... 3d data generation from hardware point of view is not my specific profile , you advicing me to become familiar in every aspect of it only to say few correct words ... lot of a free time you have there.
 
Last edited:
Joined
Jan 8, 2017
Messages
9,802 (3.23/day)
System Name Good enough
Processor AMD Ryzen R9 7900 - Alphacool Eisblock XPX Aurora Edge
Motherboard ASRock B650 Pro RS
Cooling 2x 360mm NexXxoS ST30 X-Flow, 1x 360mm NexXxoS ST30, 1x 240mm NexXxoS ST30
Memory 32GB - FURY Beast RGB 5600 Mhz
Video Card(s) Sapphire RX 7900 XT - Alphacool Eisblock Aurora
Storage 1x Kingston KC3000 1TB 1x Kingston A2000 1TB, 1x Samsung 850 EVO 250GB , 1x Samsung 860 EVO 500GB
Display(s) LG UltraGear 32GN650-B + 4K Samsung TV
Case Phanteks NV7
Power Supply GPS-750C
Vertex data (the triangles) is created and stored into RAM using the CPU or more likely loaded from disk intended to be transferred over to the GPU. This is usually referred to as "buffer object".

It is then transferred over to the memory of the GPU (VRAM) over the PCIe connection.

A shader which is a program that is meant to run on the GPU is also transferred into the GPU memory.

The CPU tells the GPU to start running the shader. This is usually referred to as a "draw call".

The shader runs in parallel for every vertex or pixel that was stored into the GPU memory. Shaders can "move around" triangles and "give color" to pixels.

Then the triangles are filled by something called a rasterizer, this creates the final image that you see.

This is as simple as it can possibly get.
 
Last edited:
Joined
Nov 4, 2005
Messages
12,173 (1.71/day)
System Name Compy 386
Processor 7800X3D
Motherboard Asus
Cooling Air for now.....
Memory 64 GB DDR5 6400Mhz
Video Card(s) 7900XTX 310 Merc
Storage Samsung 990 2TB, 2 SP 2TB SSDs, 24TB Enterprise drives
Display(s) 55" Samsung 4K HDR
Audio Device(s) ATI HDMI
Mouse Logitech MX518
Keyboard Razer
Software A lot.
Benchmark Scores Its fast. Enough.
Without understanding the nuance of how it works to some degree is like asking how do you breathe?

The nuance is what makes it work, not the idea or theory. Everything in a computer is either a yes or no question.

So for your example of create a circle with 10 million triangles. That is step 79 of 5000.


First you have to have an address space, like a address to the field with noting where we can start.

Then you get the size of the field so you know where to start the rendering at. It also sets the scale of any object.

After that you have to create objects to put on/in the field.

Then you need coordinates of where each point should be.
 
Joined
Jun 16, 2020
Messages
32 (0.02/day)
System Name X99-A
Processor 5930k
Motherboard X99-A
Cooling Corsair H105
Memory 32gigs
Video Card(s) 1050 Ti
Power Supply EVGA Supernova 850G
Software Wind 10 64bit
Vya , that is way better , thanks .
I only interested in creation process not loading file from disk
only RAM VRAM and CPU , only sequence between those 3 hardwares.

so , cpu creating a sphere, that creates bunch of a float numbers (vertex point coordinates)
and also integer numbers (indexes for those points) to feed and tell GPU which vertex belong to which part

all that (floats (coordinates)+ integers(indexes)) go to system memory RAM, and then duplicated into VRAM for drawing by using shaders , hope that above described picture is right.
I want to be exactly correct about that data transfer sequence. who is first who is second , which part is generated by hardware and where it sends it.
 
Joined
May 8, 2016
Messages
2,024 (0.62/day)
System Name BOX
Processor Core i7 6950X @ 4,26GHz (1,28V)
Motherboard X99 SOC Champion (BIOS F23c + bifurcation mod)
Cooling Thermalright Venomous-X + 2x Delta 38mm PWM (Push-Pull)
Memory Patriot Viper Steel 4000MHz CL16 4x8GB (@3240MHz CL12.12.12.24 CR2T @ 1,48V)
Video Card(s) Titan V (~1650MHz @ 0.77V, HBM2 1GHz, Forced P2 state [OFF])
Storage WD SN850X 2TB + Samsung EVO 2TB (SATA) + Seagate Exos X20 20TB (4Kn mode)
Display(s) LG 27GP950-B
Case Fractal Design Meshify 2 XL
Audio Device(s) Motu M4 (audio interface) + ATH-A900Z + Behringer C-1
Power Supply Seasonic X-760 (760W)
Mouse Logitech RX-250
Keyboard HP KB-9970
Software Windows 10 Pro x64
The shader runs in parallel for every vertex or pixel that was stored into the GPU memory. Shaders can "move around" triangles and "give color" to pixels.

Then the triangles are filled by something called a rasterizer, this creates the final image that you see.
So... how do you color pixels in shader, when you need Rasteriser (last stage) to create them ?
(this is one of the problems of making this too simple...)

I want to be exactly correct about that data transfer sequence. who is first who is second , which part is generated by hardware and where it sends it.
That is not possible to do, because it depends on what you are using.
There is more than one way to make a house, and all of them are correct in creating it.
Same thing applies to making 2D images of 3D space.
 
Joined
Jun 16, 2020
Messages
32 (0.02/day)
System Name X99-A
Processor 5930k
Motherboard X99-A
Cooling Corsair H105
Memory 32gigs
Video Card(s) 1050 Ti
Power Supply EVGA Supernova 850G
Software Wind 10 64bit
so you are saying , some softwares might send data somehow differently than others , but I think all big host softwares like max maya houdini blender , they handle vertex/triangle creation in same way at least send data in same manner and in same sequence . again we have a CPU RAM and GPU , all that softwares i mentioned above sure create triangles in same manner. why you tend to complicate , take it more lightly , max maya they both create 3d right ? all they need to create points at first place and give them indexes , that is stored in ram and duplicated into vram for further drawing , but i still not sure about data duplication..
 
Joined
May 8, 2016
Messages
2,024 (0.62/day)
System Name BOX
Processor Core i7 6950X @ 4,26GHz (1,28V)
Motherboard X99 SOC Champion (BIOS F23c + bifurcation mod)
Cooling Thermalright Venomous-X + 2x Delta 38mm PWM (Push-Pull)
Memory Patriot Viper Steel 4000MHz CL16 4x8GB (@3240MHz CL12.12.12.24 CR2T @ 1,48V)
Video Card(s) Titan V (~1650MHz @ 0.77V, HBM2 1GHz, Forced P2 state [OFF])
Storage WD SN850X 2TB + Samsung EVO 2TB (SATA) + Seagate Exos X20 20TB (4Kn mode)
Display(s) LG 27GP950-B
Case Fractal Design Meshify 2 XL
Audio Device(s) Motu M4 (audio interface) + ATH-A900Z + Behringer C-1
Power Supply Seasonic X-760 (760W)
Mouse Logitech RX-250
Keyboard HP KB-9970
Software Windows 10 Pro x64
Pre-populating the GPU cache
The very first time you render with the GPU, the GPU renderer has to create a cache for the types of shaders and objects used. This can delay the time to the first pixel for your first render. To avoid these one-time delays, we recommend doing some of this in advance by pre-populating the cache before you do any renders as this will fill in the cache with a subset of the most common shader/object combinations. The Arnold plugins (like MtoA) have Pre-Populate GPU Cache menu command, and kick has a -gpu_warm flag. Note that pre-populating the cache can take up to 15 minutes. The cache only needs to be re-populated after installing a new Arnold version, updating to a new NVIDIA driver, or changing the hardware configuration of GPUs on the system.
Source : LINK.
It doesn't have to duplicate, it (GPU) can just create it by itself.
 
Joined
Nov 4, 2005
Messages
12,173 (1.71/day)
System Name Compy 386
Processor 7800X3D
Motherboard Asus
Cooling Air for now.....
Memory 64 GB DDR5 6400Mhz
Video Card(s) 7900XTX 310 Merc
Storage Samsung 990 2TB, 2 SP 2TB SSDs, 24TB Enterprise drives
Display(s) 55" Samsung 4K HDR
Audio Device(s) ATI HDMI
Mouse Logitech MX518
Keyboard Razer
Software A lot.
Benchmark Scores Its fast. Enough.
so you are saying , some softwares might send data somehow differently than others , but I think all big host softwares like max maya houdini blender , they handle vertex/triangle creation in same way at least send data in same manner and in same sequence . again we have a CPU RAM and GPU , all that softwares i mentioned above sure create triangles in same manner. why you tend to complicate , take it more lightly , max maya they both create 3d right ? all they need to create points at first place and give them indexes , that is stored in ram and duplicated into vram for further drawing , but i still not sure about data duplication..


Its no longer duplicated in RAM since DX 11 I believe.
 
Joined
Jan 8, 2017
Messages
9,802 (3.23/day)
System Name Good enough
Processor AMD Ryzen R9 7900 - Alphacool Eisblock XPX Aurora Edge
Motherboard ASRock B650 Pro RS
Cooling 2x 360mm NexXxoS ST30 X-Flow, 1x 360mm NexXxoS ST30, 1x 240mm NexXxoS ST30
Memory 32GB - FURY Beast RGB 5600 Mhz
Video Card(s) Sapphire RX 7900 XT - Alphacool Eisblock Aurora
Storage 1x Kingston KC3000 1TB 1x Kingston A2000 1TB, 1x Samsung 850 EVO 250GB , 1x Samsung 860 EVO 500GB
Display(s) LG UltraGear 32GN650-B + 4K Samsung TV
Case Phanteks NV7
Power Supply GPS-750C
So... how do you color pixels in shader, when you need Rasteriser (last stage) to create them ?
(this is one of the problems of making this too simple...)

The rasterizer just converts from floating point coordinates to integer space which the frame buffer needs. The colors are given by the fragment shaders, the order is correct. Am I missing something ?
 
Last edited:
Joined
May 8, 2016
Messages
2,024 (0.62/day)
System Name BOX
Processor Core i7 6950X @ 4,26GHz (1,28V)
Motherboard X99 SOC Champion (BIOS F23c + bifurcation mod)
Cooling Thermalright Venomous-X + 2x Delta 38mm PWM (Push-Pull)
Memory Patriot Viper Steel 4000MHz CL16 4x8GB (@3240MHz CL12.12.12.24 CR2T @ 1,48V)
Video Card(s) Titan V (~1650MHz @ 0.77V, HBM2 1GHz, Forced P2 state [OFF])
Storage WD SN850X 2TB + Samsung EVO 2TB (SATA) + Seagate Exos X20 20TB (4Kn mode)
Display(s) LG 27GP950-B
Case Fractal Design Meshify 2 XL
Audio Device(s) Motu M4 (audio interface) + ATH-A900Z + Behringer C-1
Power Supply Seasonic X-760 (760W)
Mouse Logitech RX-250
Keyboard HP KB-9970
Software Windows 10 Pro x64
@Vya Domus Rasteriser vs. Render output unit ?
Check "API mapped to GPU" pic I previously posted.
 
Joined
Jan 8, 2017
Messages
9,802 (3.23/day)
System Name Good enough
Processor AMD Ryzen R9 7900 - Alphacool Eisblock XPX Aurora Edge
Motherboard ASRock B650 Pro RS
Cooling 2x 360mm NexXxoS ST30 X-Flow, 1x 360mm NexXxoS ST30, 1x 240mm NexXxoS ST30
Memory 32GB - FURY Beast RGB 5600 Mhz
Video Card(s) Sapphire RX 7900 XT - Alphacool Eisblock Aurora
Storage 1x Kingston KC3000 1TB 1x Kingston A2000 1TB, 1x Samsung 850 EVO 250GB , 1x Samsung 860 EVO 500GB
Display(s) LG UltraGear 32GN650-B + 4K Samsung TV
Case Phanteks NV7
Power Supply GPS-750C
I mean the guy asked for how this works in general, not how it relates to APIs. I guess it's enough to know that the rasterization takes place and it's the thing that "fills up triangles".
 
Joined
May 8, 2016
Messages
2,024 (0.62/day)
System Name BOX
Processor Core i7 6950X @ 4,26GHz (1,28V)
Motherboard X99 SOC Champion (BIOS F23c + bifurcation mod)
Cooling Thermalright Venomous-X + 2x Delta 38mm PWM (Push-Pull)
Memory Patriot Viper Steel 4000MHz CL16 4x8GB (@3240MHz CL12.12.12.24 CR2T @ 1,48V)
Video Card(s) Titan V (~1650MHz @ 0.77V, HBM2 1GHz, Forced P2 state [OFF])
Storage WD SN850X 2TB + Samsung EVO 2TB (SATA) + Seagate Exos X20 20TB (4Kn mode)
Display(s) LG 27GP950-B
Case Fractal Design Meshify 2 XL
Audio Device(s) Motu M4 (audio interface) + ATH-A900Z + Behringer C-1
Power Supply Seasonic X-760 (760W)
Mouse Logitech RX-250
Keyboard HP KB-9970
Software Windows 10 Pro x64
You still need to know where what happends in GPU, right ?

Triangles go to Rasteriser(s) which output pixels.
Pixels are worked on with pixel shaders, and then are sent to ROPs for blending and to display.
^all this can be seen on pics from my previous post...

Dumb way to do it :
Data => Points => Triangles => Primitives* => Rasteriser => Pixels => Display.
*DX10 compatible and later stuff (ie. at this pretty much everything that is 64-bit only).
 
Last edited:
Joined
Jun 16, 2020
Messages
32 (0.02/day)
System Name X99-A
Processor 5930k
Motherboard X99-A
Cooling Corsair H105
Memory 32gigs
Video Card(s) 1050 Ti
Power Supply EVGA Supernova 850G
Software Wind 10 64bit
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.
 
Last edited:
Joined
Feb 3, 2017
Messages
3,986 (1.33/day)
Processor Ryzen 7800X3D
Motherboard ROG STRIX B650E-F GAMING WIFI
Memory 2x16GB G.Skill Flare X5 DDR5-6000 CL36 (F5-6000J3636F16GX2-FX5)
Video Card(s) INNO3D GeForce RTX™ 4070 Ti SUPER TWIN X2
Storage 2TB Samsung 980 PRO, 4TB WD Black SN850X
Display(s) 42" LG C2 OLED, 27" ASUS PG279Q
Case Thermaltake Core P5
Power Supply Fractal Design Ion+ Platinum 760W
Mouse Corsair Dark Core RGB Pro SE
Keyboard Corsair K100 RGB
VR HMD HTC Vive Cosmos
You are trying to find a one correct way in something that does not necessarily have one. It all depends. On the way you present the base data, on the APIs used etc.

Creating a triangle in 3ds Max does not inherently belong to the question of how 3D is handled by hardware. Creating a sphere in 3ds Max is content creation, separate from getting it rendered.
Instead of creating it in 3ds Max, you could load it from a disk for example. Depending on which API you use and how you do it, you could skip having it in RAM entirely.
If it is too big for VRAM, the data will spill over to RAM (not as RAM but as extension of VRAM, functionally different) but this has to do with virtual memory and addressing and there are multiple implementations of this.

The sphere can be generated in different ways. Pretty sure you'd want to get help from tessellator for it these days.
Digital-to-analog conversion has little to no relevance to handling 3D. This is the technical stage of getting image output that is pretty separate from everything else GPU does. Also, common outputs these days are digital.

You are saying you do not want to delve into specifics but then ask very specific questions :)
 
Joined
Jun 16, 2020
Messages
32 (0.02/day)
System Name X99-A
Processor 5930k
Motherboard X99-A
Cooling Corsair H105
Memory 32gigs
Video Card(s) 1050 Ti
Power Supply EVGA Supernova 850G
Software Wind 10 64bit
ok I'm talking about 3d max , let's narrow down that only to 3d max.

"Creating a sphere in 3ds Max is content creation " does word "content" changes a lot ? I dont think so...
everything in 3d world is content creation ...

"If it is too big for VRAM, the data will spill over to RAM "

That is very interesting, because it means that CPU directly accessing VRAM (never addresses ram while working in 3d unless overflow happens) while as you said "content creation"

Does it mean that , if you have 32 gigs of VRAM, and only 2 gigs of system RAM
object will not fill the RAM at all, because objects will freely fit into the VRAM?

According to that, creating 10 gigs amount of triangles in 3d max will not touch system RAM at all , right ?
only will fill the RAM when VRAM overflow
 
Top