On Wed, Mar 7, 2018 at 11:25 PM, Keith Packard <kei...@keithp.com> wrote:

> Add support for the EXT_direct_mode_display extension. This just
> provides the vkReleaseDisplayEXT function.
>
> Signed-off-by: Keith Packard <kei...@keithp.com>
> ---
>  src/vulkan/wsi/wsi_common_display.c | 17 +++++++++++++++++
>  src/vulkan/wsi/wsi_common_display.h |  5 +++++
>  2 files changed, 22 insertions(+)
>
> diff --git a/src/vulkan/wsi/wsi_common_display.c
> b/src/vulkan/wsi/wsi_common_display.c
> index be31043f3de..45626541022 100644
> --- a/src/vulkan/wsi/wsi_common_display.c
> +++ b/src/vulkan/wsi/wsi_common_display.c
> @@ -1399,3 +1399,20 @@ wsi_display_finish_wsi(struct wsi_device
> *wsi_device,
>        vk_free(alloc, wsi);
>     }
>  }
> +
> +/*
> + * Implement vkReleaseDisplay
> + */
> +VkResult
> +wsi_release_display(VkPhysicalDevice            physical_device,
> +                    struct wsi_device           *wsi_device,
> +                    VkDisplayKHR                display)
> +{
> +   struct wsi_display           *wsi = (struct wsi_display *)
> wsi_device->wsi[VK_ICD_WSI_PLATFORM_DISPLAY];
> +
> +   if (wsi->fd >= 0) {
> +      close(wsi->fd);
> +      wsi->fd = -1;
>

This seems a bit odd.  Why is the FD not stored in the display?  What if
you acquire multiple displays for two-player VR?  If the master FD passed
in is not -1, we could just create a VkDisplayKHR object containing it.


> +   }
> +   return VK_SUCCESS;
> +}
> diff --git a/src/vulkan/wsi/wsi_common_display.h
> b/src/vulkan/wsi/wsi_common_display.h
> index b414a226293..5fbb6925e4a 100644
> --- a/src/vulkan/wsi/wsi_common_display.h
> +++ b/src/vulkan/wsi/wsi_common_display.h
> @@ -69,4 +69,9 @@ wsi_create_display_surface(VkInstance instance,
>                             const VkDisplaySurfaceCreateInfoKHR
> *pCreateInfo,
>                             VkSurfaceKHR *pSurface);
>
> +VkResult
> +wsi_release_display(VkPhysicalDevice            physical_device,
> +                    struct wsi_device           *wsi_device,
> +                    VkDisplayKHR                display);
> +
>  #endif
> --
> 2.16.2
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to