summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIago Toral Quiroga <itoral@igalia.com>2021-06-09 12:00:18 +0200
committerMarge Bot <eric+marge@anholt.net>2021-06-10 11:01:28 +0000
commitf884c2e3be363903a59dbee01868c7ad0bf0f346 (patch)
tree1ac7f5f0c9849ee2ba3deb134855f2259f852e7c
parent30115d0038d3977ad1d5c62d5804d5fe6d6f9535 (diff)
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@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11287>
-rw-r--r--docs/features.txt2
-rw-r--r--src/broadcom/vulkan/v3dv_device.c1
-rw-r--r--src/broadcom/vulkan/v3dv_wsi_display.c59
3 files changed, 61 insertions, 1 deletions
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,