[PATCH v1 11/14] drm/xe/uapi: Add block diagram of a device
Souza, Jose
jose.souza at intel.com
Thu Dec 7 14:01:49 UTC 2023
On Thu, 2023-12-07 at 13:50 +0000, Francois Dugast wrote:
> 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 at intel.com>
> Signed-off-by: Francois Dugast <francois.dugast at intel.com>
> ---
> include/uapi/drm/xe_drm.h | 39 +++++++++++++++++++++++++++++++++++++++
> 1 file changed, 39 insertions(+)
>
> diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
> index 73e9d00a2111..b5117bc1f13c 100644
> --- a/include/uapi/drm/xe_drm.h
> +++ b/include/uapi/drm/xe_drm.h
> @@ -25,6 +25,45 @@ extern "C" {
> * 6. PMU
> */
>
> +/**
> + * DOC: Xe Device Block Diagram
> + *
> + * The diagram below represents a high-level simplification of a discrete
> + * GPU supported by the Xe driver. It shows some device components which
> + * are necessary to understand this API, as well as how their relations
> + * to each other. This diagram does not represent real hardware::
> + *
> + * ┌──────────────────────────────────────────────────────────────────┐
> + * │ ┌──────────────────────────────────────────────────┐ ┌─────────┐ │
> + * │ │ ┌───────────────────────┐ ┌─────┐ │ │ ┌─────┐ │ │
> + * │ │ │ VRAM0 ├───┤ ... │ │ │ │VRAM1│ │ │
> + * │ │ └───────────┬───────────┘ └─GT1─┘ │ │ └──┬──┘ │ │
> + * │ │ ┌──────────────────┴───────────────────────────┐ │ │ ┌──┴──┐ │ │
> + * │ │ │ ┌─────────────────────┐ ┌─────────────────┐ │ │ │ │ │ │ │
> + * │ │ │ │ ┌──┐ ┌──┐ ┌──┐ ┌──┐ │ │ ┌─────┐ ┌─────┐ │ │ │ │ │ │ │ │
> + * │ │ │ │ │EU│ │EU│ │EU│ │EU│ │ │ │RCS0 │ │BCS0 │ │ │ │ │ │ │ │ │
> + * │ │ │ │ └──┘ └──┘ └──┘ └──┘ │ │ └─────┘ └─────┘ │ │ │ │ │ │ │ │
> + * │ │ │ │ ┌──┐ ┌──┐ ┌──┐ ┌──┐ │ │ ┌─────┐ ┌─────┐ │ │ │ │ │ │ │ │
> + * │ │ │ │ │EU│ │EU│ │EU│ │EU│ │ │ │VCS0 │ │VCS1 │ │ │ │ │ │ │ │ │
> + * │ │ │ │ └──┘ └──┘ └──┘ └──┘ │ │ └─────┘ └─────┘ │ │ │ │ │ │ │ │
> + * │ │ │ │ ┌──┐ ┌──┐ ┌──┐ ┌──┐ │ │ ┌─────┐ ┌─────┐ │ │ │ │ │ │ │ │
> + * │ │ │ │ │EU│ │EU│ │EU│ │EU│ │ │ │VECS0│ │VECS1│ │ │ │ │ │ ... │ │ │
> + * │ │ │ │ └──┘ └──┘ └──┘ └──┘ │ │ └─────┘ └─────┘ │ │ │ │ │ │ │ │
> + * │ │ │ │ ┌──┐ ┌──┐ ┌──┐ ┌──┐ │ │ ┌─────┐ ┌─────┐ │ │ │ │ │ │ │ │
> + * │ │ │ │ │EU│ │EU│ │EU│ │EU│ │ │ │CCS0 │ │CCS1 │ │ │ │ │ │ │ │ │
> + * │ │ │ │ └──┘ └──┘ └──┘ └──┘ │ │ └─────┘ └─────┘ │ │ │ │ │ │ │ │
> + * │ │ │ └─────────DSS─────────┘ │ ┌─────┐ ┌─────┐ │ │ │ │ │ │ │ │
> + * │ │ │ │ │CCS2 │ │CCS3 │ │ │ │ │ │ │ │ │
> + * │ │ │ ┌─────┐ ┌─────┐ ┌─────┐ │ └─────┘ └─────┘ │ │ │ │ │ │ │ │
> + * │ │ │ │ ... │ │ ... │ │ ... │ │ │ │ │ │ │ │ │ │
> + * │ │ │ └─DSS─┘ └─DSS─┘ └─DSS─┘ └─────Engines─────┘ │ │ │ │ │ │ │
> + * │ │ └───────────────────────────GT0────────────────┘ │ │ └─GT2─┘ │ │
> + * │ └────────────────────────────Tile0─────────────────┘ └─ Tile1──┘ │
> + * └─────────────────────────────Device0───────┬──────────────────────┘
> + * │
> + * ───────────────────────┴────────── PCI bus
> + */
> +
> /**
> * DOC: Xe uAPI Overview
> *
More information about the Intel-xe
mailing list