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

[[platformQuerySupport_xcb,platformQuerySupport_xcb]]
=== XCB Platform

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

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

  * pname:physicalDevice is the physical device.
  * pname:queueFamilyIndex is the queue family index.
  * pname:connection is a pointer to an code:xcb_connection_t to the X
    server.
  * pname:visual_id is an X11 visual (code:xcb_visualid_t).

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

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

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