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