Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Documentation/gpu: Create a GC entry in the amdgpu documentation

GC is a large block that plays a vital role for amdgpu; for this reason,
this commit creates one specific page for GC and adds extra information
about the CP component.

Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Rodrigo Siqueira <siqueira@igalia.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Rodrigo Siqueira and committed by
Alex Deucher
e7aaa5fb 4ede6d20

+52 -26
+4 -26
Documentation/gpu/amdgpu/driver-core.rst
··· 67 67 This is the graphics and compute engine, i.e., the block that 68 68 encompasses the 3D pipeline and and shader blocks. This is by far the 69 69 largest block on the GPU. The 3D pipeline has tons of sub-blocks. In 70 - addition to that, it also contains the CP microcontrollers (ME, PFP, 71 - CE, MEC) and the RLC microcontroller. It's exposed to userspace for 72 - user mode drivers (OpenGL, Vulkan, OpenCL, etc.) 70 + addition to that, it also contains the CP microcontrollers (ME, PFP, CE, 71 + MEC) and the RLC microcontroller. It's exposed to userspace for user mode 72 + drivers (OpenGL, Vulkan, OpenCL, etc.). More details in :ref:`Graphics (GFX) 73 + and Compute <amdgpu-gc>`. 73 74 74 75 VCN (Video Core Next) 75 76 This is the multi-media engine. It handles video and image encode and 76 77 decode. It's exposed to userspace for user mode drivers (VA-API, 77 78 OpenMAX, etc.) 78 - 79 - Graphics and Compute Microcontrollers 80 - ------------------------------------- 81 - 82 - CP (Command Processor) 83 - The name for the hardware block that encompasses the front end of the 84 - GFX/Compute pipeline. Consists mainly of a bunch of microcontrollers 85 - (PFP, ME, CE, MEC). The firmware that runs on these microcontrollers 86 - provides the driver interface to interact with the GFX/Compute engine. 87 - 88 - MEC (MicroEngine Compute) 89 - This is the microcontroller that controls the compute queues on the 90 - GFX/compute engine. 91 - 92 - MES (MicroEngine Scheduler) 93 - This is a new engine for managing queues. This is currently unused. 94 - 95 - RLC (RunList Controller) 96 - This is another microcontroller in the GFX/Compute engine. It handles 97 - power management related functionality within the GFX/Compute engine. 98 - The name is a vestige of old hardware where it was originally added 99 - and doesn't really have much relation to what the engine does now. 100 - 101 79 102 80 GFX, Compute, and SDMA Overall Behavior 103 81 =======================================
+47
Documentation/gpu/amdgpu/gc/index.rst
··· 1 + .. _amdgpu-gc: 2 + 3 + ======================================== 4 + drm/amdgpu - Graphics and Compute (GC) 5 + ======================================== 6 + 7 + The relationship between the CPU and GPU can be described as the 8 + producer-consumer problem, where the CPU fills out a buffer with operations 9 + (producer) to be executed by the GPU (consumer). The requested operations in 10 + the buffer are called Command Packets, which can be summarized as a compressed 11 + way of transmitting command information to the graphics controller. 12 + 13 + The component that acts as the front end between the CPU and the GPU is called 14 + the Command Processor (CP). This component is responsible for providing greater 15 + flexibility to the GC since CP makes it possible to program various aspects of 16 + the GPU pipeline. CP also coordinates the communication between the CPU and GPU 17 + via a mechanism named **Ring Buffers**, where the CPU appends information to 18 + the buffer while the GPU removes operations. It is relevant to highlight that a 19 + CPU can add a pointer to the Ring Buffer that points to another region of 20 + memory outside the Ring Buffer, and CP can handle it; this mechanism is called 21 + **Indirect Buffer (IB)**. CP receives and parses the Command Streams (CS), and 22 + writes the operations to the correct hardware blocks. 23 + 24 + Graphics (GFX) and Compute Microcontrollers 25 + ------------------------------------------- 26 + 27 + GC is a large block, and as a result, it has multiple firmware associated with 28 + it. Some of them are: 29 + 30 + CP (Command Processor) 31 + The name for the hardware block that encompasses the front end of the 32 + GFX/Compute pipeline. Consists mainly of a bunch of microcontrollers 33 + (PFP, ME, CE, MEC). The firmware that runs on these microcontrollers 34 + provides the driver interface to interact with the GFX/Compute engine. 35 + 36 + MEC (MicroEngine Compute) 37 + This is the microcontroller that controls the compute queues on the 38 + GFX/compute engine. 39 + 40 + MES (MicroEngine Scheduler) 41 + This is the engine for managing queues. 42 + 43 + RLC (RunList Controller) 44 + This is another microcontroller in the GFX/Compute engine. It handles 45 + power management related functionality within the GFX/Compute engine. 46 + The name is a vestige of old hardware where it was originally added 47 + and doesn't really have much relation to what the engine does now.
+1
Documentation/gpu/amdgpu/index.rst
··· 10 10 driver-core 11 11 amd-hardware-list-info 12 12 module-parameters 13 + gc/index 13 14 display/index 14 15 flashing 15 16 xgmi