// Copyright (c) 2014-2020 Khronos Group.
//
// SPDX-License-Identifier: CC-BY-4.0

[[capabilities-object-refresh]]
== Object Refresh Capabilities

[open,refpage='vkGetPhysicalDeviceRefreshableObjectTypesKHR',desc='Query refreshable objects',type='protos']
--
To query the set of object types that require periodic refreshing, call:

include::{generated}/api/protos/vkGetPhysicalDeviceRefreshableObjectTypesKHR.adoc[]

  * pname:physicalDevice is the physical device from which to query the set
    of refreshable object types.
  * pname:pRefreshableObjectTypeCount is a pointer to an integer related to
    the number of refreshable object types available or queried, as
    described below.
  * pname:pRefreshableObjectTypes is either `NULL` or a pointer to an array
    of elink:VkObjectType values, indicating the supported refreshable
    object types.

If pname:pRefreshableObjectTypes is `NULL`, then the number of refreshable
object types supported for the given pname:physicalDevice is returned in
pname:pRefreshableObjectTypeCount.
Otherwise, pname:pRefreshableObjectTypeCount must: point to a variable set
by the user to the number of elements in the pname:pRefreshableObjectTypes
array, and on return the variable is overwritten with the number of object
types actually written to pname:pRefreshableObjectTypes.
If the value of pname:pRefreshableObjectTypeCount is less than the number of
refreshable object types supported, at most
pname:pRefreshableObjectTypeCount object types will be written, and
ename:VK_INCOMPLETE will be returned instead of ename:VK_SUCCESS, to
indicate that not all the available object types were returned.

include::{generated}/validity/protos/vkGetPhysicalDeviceRefreshableObjectTypesKHR.adoc[]
--
