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>
This commit is contained in:
Iago Toral Quiroga 2021-06-09 12:00:18 +02:00 committed by Marge Bot
parent 30115d0038
commit f884c2e3be
3 changed files with 61 additions and 1 deletions

View File

@ -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)

View File

@ -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,

View File

@ -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,