diff --git a/src/freedreno/ci/freedreno-a618-flakes.txt b/src/freedreno/ci/freedreno-a618-flakes.txt index 820a07e5ed9..3d0853fde5a 100644 --- a/src/freedreno/ci/freedreno-a618-flakes.txt +++ b/src/freedreno/ci/freedreno-a618-flakes.txt @@ -11,6 +11,3 @@ dEQP-VK.api.command_buffers.record_many_draws_secondary_2 # Sometimes hangchecks spill-dEQP-VK.graphicsfuzz.spv-stable-maze-O-dead-code - -# "dEQP-VK.wsi.display_control.register_display_event: vkRegisterDisplayEventEXT returned invalid result (Fail)" -dEQP-VK.wsi.display_control.register_display_event diff --git a/src/freedreno/ci/freedreno-a630-flakes.txt b/src/freedreno/ci/freedreno-a630-flakes.txt index e4ec4266ecb..4e7f435402a 100644 --- a/src/freedreno/ci/freedreno-a630-flakes.txt +++ b/src/freedreno/ci/freedreno-a630-flakes.txt @@ -95,9 +95,6 @@ dEQP-GLES3.functional.fbo.blit.conversion.rg8_to_r16f dEQP-VK.api.command_buffers.record_many_draws_primary_2 dEQP-VK.api.command_buffers.record_many_draws_secondary_2 -# "dEQP-VK.wsi.display_control.register_display_event: vkRegisterDisplayEventEXT returned invalid result (Fail)" -dEQP-VK.wsi.display_control.register_display_event - # Looks likely to be a hangcheck trigger. spill-dEQP-VK.graphicsfuzz.cov-nested-loop-large-array-index-using-vector-components diff --git a/src/freedreno/vulkan/meson.build b/src/freedreno/vulkan/meson.build index e948c88d336..1ab4dd390c4 100644 --- a/src/freedreno/vulkan/meson.build +++ b/src/freedreno/vulkan/meson.build @@ -71,7 +71,6 @@ if with_platform_wayland endif if system_has_kms_drm and not with_platform_android - libtu_files += files('tu_wsi_display.c') tu_wsi = true endif diff --git a/src/freedreno/vulkan/tu_device.c b/src/freedreno/vulkan/tu_device.c index 44189f784d6..a1684b848f2 100644 --- a/src/freedreno/vulkan/tu_device.c +++ b/src/freedreno/vulkan/tu_device.c @@ -166,13 +166,7 @@ get_device_extensions(const struct tu_physical_device *device, .KHR_timeline_semaphore = true, #endif #ifdef VK_USE_PLATFORM_DISPLAY_KHR - /* This extension is supported by common code across drivers, but it is - * missing some core functionality and fails - * dEQP-VK.wsi.display_control.register_device_event. Once some variant of - * https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12305 lands, - * then we can re-enable it. - */ - /* .EXT_display_control = true, */ + .EXT_display_control = true, #endif .EXT_external_memory_dma_buf = true, .EXT_image_drm_format_modifier = true, diff --git a/src/freedreno/vulkan/tu_wsi_display.c b/src/freedreno/vulkan/tu_wsi_display.c deleted file mode 100644 index db51d45b281..00000000000 --- a/src/freedreno/vulkan/tu_wsi_display.c +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Copyright © 2017 Keith Packard - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting documentation, and - * that the name of the copyright holders not be used in advertising or - * publicity pertaining to distribution of the software without specific, - * written prior permission. The copyright holders make no representations - * about the suitability of this software for any purpose. It is provided "as - * is" without express or implied warranty. - * - * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO - * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, - * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER - * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE - * OF THIS SOFTWARE. - */ - -#include -#include -#include -#include -#include -#include "tu_private.h" -#include "tu_cs.h" -#include "util/disk_cache.h" -#include "util/strtod.h" -#include "vk_util.h" -#include "vk_format.h" -#include "util/debug.h" -#include "wsi_common_display.h" -#include "vulkan/runtime/vk_common_entrypoints.h" - -/* VK_EXT_display_control */ - -VKAPI_ATTR VkResult VKAPI_CALL -tu_RegisterDeviceEventEXT(VkDevice _device, - const VkDeviceEventInfoEXT *device_event_info, - const VkAllocationCallbacks *allocator, - VkFence *out_fence) -{ - TU_FROM_HANDLE(tu_device, device, _device); - VkResult ret; - - VkFence _fence; - ret = vk_common_CreateFence(_device, &(VkFenceCreateInfo) {}, allocator, &_fence); - if (ret != VK_SUCCESS) - return ret; - - VK_FROM_HANDLE(vk_fence, fence, _fence); - - int sync_fd = tu_syncobj_to_fd(device, vk_fence_get_active_sync(fence)); - if (sync_fd >= 0) { - ret = wsi_register_device_event(_device, - &device->physical_device->wsi_device, - device_event_info, - allocator, - NULL, - sync_fd); - - close(sync_fd); - } else { - ret = VK_ERROR_OUT_OF_HOST_MEMORY; - } - - if (ret != VK_SUCCESS) - vk_common_DestroyFence(_device, _fence, allocator); - else - *out_fence = _fence; - - return ret; -} - -VKAPI_ATTR VkResult VKAPI_CALL -tu_RegisterDisplayEventEXT(VkDevice _device, - VkDisplayKHR display, - const VkDisplayEventInfoEXT *display_event_info, - const VkAllocationCallbacks *allocator, - VkFence *_fence) -{ - TU_FROM_HANDLE(tu_device, device, _device); - VkResult ret; - - ret = vk_common_CreateFence(_device, &(VkFenceCreateInfo) {}, allocator, _fence); - if (ret != VK_SUCCESS) - return ret; - - VK_FROM_HANDLE(vk_fence, fence, *_fence); - - int sync_fd = tu_syncobj_to_fd(device, vk_fence_get_active_sync(fence)); - - if (sync_fd >= 0) { - ret = wsi_register_display_event(_device, - &device->physical_device->wsi_device, - display, - display_event_info, - allocator, - NULL, - sync_fd); - - close(sync_fd); - } else { - ret = VK_ERROR_OUT_OF_HOST_MEMORY; - } - - if (ret != VK_SUCCESS) - vk_common_DestroyFence(_device, *_fence, allocator); - - return ret; -}