// Copyright (c) 2021 BlackBerry Limited.
//
// SPDX-License-Identifier: CC-BY-4.0

[[platformQuerySupport_screen,platformQuerySupport_screen]]
=== QNX Screen Platform

[open,refpage='vkGetPhysicalDeviceScreenPresentationSupportQNX',desc='Query physical device for presentation to QNX Screen',type='protos']
--
To determine whether a queue family of a physical device supports
presentation to a QNX Screen compositor, call:

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

  * pname:physicalDevice is the physical device.
  * pname:queueFamilyIndex is the queue family index.
  * pname:window is the QNX Screen code:window object.

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

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

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