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

include::{generated}/meta/{refprefix}VK_KHR_video_encode_queue.txt[]

=== Other Extension Metadata

*Last Modified Date*::
    2021-09-30
*IP Status*::
    No known IP claims.
*Contributors*::
  - Ahmed Abdelkhalek, AMD
  - Damien Kessler, NVIDIA
  - Daniel Rakos, AMD
  - George Hao, AMD
  - Jake Beju, AMD
  - Peter Fang, AMD
  - Piers Daniell, NVIDIA
  - Srinath Kumarapuram, NVIDIA
  - Thomas J. Meier, NVIDIA
  - Tony Zlatinski, NVIDIA
  - Yang Liu, AMD

include::{generated}/interfaces/VK_KHR_video_encode_queue.txt[]

=== Version History

  * Revision 1, 2018-07-23 (Ahmed Abdelkhalek)
    - Initial draft
  * Revision 1.1, 10/29/2019 (Tony Zlatinski)
    - Updated the reserved spec tokens and renamed VkVideoEncoderKHR to
      VkVideoSessionKHR
  * Revision 1.6, Jan 08 2020 (Tony Zlatinski)
    - API unify with the video_decode_queue spec
  * Revision 2, March 29 2021 (Tony Zlatinski)
    - Spec and API updates.
  * Revision 3, 2021-09-30 (Jon Leech)
    - Add interaction with `apiext:VK_KHR_format_feature_flags2` to `vk.xml`
