1. Preamble
Copyright 2014-2023 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_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
:
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 vkCmdCopyBufferToImage2KHR:
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.