// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a
// Creative Commons Attribution 4.0 International License; see
// http://creativecommons.org/licenses/by/4.0/

include::meta/VK_KHR_push_descriptor.txt[]

*Last Modified Date*::
    2017-09-12
*IP Status*::
    No known IP claims.
*Contributors*::
  - Jeff Bolz, NVIDIA
  - Michael Worcester, Imagination Technologies

This extension allows descriptors to be written into the command buffer,
while the implementation is responsible for managing their memory.
Push descriptors may enable easier porting from older APIs and in some cases
can be more efficient than writing descriptors into descriptor sets.

=== New Object Types

None.

=== New Enum Constants

  * Extending elink:VkStructureType:
  ** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR

  * Extending elink:VkDescriptorSetLayoutCreateFlagBits
  ** ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR

ifdef::VK_VERSION_1_1[]
  * Extending elink:VkDescriptorUpdateTemplateType
  ** ename:VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR
endif::VK_VERSION_1_1[]
=== New Enums

None.

=== New Structures

  * slink:VkPhysicalDevicePushDescriptorPropertiesKHR

=== New Functions

  * flink:vkCmdPushDescriptorSetKHR
ifdef::VK_VERSION_1_1[]
  * flink:vkCmdPushDescriptorSetWithTemplateKHR
endif::VK_VERSION_1_1[]

=== Issues

None.

=== Examples

None.

=== Version History

  * Revision 1, 2016-10-15 (Jeff Bolz)
    - Internal revisions

  * Revision 2, 2017-09-12 (Tobias Hector)
    - Added interactions with Vulkan 1.1
