1. Preamble
Copyright 2014-2024 The Khronos Group Inc.
This Specification is protected by copyright laws and contains material proprietary to Khronos. Except as described by these terms, it or any components may not be reproduced, republished, distributed, transmitted, displayed, broadcast or otherwise exploited in any manner without the express prior written permission of Khronos.
Khronos grants a conditional copyright license to use and reproduce the unmodified Specification for any purpose, without fee or royalty, EXCEPT no licenses to any patent, trademark or other intellectual property rights are granted under these terms.
Khronos makes no, and expressly disclaims any, representations or warranties, express or implied, regarding this Specification, including, without limitation: merchantability, fitness for a particular purpose, non-infringement of any intellectual property, correctness, accuracy, completeness, timeliness, and reliability. Under no circumstances will Khronos, or any of its Promoters, Contributors or Members, or their respective partners, officers, directors, employees, agents or representatives be liable for any damages, whether direct, indirect, special or consequential damages for lost revenues, lost profits, or otherwise, arising from or in connection with these materials.
This document contains extensions which are not ratified by Khronos, and as such is not a ratified Specification, though it contains text from (and is a superset of) the ratified Vulkan Specification. The ratified versions of the Vulkan Specification can be found at https://registry.khronos.org/vulkan/specs/1.3/html/vkspec.html (core only) and https://registry.khronos.org/vulkan/specs/1.3-khr-extensions/html/vkspec.html (core with all ratified extensions) .
This Specification contains substantially unmodified functionality from, and is a successor to, Khronos specifications including OpenGL, OpenGL ES and OpenCL.
The Khronos Intellectual Property Rights Policy defines the terms 'Scope', 'Compliant Portion', and 'Necessary Patent Claims'.
Some parts of this Specification are purely informative and so are EXCLUDED the Scope of this Specification. The [introduction-conventions] section of the [introduction] defines how these parts of the Specification are identified.
Where this Specification uses technical terminology, defined in the Glossary or otherwise, that refer to enabling technologies that are not expressly set forth in this Specification, those enabling technologies are EXCLUDED from the Scope of this Specification. For clarity, enabling technologies not disclosed with particularity in this Specification (e.g. semiconductor manufacturing technology, hardware architecture, processor architecture or microarchitecture, memory architecture, compiler technology, object oriented technology, basic operating system technology, compression technology, algorithms, and so on) are NOT to be considered expressly set forth; only those application program interfaces and data structures disclosed with particularity are included in the Scope of this Specification.
For purposes of the Khronos Intellectual Property Rights Policy as it relates to the definition of Necessary Patent Claims, all recommended or optional features, behaviors and functionality set forth in this Specification, if implemented, are considered to be included as Compliant Portions.
Where this Specification identifies specific sections of external references, only those specifically identified sections define normative functionality. The Khronos Intellectual Property Rights Policy excludes external references to materials and associated enabling technology not created by Khronos from the Scope of this Specification, and any licenses that may be required to implement such referenced materials and associated technologies must be obtained separately and may involve royalty payments.
Khronos and Vulkan are registered trademarks, and SPIR-V is a trademark of The Khronos Group Inc. OpenCL is a trademark of Apple Inc., used under license by Khronos. OpenGL is a registered trademark and the OpenGL ES logo is a trademark of Hewlett Packard Enterprise, used under license by Khronos. ASTC is a trademark of ARM Holdings PLC. All other product names, trademarks, and/or company names are used solely for identification and belong to their respective owners.
2. Lorem
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Congue eu consequat ac felis donec et odio. Enim nec dui nunc mattis enim. Nulla facilisi etiam dignissim diam quis enim lobortis scelerisque fermentum. Nam libero justo laoreet sit amet. Lacus luctus accumsan tortor posuere. Ultrices tincidunt arcu non sodales. Ut enim blandit volutpat maecenas volutpat blandit aliquam etiam. Sed id semper risus in. Natoque penatibus et magnis dis parturient montes.
Vestibulum morbi blandit cursus risus at ultrices mi tempus imperdiet. Dignissim cras tincidunt lobortis feugiat vivamus at augue eget arcu. Ultricies mi eget mauris pharetra. Ac turpis egestas maecenas pharetra convallis posuere morbi leo urna. Cras sed felis eget velit aliquet. Sit amet mauris commodo quis imperdiet. Malesuada pellentesque elit eget gravida cum sociis natoque. Faucibus pulvinar elementum integer enim neque volutpat ac tincidunt vitae.
2.1. Lorem Subchapter
Sed risus pretium quam vulputate dignissim suspendisse in est ante:
// Provided by VK_VERSION_1_3
void vkCmdCopyBufferToImage2(
VkCommandBuffer commandBuffer,
const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
or the equivalent command
// Provided by VK_KHR_copy_commands2
void vkCmdCopyBufferToImage2KHR(
VkCommandBuffer commandBuffer,
const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
-
commandBuffer
Mauris commodo quis imperdiet massa tincidunt nunc pulvinar. -
pCopyBufferToImageInfo
Odio morbi quis commodo odio aenean sed VkCopyBufferToImageInfo2.
Ac tortor dignissim convallis aenean et tortor. Amet porttitor eget dolor morbi non arcu. Consequat interdum varius sit amet. Tempus egestas sed sed risus pretium quam. Gravida in fermentum et sollicitudin ac orci phasellus egestas. Nulla facilisi etiam dignissim diam quis enim lobortis scelerisque fermentum. Tempus quam pellentesque nec nam aliquam. A pellentesque sit amet porttitor eget. Viverra justo nec ultrices dui sapien eget mi. Nullam vehicula ipsum a arcu. Amet volutpat consequat mauris nunc congue nisi. Tincidunt arcu non sodales neque.
Sed risus pretium quam vulputate dignissim suspendisse in est ante VkCopyBufferToImageInfo2
:
// Provided by VK_VERSION_1_3
typedef struct VkCopyBufferToImageInfo2 {
VkStructureType sType;
const void* pNext;
VkBuffer srcBuffer;
VkImage dstImage;
VkImageLayout dstImageLayout;
uint32_t regionCount;
const VkBufferImageCopy2* pRegions;
} VkCopyBufferToImageInfo2;
or the equivalent
// Provided by VK_KHR_copy_commands2
typedef VkCopyBufferToImageInfo2 VkCopyBufferToImageInfo2KHR;
-
sType
Natoque penatibus et magnis dis parturient montes nascetur. -
pNext
Iaculis eu non diam phasellus vestibulum. -
srcBuffer
Consequat nisl vel pretium lectus quam. -
dstImage
Euismod in pellentesque massa placerat duis ultricies lacus sed turpis. -
dstImageLayout
Ullamcorper eget nulla facilisi etiam dignissim diam quis enim. -
regionCount
Vel facilisis volutpat est velit egestas dui. -
pRegions
Consequat id porta nibh venenatis cras sed felis.
Gravida dictum fusce ut placerat orci nulla pellentesque dignissim enim vkCmdCopyBufferToImage2:
// Provided by VK_VERSION_1_3
typedef struct VkBufferImageCopy2 {
VkStructureType sType;
const void* pNext;
VkDeviceSize bufferOffset;
uint32_t bufferRowLength;
uint32_t bufferImageHeight;
VkImageSubresourceLayers imageSubresource;
VkOffset3D imageOffset;
VkExtent3D imageExtent;
} VkBufferImageCopy2;
or the equivalent
// Provided by VK_KHR_copy_commands2
typedef VkBufferImageCopy2 VkBufferImageCopy2KHR;
-
sType
Tristique senectus et netus et malesuada. -
pNext
Tempor commodo ullamcorper a lacus vestibulum sed arcu. -
bufferOffset
Tellus in metus vulputate eu scelerisque. Lectus sit amet est placerat in. -
bufferRowLength
andbufferImageHeight
Quam adipiscing vitae proin sagittis. Mattis pellentesque id nibh tortor id aliquet lectus proin nibhimageExtent
. -
imageSubresource
Sociis natoque penatibus et magnis dis parturient montes nascetur. -
imageOffset
Lobortis mattis aliquam faucibus purus in massa tempor nec. -
imageExtent
Ut ornare lectus sit amet est placerat in.
Integer quis auctor elit sed vulputate mi sit amet mauris. Ultrices sagittis orci a scelerisque purus semper eget duis.
3. Host Image Copy
Tristique senectus et netus et malesuada. Tempor commodo ullamcorper a lacus vestibulum sed arcu. Tellus in metus vulputate eu scelerisque. Lectus sit amet est placerat in. Quam adipiscing vitae proin sagittis. Mattis pellentesque id nibh tortor id aliquet lectus proin nibh. Sociis natoque penatibus et magnis dis parturient montes nascetur. Lobortis mattis aliquam faucibus purus in massa tempor nec. Ut ornare lectus sit amet est placerat in. Integer quis auctor elit sed vulputate mi sit amet mauris. Ultrices sagittis orci a scelerisque purus semper eget duis. Sit amet consectetur adipiscing elit duis tristique. Semper risus in hendrerit gravida rutrum. Lorem ipsum dolor sit amet consectetur adipiscing elit duis. Varius morbi enim nunc faucibus a pellentesque sit amet. Praesent semper feugiat nibh sed pulvinar proin. Porttitor leo a diam sollicitudin tempor id. In massa tempor nec feugiat nisl pretium fusce id. Amet venenatis urna cursus eget nunc scelerisque.
Cursus sit amet dictum sit amet justo:
// Provided by VK_EXT_host_image_copy
VkResult vkCopyMemoryToImageEXT(
VkDevice device,
const VkCopyMemoryToImageInfoEXT* pCopyMemoryToImageInfo);
-
device
Quis viverra nibh cras pulvinar mattis nuncpCopyMemoryToImageInfo->dstImage
. -
pCopyMemoryToImageInfo
Est velit egestas dui id ornare. Tristique nulla aliquet enim tortor at VkCopyMemoryToImageInfoEXT structure.
Turpis egestas pretium aenean pharetra vkCmdCopyBufferToImage2, magna ac placerat vestibulum lectus.
Morbi tincidunt augue interdum velit euismod in pellentesque massa VkCopyMemoryToImageInfoEXT
structure:
// Provided by VK_EXT_host_image_copy
typedef struct VkCopyMemoryToImageInfoEXT {
VkStructureType sType;
const void* pNext;
VkHostImageCopyFlagsEXT flags;
VkImage dstImage;
VkImageLayout dstImageLayout;
uint32_t regionCount;
const VkMemoryToImageCopyEXT* pRegions;
} VkCopyMemoryToImageInfoEXT;
-
sType
on enim praesent elementum facilisis. -
pNext
Ultricies tristiqueNULL
nulla aliquet enim tortor. -
flags
Volutpat ac tincidunt vitae semper. -
dstImage
Orci eu lobortis elementum nibh. -
dstImageLayout
Euismod elementum nisi quis eleifend quam adipiscing vitae proin. -
regionCount
Et netus et malesuada fames ac turpis egestas. -
pRegions
Lorem ipsum dolor sitr VkMemoryToImageCopyEXT amet consectetu.
vkCopyMemoryToImageEXT
pulvinar neque laoreet suspendisse interdum
consectetur libero. Id porta nibh venenatis cras sed felis. Massa vitae tortor
condimentum lacinia quis.
Congue eu consequat ac felis donec et odio. Enim nec
VkCopyMemoryToImageInfoEXT::pRegions
dui nunc mattis enim:
// Provided by VK_EXT_host_image_copy
typedef struct VkMemoryToImageCopyEXT {
VkStructureType sType;
const void* pNext;
const void* pHostPointer;
uint32_t memoryRowLength;
uint32_t memoryImageHeight;
VkImageSubresourceLayers imageSubresource;
VkOffset3D imageOffset;
VkExtent3D imageExtent;
} VkMemoryToImageCopyEXT;
-
sType
Nulla facilisi etiam dignissim diam quis enim lobortis scelerisque fermentum. -
pNext
Nam libero justo laoreet sit amet. -
pHostPointer
Lacus luctus accumsan tortor posuere. -
memoryRowLength
andmemoryImageHeight
Ultrices tincidunt arcu non sodales. Ut enim blandit volutpat maecenas volutpat blandit aliquam etiamimageExtent
. -
imageSubresource
Sed id semper risus in. Natoque penatibus et magnis dis parturient montes. -
imageOffset
Vestibulum morbi blandit cursusx
,y
,z
risus at ultrices mi tempus imperdiet. -
imageExtent
Dignissim cras tincidunt lobortis feugiat vivamus atwidth
,height
anddepth
augue eget arcu.
Ultricies mi eget mauris pharetra. Ac turpis VkBufferImageCopy2 egestas maecenas pharetra convallis posuere morbi leo urna. Cras sed felis eget velit aliquet. Sit amet mauris commodo quis imperdiet. Malesuada pellentesque elit eget gravida cum sociis natoque. Faucibus pulvinar elementum integer enim neque volutpat ac tincidunt vitae
Layers & Extensions (Informative)
Cursus euismod quis viverra nibh cras pulvinar.
Extension Dependencies
Id diam vel quam elementum
VK_EXT_host_image_copy
- Name String
-
VK_EXT_host_image_copy
- Extension Type
-
Device extension
- Registered Extension Number
-
271
- Revision
-
1
- Ratification Status
-
Ratified
- Extension and Version Dependencies
- Contact
-
-
Shahbaz Youssefi syoussefi
-
- Extension Proposal
Other Extension Metadata
- Last Modified Date
-
2186-02-28
- Contributors
-
-
Zabhash Ifessouy, Elgoog
-
Htiaf Dnartske, Aroballoc
-
Sreip Lleinad, AIDIVN
-
Description
Sed risus pretium quam vulputate dignissim suspendisse in est ante. Mauris commodo quis imperdiet massa tincidunt nunc pulvinar. Odio morbi quis commodo odio aenean sed. Quam adipiscing vitae proin sagittis nisl rhoncus. Vel facilisis volutpat est velit egestas dui. Consequat id porta nibh venenatis cras sed felis. Ac tortor dignissim convallis aenean et tortor. Amet porttitor eget dolor morbi non arcu. Consequat interdum varius sit amet. Tempus egestas sed sed risus pretium quam. Gravida in fermentum et sollicitudin ac orci phasellus egestas. Nulla facilisi etiam dignissim diam quis enim lobortis scelerisque fermentum. Tempus quam pellentesque nec nam aliquam. A pellentesque sit amet porttitor eget. Viverra justo nec ultrices dui sapien eget mi. Nullam vehicula ipsum a arcu. Amet volutpat consequat mauris nunc congue nisi. Tincidunt arcu non sodales neque.
New Structures
-
Extending VkImageFormatProperties2:
-
Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:
-
Extending VkPhysicalDeviceProperties2:
-
Extending VkSubresourceLayout2KHR:
New Enum Constants
-
VK_EXT_HOST_IMAGE_COPY_EXTENSION_NAME
-
VK_EXT_HOST_IMAGE_COPY_SPEC_VERSION
-
Extending VkFormatFeatureFlagBits2:
-
VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT
-
-
Extending VkImageUsageFlagBits:
-
VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT
-
-
Extending VkStructureType:
-
VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT
-
VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT
-
VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT
-
VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT
-
VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT
-
VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT
-
VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT
-
VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT
-
Issues
1) Natoque penatibus et magnis dis parturient montes nascetur.
RESOLVED: Iaculis eu non diam phasellus vestibulum. Consequat nisl vel pretium lectus quam. Euismod in pellentesque massa placerat duis ultricies lacus sed turpis. Ullamcorper eget nulla facilisi etiam dignissim diam quis enim. Id velit ut tortor pretium viverra suspendisse potenti.
2) Faucibus in ornare quam viverra orci sagittis eu volutpat?
RESOLVED: Eu facilisis sed odio morbi quis commodo. Pharetra magna ac placerat vestibulum lectus mauris. Ac felis donec et odio pellentesque diam volutpat commodo sed.