1e5c31af7Sopenharmony_ci// Copyright 2016-2021 The Khronos Group, Inc. 2e5c31af7Sopenharmony_ci// 3e5c31af7Sopenharmony_ci// SPDX-License-Identifier: CC-BY-4.0 4e5c31af7Sopenharmony_ci 5e5c31af7Sopenharmony_ciinclude::{generated}/meta/{refprefix}VK_KHR_maintenance1.txt[] 6e5c31af7Sopenharmony_ci 7e5c31af7Sopenharmony_ci=== Other Extension Metadata 8e5c31af7Sopenharmony_ci 9e5c31af7Sopenharmony_ci*Last Modified Date*:: 10e5c31af7Sopenharmony_ci 2018-03-13 11e5c31af7Sopenharmony_ci*Interactions and External Dependencies*:: 12e5c31af7Sopenharmony_ci - Promoted to Vulkan 1.1 Core 13e5c31af7Sopenharmony_ci*Contributors*:: 14e5c31af7Sopenharmony_ci - Dan Ginsburg, Valve 15e5c31af7Sopenharmony_ci - Daniel Koch, NVIDIA 16e5c31af7Sopenharmony_ci - Daniel Rakos, AMD 17e5c31af7Sopenharmony_ci - Jan-Harald Fredriksen, ARM 18e5c31af7Sopenharmony_ci - Jason Ekstrand, Intel 19e5c31af7Sopenharmony_ci - Jeff Bolz, NVIDIA 20e5c31af7Sopenharmony_ci - Jesse Hall, Google 21e5c31af7Sopenharmony_ci - John Kessenich, Google 22e5c31af7Sopenharmony_ci - Michael Worcester, Imagination Technologies 23e5c31af7Sopenharmony_ci - Neil Henning, Codeplay Software Ltd. 24e5c31af7Sopenharmony_ci - Piers Daniell, NVIDIA 25e5c31af7Sopenharmony_ci - Slawomir Grajewski, Intel 26e5c31af7Sopenharmony_ci - Tobias Hector, Imagination Technologies 27e5c31af7Sopenharmony_ci - Tom Olson, ARM 28e5c31af7Sopenharmony_ci 29e5c31af7Sopenharmony_ci=== Description 30e5c31af7Sopenharmony_ci 31e5c31af7Sopenharmony_ci`VK_KHR_maintenance1` adds a collection of minor features that were 32e5c31af7Sopenharmony_ciintentionally left out or overlooked from the original Vulkan 1.0 release. 33e5c31af7Sopenharmony_ci 34e5c31af7Sopenharmony_ciThe new features are as follows: 35e5c31af7Sopenharmony_ci 36e5c31af7Sopenharmony_ci * Allow 2D and 2D array image views to be created from 3D images, which 37e5c31af7Sopenharmony_ci can then be used as color framebuffer attachments. 38e5c31af7Sopenharmony_ci This allows applications to render to slices of a 3D image. 39e5c31af7Sopenharmony_ci * Support flink:vkCmdCopyImage between 2D array layers and 3D slices. 40e5c31af7Sopenharmony_ci This extension allows copying from layers of a 2D array image to slices 41e5c31af7Sopenharmony_ci of a 3D image and vice versa. 42e5c31af7Sopenharmony_ci * Allow negative height to be specified in the 43e5c31af7Sopenharmony_ci slink:VkViewport::pname:height field to perform y-inversion of the 44e5c31af7Sopenharmony_ci clip-space to framebuffer-space transform. 45e5c31af7Sopenharmony_ci This allows apps to avoid having to use `gl_Position.y = -gl_Position.y` 46e5c31af7Sopenharmony_ci in shaders also targeting other APIs. 47e5c31af7Sopenharmony_ci * Allow implementations to express support for doing just transfers and 48e5c31af7Sopenharmony_ci clears of image formats that they otherwise support no other format 49e5c31af7Sopenharmony_ci features for. 50e5c31af7Sopenharmony_ci This is done by adding new format feature flags 51e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR and 52e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR. 53e5c31af7Sopenharmony_ci * Support flink:vkCmdFillBuffer on transfer-only queues. 54e5c31af7Sopenharmony_ci Previously flink:vkCmdFillBuffer was defined to only work on command 55e5c31af7Sopenharmony_ci buffers allocated from command pools which support graphics or compute 56e5c31af7Sopenharmony_ci queues. 57e5c31af7Sopenharmony_ci It is now allowed on queues that just support transfer operations. 58e5c31af7Sopenharmony_ci * Fix the inconsistency of how error conditions are returned between the 59e5c31af7Sopenharmony_ci flink:vkCreateGraphicsPipelines and flink:vkCreateComputePipelines 60e5c31af7Sopenharmony_ci functions and the flink:vkAllocateDescriptorSets and 61e5c31af7Sopenharmony_ci flink:vkAllocateCommandBuffers functions. 62e5c31af7Sopenharmony_ci * Add new ename:VK_ERROR_OUT_OF_POOL_MEMORY_KHR error so implementations 63e5c31af7Sopenharmony_ci can give a more precise reason for flink:vkAllocateDescriptorSets 64e5c31af7Sopenharmony_ci failures. 65e5c31af7Sopenharmony_ci * Add a new command flink:vkTrimCommandPoolKHR which gives the 66e5c31af7Sopenharmony_ci implementation an opportunity to release any unused command pool memory 67e5c31af7Sopenharmony_ci back to the system. 68e5c31af7Sopenharmony_ci 69e5c31af7Sopenharmony_ci=== Promotion to Vulkan 1.1 70e5c31af7Sopenharmony_ci 71e5c31af7Sopenharmony_ciAll functionality in this extension is included in core Vulkan 1.1, with the 72e5c31af7Sopenharmony_ciKHR suffix omitted. 73e5c31af7Sopenharmony_ciThe original type, enum and command names are still available as aliases of 74e5c31af7Sopenharmony_cithe core functionality. 75e5c31af7Sopenharmony_ci 76e5c31af7Sopenharmony_ciinclude::{generated}/interfaces/VK_KHR_maintenance1.txt[] 77e5c31af7Sopenharmony_ci 78e5c31af7Sopenharmony_ci=== Issues 79e5c31af7Sopenharmony_ci 80e5c31af7Sopenharmony_ci . Are viewports with zero height allowed? 81e5c31af7Sopenharmony_ci+ 82e5c31af7Sopenharmony_ci*RESOLVED*: Yes, although they have low utility. 83e5c31af7Sopenharmony_ci 84e5c31af7Sopenharmony_ci=== Version History 85e5c31af7Sopenharmony_ci 86e5c31af7Sopenharmony_ci * Revision 1, 2016-10-26 (Piers Daniell) 87e5c31af7Sopenharmony_ci - Internal revisions 88e5c31af7Sopenharmony_ci * Revision 2, 2018-03-13 (Jon Leech) 89e5c31af7Sopenharmony_ci - Add issue for zero-height viewports 90