Mesa (main): v3dv: implement VK_KHR_get_display_properties2
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Thu Jun 10 11:20:46 UTC 2021
Module: Mesa
Branch: main
Commit: f884c2e3be363903a59dbee01868c7ad0bf0f346
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f884c2e3be363903a59dbee01868c7ad0bf0f346
Author: Iago Toral Quiroga <itoral at igalia.com>
Date: Wed Jun 9 12:00:18 2021 +0200
v3dv: implement VK_KHR_get_display_properties2
This is entirely implemented in the common WSI code, we just need to
implement the API entry points.
Reviewed-by: Alejandro Piñeiro <apinheiro at igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11287>
---
docs/features.txt | 2 +-
src/broadcom/vulkan/v3dv_device.c | 1 +
src/broadcom/vulkan/v3dv_wsi_display.c | 59 ++++++++++++++++++++++++++++++++++
3 files changed, 61 insertions(+), 1 deletion(-)
diff --git a/docs/features.txt b/docs/features.txt
index f6591bd4c84..295c5638a83 100644
--- a/docs/features.txt
+++ b/docs/features.txt
@@ -486,7 +486,7 @@ Khronos extensions that are not part of any Vulkan version:
VK_KHR_external_semaphore_fd DONE (anv, radv, tu, v3dv)
VK_KHR_external_semaphore_win32 not started
VK_KHR_fragment_shading_rate not started
- VK_KHR_get_display_properties2 DONE (anv, lvp, radv, tu)
+ VK_KHR_get_display_properties2 DONE (anv, lvp, radv, tu, v3dv)
VK_KHR_get_surface_capabilities2 DONE (anv, lvp, radv, tu, vn)
VK_KHR_incremental_present DONE (anv, lvp, radv, tu)
VK_KHR_performance_query DONE (anv/gen8+, tu)
diff --git a/src/broadcom/vulkan/v3dv_device.c b/src/broadcom/vulkan/v3dv_device.c
index 2ff1ea3dd4d..331c0fcb168 100644
--- a/src/broadcom/vulkan/v3dv_device.c
+++ b/src/broadcom/vulkan/v3dv_device.c
@@ -84,6 +84,7 @@ static const struct vk_instance_extension_table instance_extensions = {
.KHR_external_fence_capabilities = true,
.KHR_external_memory_capabilities = true,
.KHR_external_semaphore_capabilities = true,
+ .KHR_get_display_properties2 = true,
.KHR_get_physical_device_properties2 = true,
#ifdef V3DV_HAS_SURFACE
.KHR_get_surface_capabilities2 = true,
diff --git a/src/broadcom/vulkan/v3dv_wsi_display.c b/src/broadcom/vulkan/v3dv_wsi_display.c
index 02cdb92404c..3d1cf91ecbe 100644
--- a/src/broadcom/vulkan/v3dv_wsi_display.c
+++ b/src/broadcom/vulkan/v3dv_wsi_display.c
@@ -38,6 +38,21 @@ v3dv_GetPhysicalDeviceDisplayPropertiesKHR(VkPhysicalDevice physical_device,
properties);
}
+VkResult
+v3dv_GetPhysicalDeviceDisplayProperties2KHR(
+ VkPhysicalDevice physical_device,
+ uint32_t *pPropertyCount,
+ VkDisplayProperties2KHR *pProperties)
+{
+ V3DV_FROM_HANDLE(v3dv_physical_device, pdevice, physical_device);
+
+ return wsi_display_get_physical_device_display_properties2(
+ physical_device,
+ &pdevice->wsi_device,
+ pPropertyCount,
+ pProperties);
+}
+
VKAPI_ATTR VkResult VKAPI_CALL
v3dv_GetPhysicalDeviceDisplayPlanePropertiesKHR(
VkPhysicalDevice physical_device,
@@ -53,6 +68,21 @@ v3dv_GetPhysicalDeviceDisplayPlanePropertiesKHR(
properties);
}
+VkResult
+v3dv_GetPhysicalDeviceDisplayPlaneProperties2KHR(
+ VkPhysicalDevice physical_device,
+ uint32_t *pPropertyCount,
+ VkDisplayPlaneProperties2KHR *pProperties)
+{
+ V3DV_FROM_HANDLE(v3dv_physical_device, pdevice, physical_device);
+
+ return wsi_display_get_physical_device_display_plane_properties2(
+ physical_device,
+ &pdevice->wsi_device,
+ pPropertyCount,
+ pProperties);
+}
+
VKAPI_ATTR VkResult VKAPI_CALL
v3dv_GetDisplayPlaneSupportedDisplaysKHR(VkPhysicalDevice physical_device,
uint32_t plane_index,
@@ -84,6 +114,21 @@ v3dv_GetDisplayModePropertiesKHR(VkPhysicalDevice physical_device,
properties);
}
+VkResult
+v3dv_GetDisplayModeProperties2KHR(VkPhysicalDevice physical_device,
+ VkDisplayKHR display,
+ uint32_t *pPropertyCount,
+ VkDisplayModeProperties2KHR *pProperties)
+{
+ V3DV_FROM_HANDLE(v3dv_physical_device, pdevice, physical_device);
+
+ return wsi_display_get_display_mode_properties2(physical_device,
+ &pdevice->wsi_device,
+ display,
+ pPropertyCount,
+ pProperties);
+}
+
VKAPI_ATTR VkResult VKAPI_CALL
v3dv_CreateDisplayModeKHR(VkPhysicalDevice physical_device,
VkDisplayKHR display,
@@ -116,6 +161,20 @@ v3dv_GetDisplayPlaneCapabilitiesKHR(VkPhysicalDevice physical_device,
capabilities);
}
+VkResult
+v3dv_GetDisplayPlaneCapabilities2KHR(
+ VkPhysicalDevice physical_device,
+ const VkDisplayPlaneInfo2KHR *pDisplayPlaneInfo,
+ VkDisplayPlaneCapabilities2KHR *pCapabilities)
+{
+ V3DV_FROM_HANDLE(v3dv_physical_device, pdevice, physical_device);
+
+ return wsi_get_display_plane_capabilities2(physical_device,
+ &pdevice->wsi_device,
+ pDisplayPlaneInfo,
+ pCapabilities);
+}
+
VKAPI_ATTR VkResult VKAPI_CALL
v3dv_CreateDisplayPlaneSurfaceKHR(
VkInstance _instance,
More information about the mesa-commit
mailing list