// Copyright 2014-2021 The Khronos Group, Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

[[platformQuerySupport_xlib,platformQuerySupport_xlib]]
=== Xlib Platform

[open,refpage='vkGetPhysicalDeviceXlibPresentationSupportKHR',desc='Query physical device for presentation to X11 server using Xlib',type='protos']
--
To determine whether a queue family of a physical device supports
presentation to an X11 server, using the Xlib client-side library, call:

include::{generated}/api/protos/vkGetPhysicalDeviceXlibPresentationSupportKHR.txt[]

  * pname:physicalDevice is the physical device.
  * pname:queueFamilyIndex is the queue family index.
  * pname:dpy is a pointer to an Xlib code:Display connection to the server.
  * pname:visualId is an X11 visual (code:VisualID).

This platform-specific function can: be called prior to creating a surface.

.Valid Usage
****
  * [[VUID-vkGetPhysicalDeviceXlibPresentationSupportKHR-queueFamilyIndex-01315]]
    pname:queueFamilyIndex must: be less than
    pname:pQueueFamilyPropertyCount returned by
    fname:vkGetPhysicalDeviceQueueFamilyProperties for the given
    pname:physicalDevice
****

include::{generated}/validity/protos/vkGetPhysicalDeviceXlibPresentationSupportKHR.txt[]
--
