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

[[platformQuerySupport_win32,platformQuerySupport_win32]]
=== Win32 Platform

[open,refpage='vkGetPhysicalDeviceWin32PresentationSupportKHR',desc='Query queue family support for presentation on a Win32 display',type='protos']
--
To determine whether a queue family of a physical device supports
presentation to the Microsoft Windows desktop, call:

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

  * pname:physicalDevice is the physical device.
  * pname:queueFamilyIndex is the queue family index.

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

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

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