Skip to content

Commit 33c6fda

Browse files
ifdurodrigovivi
authored andcommitted
drm/xe/uapi: Add block diagram of a device
In order to make proper use the uAPI, a prerequisite is to understand some key concepts about the discrete GPU devices which are supported by the Xe driver. For example, some structs defined in the uAPI are an abstraction of a hardware component with a specific role. This diagram helps to build a mental representation of a device how it is seen by the Xe driver. As written in the documentation, it does not intend to be a literal representation of an existing device. A lot more information could be added but the intention for the overview is to keep it simple, and go into detail as needed in other sections. v2: Add GT1 inside Tile0 (José Roberto de Souza) Reviewed-by: José Roberto de Souza <jose.souza@intel.com> Acked-by: José Roberto de Souza <jose.souza@intel.com> Acked-by: Mateusz Naklicki <mateusz.naklicki@intel.com> Signed-off-by: Francois Dugast <francois.dugast@intel.com> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
1 parent 535881a commit 33c6fda

1 file changed

Lines changed: 39 additions & 0 deletions

File tree

include/uapi/drm/xe_drm.h

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,45 @@ extern "C" {
2323
* 5. uEvents
2424
*/
2525

26+
/**
27+
* DOC: Xe Device Block Diagram
28+
*
29+
* The diagram below represents a high-level simplification of a discrete
30+
* GPU supported by the Xe driver. It shows some device components which
31+
* are necessary to understand this API, as well as how their relations
32+
* to each other. This diagram does not represent real hardware::
33+
*
34+
* ┌──────────────────────────────────────────────────────────────────┐
35+
* │ ┌──────────────────────────────────────────────────┐ ┌─────────┐ │
36+
* │ │ ┌───────────────────────┐ ┌─────┐ │ │ ┌─────┐ │ │
37+
* │ │ │ VRAM0 ├───┤ ... │ │ │ │VRAM1│ │ │
38+
* │ │ └───────────┬───────────┘ └─GT1─┘ │ │ └──┬──┘ │ │
39+
* │ │ ┌──────────────────┴───────────────────────────┐ │ │ ┌──┴──┐ │ │
40+
* │ │ │ ┌─────────────────────┐ ┌─────────────────┐ │ │ │ │ │ │ │
41+
* │ │ │ │ ┌──┐ ┌──┐ ┌──┐ ┌──┐ │ │ ┌─────┐ ┌─────┐ │ │ │ │ │ │ │ │
42+
* │ │ │ │ │EU│ │EU│ │EU│ │EU│ │ │ │RCS0 │ │BCS0 │ │ │ │ │ │ │ │ │
43+
* │ │ │ │ └──┘ └──┘ └──┘ └──┘ │ │ └─────┘ └─────┘ │ │ │ │ │ │ │ │
44+
* │ │ │ │ ┌──┐ ┌──┐ ┌──┐ ┌──┐ │ │ ┌─────┐ ┌─────┐ │ │ │ │ │ │ │ │
45+
* │ │ │ │ │EU│ │EU│ │EU│ │EU│ │ │ │VCS0 │ │VCS1 │ │ │ │ │ │ │ │ │
46+
* │ │ │ │ └──┘ └──┘ └──┘ └──┘ │ │ └─────┘ └─────┘ │ │ │ │ │ │ │ │
47+
* │ │ │ │ ┌──┐ ┌──┐ ┌──┐ ┌──┐ │ │ ┌─────┐ ┌─────┐ │ │ │ │ │ │ │ │
48+
* │ │ │ │ │EU│ │EU│ │EU│ │EU│ │ │ │VECS0│ │VECS1│ │ │ │ │ │ ... │ │ │
49+
* │ │ │ │ └──┘ └──┘ └──┘ └──┘ │ │ └─────┘ └─────┘ │ │ │ │ │ │ │ │
50+
* │ │ │ │ ┌──┐ ┌──┐ ┌──┐ ┌──┐ │ │ ┌─────┐ ┌─────┐ │ │ │ │ │ │ │ │
51+
* │ │ │ │ │EU│ │EU│ │EU│ │EU│ │ │ │CCS0 │ │CCS1 │ │ │ │ │ │ │ │ │
52+
* │ │ │ │ └──┘ └──┘ └──┘ └──┘ │ │ └─────┘ └─────┘ │ │ │ │ │ │ │ │
53+
* │ │ │ └─────────DSS─────────┘ │ ┌─────┐ ┌─────┐ │ │ │ │ │ │ │ │
54+
* │ │ │ │ │CCS2 │ │CCS3 │ │ │ │ │ │ │ │ │
55+
* │ │ │ ┌─────┐ ┌─────┐ ┌─────┐ │ └─────┘ └─────┘ │ │ │ │ │ │ │ │
56+
* │ │ │ │ ... │ │ ... │ │ ... │ │ │ │ │ │ │ │ │ │
57+
* │ │ │ └─DSS─┘ └─DSS─┘ └─DSS─┘ └─────Engines─────┘ │ │ │ │ │ │ │
58+
* │ │ └───────────────────────────GT0────────────────┘ │ │ └─GT2─┘ │ │
59+
* │ └────────────────────────────Tile0─────────────────┘ └─ Tile1──┘ │
60+
* └─────────────────────────────Device0───────┬──────────────────────┘
61+
* │
62+
* ───────────────────────┴────────── PCI bus
63+
*/
64+
2665
/**
2766
* DOC: Xe uAPI Overview
2867
*

0 commit comments

Comments
 (0)