Skip to content

vulkan/wsi: Really terminate DRM lease in wsi_release_display().

Mario Kleiner requested to merge kleinerm/mesa:vkReleaseDisplayFix into master

wsi_release_display() implements vkReleaseDisplayEXT() which is supposed to return control to the lessor of an output upon call, ie. the user gets the desktop GUI back on an output referenced by a VkDisplayKHR handle as soon as the application calls vkReleaseDisplayEXT(). This is currently not the case for Mesa radv and anv. The display goes dark and gets stuck until vkDestroyInstance() is called.

Fix: We need to terminate the wsi->wait_thread when close()'ing the wsi->fd, otherwise the wait_thread holds another reference to the wsi->fd, keeping the lease active, and thereby the leased output blocked, until vkDestroyInstance() is called.

This gives users their GUI back, instead of extended darkness.

Signed-off-by: Mario Kleiner mario.kleiner.de@gmail.com

Merge request reports