Geometry processing :
* CPU : Generates and prepares the geometric data (vertices, triangles, etc.) required for rendering.
* GPU : Receives the geometric data from the CPU and processes it to transform vertices, apply transformations (such as translation, rotation, and scaling), and set up the scene for rendering.
Rasterization :
* CPU : Sends the transformed geometric data to the GPU for rasterization.
* GPU : Rasterizes the geometric primitives (e.g., triangles) into pixels on the screen, determining which pixels are covered by each primitive.
Shading :
* CPU : Sets up the rendering pipeline, including loading shaders and sending rendering commands to the GPU.
* GPU : Executes vertex shaders and fragment shaders to calculate the color and other properties of each pixel based on lighting, textures, materials, and other effects.
Output to display :
* CPU : Handles final processing and output to the display device, including compositing the rendered image with other graphical elements.
* GPU : Renders the final image and sends it to the display device for output to the screen.