From c8ed5ac206a7c05647e5faea258ab20bf12803cc Mon Sep 17 00:00:00 2001 From: Simon Zeni Date: Tue, 6 Jul 2021 13:04:09 -0400 Subject: [PATCH] anv: Implement VK_EXT_acquire_drm_display Signed-off-by: Simon Zeni Reviewed-by: Simon Ser Tested-by: Simon Ser Part-of: --- docs/features.txt | 2 +- docs/relnotes/new_features.txt | 2 +- src/intel/vulkan/anv_device.c | 1 + src/intel/vulkan/anv_wsi_display.c | 21 +++++++++++++++++++++ 4 files changed, 24 insertions(+), 2 deletions(-) diff --git a/docs/features.txt b/docs/features.txt index 29e8a7ae200..5a54634d036 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -563,7 +563,7 @@ Khronos extensions that are not part of any Vulkan version: VK_GOOGLE_user_type DONE (anv, radv) VK_IMG_filter_cubic DONE (tu/a650) VK_NV_compute_shader_derivatives DONE (anv, radv) - VK_EXT_acquire_drm_display DONE (radv) + VK_EXT_acquire_drm_display DONE (radv, anv) OpenCL 1.0 -- all DONE: diff --git a/docs/relnotes/new_features.txt b/docs/relnotes/new_features.txt index 6ffc4283b70..495a3545f28 100644 --- a/docs/relnotes/new_features.txt +++ b/docs/relnotes/new_features.txt @@ -7,7 +7,7 @@ VK_KHR_shader_subgroup_uniform_control_flow on Intel and RADV. VK_EXT_color_write_enable on RADV. 32-bit x86 builds now default disable x87 math and use sse2. GL ES 3.1 on GT21x hardware. -VK_EXT_acquire_drm_display on RADV. +VK_EXT_acquire_drm_display on RADV and ANV. VK_EXT_vertex_input_dynamic_state on lavapipe wideLines on lavapipe VK_EXT_line_rasterization on lavapipe diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c index f01f4c3dfe1..edb1e156013 100644 --- a/src/intel/vulkan/anv_device.c +++ b/src/intel/vulkan/anv_device.c @@ -191,6 +191,7 @@ static const struct vk_instance_extension_table instance_extensions = { .KHR_get_display_properties2 = true, .EXT_direct_mode_display = true, .EXT_display_surface_counter = true, + .EXT_acquire_drm_display = true, #endif }; diff --git a/src/intel/vulkan/anv_wsi_display.c b/src/intel/vulkan/anv_wsi_display.c index 8a3194a65d9..4bb0453f55f 100644 --- a/src/intel/vulkan/anv_wsi_display.c +++ b/src/intel/vulkan/anv_wsi_display.c @@ -315,3 +315,24 @@ anv_GetSwapchainCounterEXT(VkDevice _device, _device, &device->physical->wsi_device, swapchain, flag_bits, value); } + +VkResult +anv_AcquireDrmDisplayEXT(VkPhysicalDevice physical_device, + int32_t drm_fd, + VkDisplayKHR display) +{ + ANV_FROM_HANDLE(anv_physical_device, pdevice, physical_device); + + return wsi_acquire_drm_display(physical_device, &pdevice->wsi_device, drm_fd, display); +} + +VkResult +anv_GetDrmDisplayEXT(VkPhysicalDevice physical_device, + int32_t drm_fd, + uint32_t connector_id, + VkDisplayKHR *display) +{ + ANV_FROM_HANDLE(anv_physical_device, pdevice, physical_device); + + return wsi_get_drm_display(physical_device, &pdevice->wsi_device, drm_fd, connector_id, display); +}