From ed873bab10b796597988220793be36b70fc6414a Mon Sep 17 00:00:00 2001 From: Erico Nunes Date: Mon, 21 Oct 2024 19:50:01 +0200 Subject: [PATCH] Primary node clarification for VK_EXT_physical_device_drm The extension hinted that the primary node represents display capabilities as its intended purpose, but the current text let it ambiguous enough that there has been confusion and proposed implementations which expose different devices for the primary node. Add clarification notes to further define the scope of primary node in the context of this extension. Signed-off-by: Erico Nunes --- appendices/VK_EXT_physical_device_drm.adoc | 11 +++++++++-- chapters/devsandqueues.adoc | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/appendices/VK_EXT_physical_device_drm.adoc b/appendices/VK_EXT_physical_device_drm.adoc index 72bcfed20c..817812c3f9 100644 --- a/appendices/VK_EXT_physical_device_drm.adoc +++ b/appendices/VK_EXT_physical_device_drm.adoc @@ -25,12 +25,19 @@ Unlike the EGL extension, this extension does not expose a string containing the name of the device file and instead exposes device minor numbers. DRM defines multiple device node types. -Each physical device may have one primary node and one render node -associated. +Each physical device is associated with a single underlying DRM device, which +may have one primary node and one render node. +The primary node, in the context of this extension, refers to the capability of +that device node to be used as a display subsystem. +Note that this is not the same definition as a "DRM primary device node" on +Linux, which may exist even for devices without a display subsystem. + Physical devices may have no primary node (e.g. if the device does not have a display subsystem), may have no render node (e.g. if it is a software rendering engine), or may have neither (e.g. if it is a software rendering engine without a display subsystem). +Physical devices which don't have a display subsystem implemented as part of +the same underlying DRM device report that as hasPrimary=false. To query DRM properties for a physical device, chain slink:VkPhysicalDeviceDrmPropertiesEXT to slink:VkPhysicalDeviceProperties2. diff --git a/chapters/devsandqueues.adoc b/chapters/devsandqueues.adoc index 2eb986bb71..fe38e80257 100644 --- a/chapters/devsandqueues.adoc +++ b/chapters/devsandqueues.adoc @@ -838,7 +838,7 @@ include::{generated}/api/structs/VkPhysicalDeviceDrmPropertiesEXT.adoc[] * pname:pNext is `NULL` or a pointer to a structure extending this structure. * pname:hasPrimary is a boolean indicating whether the physical device has - a DRM primary node. + a DRM primary node that can be used as a display subsystem. * pname:hasRender is a boolean indicating whether the physical device has a DRM render node. * pname:primaryMajor is the DRM primary node major number, if any.