1<!DOCTYPE html>
2<html lang="en">
3<head>
4<meta charset="UTF-8">
5<meta http-equiv="X-UA-Compatible" content="IE=edge">
6<meta name="viewport" content="width=device-width, initial-scale=1.0">
7<meta name="generator" content="Asciidoctor 2.0.17">
8<meta name="author" content="The Khronos® Vulkan Working Group">
9<title>Test® 1.2.3 - (with VK_EXT_host_image_copy, VK_KHR_copy_commands2, VK_KHR_format_feature_flags2, VK_KHR_get_physical_device_properties2)</title>
10<style>
11/*! normalize.css v2.1.2 | MIT License | git.io/normalize */
12/* ========================================================================== HTML5 display definitions ========================================================================== */
13/** Correct `block` display not defined in IE 8/9. */
14article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary { display: block; }
15
16/** Correct `inline-block` display not defined in IE 8/9. */
17audio, canvas, video { display: inline-block; }
18
19/** Prevent modern browsers from displaying `audio` without controls. Remove excess height in iOS 5 devices. */
20audio:not([controls]) { display: none; height: 0; }
21
22/** Address `[hidden]` styling not present in IE 8/9. Hide the `template` element in IE, Safari, and Firefox < 22. */
23[hidden], template { display: none; }
24
25script { display: none !important; }
26
27/* ========================================================================== Base ========================================================================== */
28/** 1. Set default font family to sans-serif. 2. Prevent iOS text size adjust after orientation change, without disabling user zoom. */
29html { font-family: sans-serif; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ }
30
31/** Remove default margin. */
32body { margin: 0; }
33
34/* ========================================================================== Links ========================================================================== */
35/** Remove the gray background color from active links in IE 10. */
36a { background: transparent; }
37
38/** Address `outline` inconsistency between Chrome and other browsers. */
39a:focus { outline: thin dotted; }
40
41/** Improve readability when focused and also mouse hovered in all browsers. */
42a:active, a:hover { outline: 0; }
43
44/* ========================================================================== Typography ========================================================================== */
45/** Address variable `h1` font-size and margin within `section` and `article` contexts in Firefox 4+, Safari 5, and Chrome. */
46h1 { font-size: 2em; margin: 0.67em 0; }
47
48/** Address styling not present in IE 8/9, Safari 5, and Chrome. */
49abbr[title] { border-bottom: 1px dotted; }
50
51/** Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome. */
52b, strong { font-weight: bold; }
53
54/** Address styling not present in Safari 5 and Chrome. */
55dfn { font-style: italic; }
56
57/** Address differences between Firefox and other browsers. */
58hr { -moz-box-sizing: content-box; box-sizing: content-box; height: 0; }
59
60/** Address styling not present in IE 8/9. */
61mark { background: #ff0; color: #000; }
62
63/** Correct font family set oddly in Safari 5 and Chrome. */
64code, kbd, pre, samp { font-family: monospace, serif; font-size: 1em; }
65
66/** Improve readability of pre-formatted text in all browsers. */
67pre { white-space: pre-wrap; }
68
69/** Set consistent quote types. */
70q { quotes: "\201C" "\201D" "\2018" "\2019"; }
71
72/** Address inconsistent and variable font size in all browsers. */
73small { font-size: 80%; }
74
75/** Prevent `sub` and `sup` affecting `line-height` in all browsers. */
76sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
77
78sup { top: -0.5em; }
79
80sub { bottom: -0.25em; }
81
82/* ========================================================================== Embedded content ========================================================================== */
83/** Remove border when inside `a` element in IE 8/9. */
84img { border: 0; }
85
86/** Correct overflow displayed oddly in IE 9. */
87svg:not(:root) { overflow: hidden; }
88
89/* ========================================================================== Figures ========================================================================== */
90/** Address margin not present in IE 8/9 and Safari 5. */
91figure { margin: 0; }
92
93/* ========================================================================== Forms ========================================================================== */
94/** Define consistent border, margin, and padding. */
95fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; }
96
97/** 1. Correct `color` not being inherited in IE 8/9. 2. Remove padding so people aren't caught out if they zero out fieldsets. */
98legend { border: 0; /* 1 */ padding: 0; /* 2 */ }
99
100/** 1. Correct font family not being inherited in all browsers. 2. Correct font size not being inherited in all browsers. 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome. */
101button, input, select, textarea { font-family: inherit; /* 1 */ font-size: 100%; /* 2 */ margin: 0; /* 3 */ }
102
103/** Address Firefox 4+ setting `line-height` on `input` using `!important` in the UA stylesheet. */
104button, input { line-height: normal; }
105
106/** Address inconsistent `text-transform` inheritance for `button` and `select`. All other form control elements do not inherit `text-transform` values. Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+. Correct `select` style inheritance in Firefox 4+ and Opera. */
107button, select { text-transform: none; }
108
109/** 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls. 2. Correct inability to style clickable `input` types in iOS. 3. Improve usability and consistency of cursor style between image-type `input` and others. */
110button, html input[type="button"], input[type="reset"], input[type="submit"] { -webkit-appearance: button; /* 2 */ cursor: pointer; /* 3 */ }
111
112/** Re-set default cursor for disabled elements. */
113button[disabled], html input[disabled] { cursor: default; }
114
115/** 1. Address box sizing set to `content-box` in IE 8/9. 2. Remove excess padding in IE 8/9. */
116input[type="checkbox"], input[type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ }
117
118/** 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome (include `-moz` to future-proof). */
119input[type="search"] { -webkit-appearance: textfield; /* 1 */ -moz-box-sizing: content-box; -webkit-box-sizing: content-box; /* 2 */ box-sizing: content-box; }
120
121/** Remove inner padding and search cancel button in Safari 5 and Chrome on OS X. */
122input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }
123
124/** Remove inner padding and border in Firefox 4+. */
125button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; }
126
127/** 1. Remove default vertical scrollbar in IE 8/9. 2. Improve readability and alignment in all browsers. */
128textarea { overflow: auto; /* 1 */ vertical-align: top; /* 2 */ }
129
130/* ========================================================================== Tables ========================================================================== */
131/** Remove most spacing between table cells. */
132table { border-collapse: collapse; border-spacing: 0; }
133
134meta.foundation-mq-small { font-family: "only screen and (min-width: 768px)"; width: 768px; }
135
136meta.foundation-mq-medium { font-family: "only screen and (min-width:1280px)"; width: 1280px; }
137
138meta.foundation-mq-large { font-family: "only screen and (min-width:1440px)"; width: 1440px; }
139
140*, *:before, *:after { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; }
141
142html, body { font-size: 100%; }
143
144body { background: #fff; color: #222; padding: 0; margin: 0; font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif; font-weight: normal; font-style: normal; line-height: 1; position: relative; cursor: auto; }
145
146a:hover { cursor: pointer; }
147
148img, object, embed { max-width: 100%; height: auto; }
149
150object, embed { height: 100%; }
151
152img { -ms-interpolation-mode: bicubic; }
153
154#map_canvas img, #map_canvas embed, #map_canvas object, .map_canvas img, .map_canvas embed, .map_canvas object { max-width: none !important; }
155
156.left { float: left !important; }
157
158.right { float: right !important; }
159
160.text-left { text-align: left !important; }
161
162.text-right { text-align: right !important; }
163
164.text-center { text-align: center !important; }
165
166.text-justify { text-align: justify !important; }
167
168.hide { display: none; }
169
170.antialiased { -webkit-font-smoothing: antialiased; }
171
172img { display: inline-block; vertical-align: middle; }
173
174textarea { height: auto; min-height: 50px; }
175
176select { width: 100%; }
177
178object, svg { display: inline-block; vertical-align: middle; }
179
180.center { margin-left: auto; margin-right: auto; }
181
182.spread { width: 100%; }
183
184p.lead, .paragraph.lead > p, #preamble > .sectionbody > .paragraph:first-of-type p { font-size: 1.21875em; line-height: 1.6; }
185
186.subheader, .admonitionblock td.content > .title, .audioblock > .title, .exampleblock > .title, .imageblock > .title, .listingblock > .title, .literalblock > .title, .stemblock > .title, .openblock > .title, .paragraph > .title, .quoteblock > .title, table.tableblock > .title, .verseblock > .title, .videoblock > .title, .dlist > .title, .olist > .title, .ulist > .title, .qlist > .title, .hdlist > .title { line-height: 1.4; color: black; font-weight: 300; margin-top: 0.2em; margin-bottom: 0.5em; }
187
188/* Typography resets */
189div, dl, dt, dd, ul, ol, li, h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6, pre, form, p, blockquote, th, td { margin: 0; padding: 0; direction: ltr; }
190
191/* Default Link Styles */
192a { color: #0068b0; text-decoration: none; line-height: inherit; }
193a:hover, a:focus { color: #333; }
194a img { border: none; }
195
196/* Default paragraph styles */
197p { font-family: Noto, sans-serif; font-weight: normal; font-size: 1em; line-height: 1.6; margin-bottom: 0.75em; text-rendering: optimizeLegibility; }
198p aside { font-size: 0.875em; line-height: 1.35; font-style: italic; }
199
200/* Default header styles */
201h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6 { font-family: Noto, sans-serif; font-weight: normal; font-style: normal; color: black; text-rendering: optimizeLegibility; margin-top: 0.5em; margin-bottom: 0.5em; line-height: 1.2125em; }
202h1 small, h2 small, h3 small, #toctitle small, .sidebarblock > .content > .title small, h4 small, h5 small, h6 small { font-size: 60%; color: #4d4d4d; line-height: 0; }
203
204h1 { font-size: 2.125em; }
205
206h2 { font-size: 1.6875em; }
207
208h3, #toctitle, .sidebarblock > .content > .title { font-size: 1.375em; }
209
210h4 { font-size: 1.125em; }
211
212h5 { font-size: 1.125em; }
213
214h6 { font-size: 1em; }
215
216hr { border: solid #ddd; border-width: 1px 0 0; clear: both; margin: 1.25em 0 1.1875em; height: 0; }
217
218/* Helpful Typography Defaults */
219em, i { font-style: italic; line-height: inherit; }
220
221strong, b { font-weight: bold; line-height: inherit; }
222
223small { font-size: 60%; line-height: inherit; }
224
225code { font-family: Consolas, "Liberation Mono", Courier, monospace; font-weight: normal; color: #264357; }
226
227/* Lists */
228ul, ol, dl { font-size: 1em; line-height: 1.6; margin-bottom: 0.75em; list-style-position: outside; font-family: Noto, sans-serif; }
229
230ul, ol { margin-left: 1.5em; }
231ul.no-bullet, ol.no-bullet { margin-left: 1.5em; }
232
233/* Unordered Lists */
234ul li ul, ul li ol { margin-left: 1.25em; margin-bottom: 0; font-size: 1em; /* Override nested font-size change */ }
235ul.square li ul, ul.circle li ul, ul.disc li ul { list-style: inherit; }
236ul.square { list-style-type: square; }
237ul.circle { list-style-type: circle; }
238ul.disc { list-style-type: disc; }
239ul.no-bullet { list-style: none; }
240
241/* Ordered Lists */
242ol li ul, ol li ol { margin-left: 1.25em; margin-bottom: 0; }
243
244/* Definition Lists */
245dl dt { margin-bottom: 0.3em; font-weight: bold; }
246dl dd { margin-bottom: 0.75em; }
247
248/* Abbreviations */
249abbr, acronym { text-transform: uppercase; font-size: 90%; color: black; border-bottom: 1px dotted #ddd; cursor: help; }
250
251abbr { text-transform: none; }
252
253/* Blockquotes */
254blockquote { margin: 0 0 0.75em; padding: 0.5625em 1.25em 0 1.1875em; border-left: 1px solid #ddd; }
255blockquote cite { display: block; font-size: 0.8125em; color: #365E7A; }
256blockquote cite:before { content: "\2014 \0020"; }
257blockquote cite a, blockquote cite a:visited { color: #365E7A; }
258
259blockquote, blockquote p { line-height: 1.6; color: #333; }
260
261/* Microformats */
262.vcard { display: inline-block; margin: 0 0 1.25em 0; border: 1px solid #ddd; padding: 0.625em 0.75em; }
263.vcard li { margin: 0; display: block; }
264.vcard .fn { font-weight: bold; font-size: 0.9375em; }
265
266.vevent .summary { font-weight: bold; }
267.vevent abbr { cursor: auto; text-decoration: none; font-weight: bold; border: none; padding: 0 0.0625em; }
268
269@media only screen and (min-width: 768px) { h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6 { line-height: 1.4; }
270  h1 { font-size: 2.75em; }
271  h2 { font-size: 2.3125em; }
272  h3, #toctitle, .sidebarblock > .content > .title { font-size: 1.6875em; }
273  h4 { font-size: 1.4375em; } }
274/* Tables */
275table { background: #fff; margin-bottom: 1.25em; border: solid 1px #d8d8ce; }
276table thead, table tfoot { background: #eee; font-weight: bold; }
277table thead tr th, table thead tr td, table tfoot tr th, table tfoot tr td { padding: 0.5em 0.625em 0.625em; font-size: inherit; color: #222; text-align: left; }
278table tr th, table tr td { padding: 0.5625em 0.625em; font-size: inherit; color: #6d6e71; }
279table tr.even, table tr.alt, table tr:nth-of-type(even) { background: #f8f8f8; }
280table thead tr th, table tfoot tr th, table tbody tr td, table tr td, table tfoot tr td { display: table-cell; line-height: 1.4; }
281
282body { -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; tab-size: 4; }
283
284h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6 { line-height: 1.4; }
285
286a:hover, a:focus { text-decoration: underline; }
287
288.clearfix:before, .clearfix:after, .float-group:before, .float-group:after { content: " "; display: table; }
289.clearfix:after, .float-group:after { clear: both; }
290
291*:not(pre) > code { font-size: inherit; font-style: normal !important; letter-spacing: 0; padding: 0; background-color: transparent; -webkit-border-radius: 0; border-radius: 0; line-height: inherit; word-wrap: break-word; }
292*:not(pre) > code.nobreak { word-wrap: normal; }
293*:not(pre) > code.nowrap { white-space: nowrap; }
294
295pre, pre > code { line-height: 1.6; color: #264357; font-family: Consolas, "Liberation Mono", Courier, monospace; font-weight: normal; }
296
297em em { font-style: normal; }
298
299strong strong { font-weight: normal; }
300
301.keyseq { color: #333333; }
302
303kbd { font-family: Consolas, "Liberation Mono", Courier, monospace; display: inline-block; color: black; font-size: 0.65em; line-height: 1.45; background-color: #f7f7f7; border: 1px solid #ccc; -webkit-border-radius: 3px; border-radius: 3px; -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 0.1em white inset; -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 0.1em white inset; box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 0.1em white inset; margin: 0 0.15em; padding: 0.2em 0.5em; vertical-align: middle; position: relative; top: -0.1em; white-space: nowrap; }
304
305.keyseq kbd:first-child { margin-left: 0; }
306
307.keyseq kbd:last-child { margin-right: 0; }
308
309.menuseq, .menuref { color: #000; }
310
311.menuseq b:not(.caret), .menuref { font-weight: inherit; }
312
313.menuseq { word-spacing: -0.02em; }
314.menuseq b.caret { font-size: 1.25em; line-height: 0.8; }
315.menuseq i.caret { font-weight: bold; text-align: center; width: 0.45em; }
316
317b.button:before, b.button:after { position: relative; top: -1px; font-weight: normal; }
318
319b.button:before { content: "["; padding: 0 3px 0 2px; }
320
321b.button:after { content: "]"; padding: 0 2px 0 3px; }
322
323#header, #content, #footnotes, #footer { width: 100%; margin-left: auto; margin-right: auto; margin-top: 0; margin-bottom: 0; max-width: 62.5em; *zoom: 1; position: relative; padding-left: 1.5em; padding-right: 1.5em; }
324#header:before, #header:after, #content:before, #content:after, #footnotes:before, #footnotes:after, #footer:before, #footer:after { content: " "; display: table; }
325#header:after, #content:after, #footnotes:after, #footer:after { clear: both; }
326
327#content { margin-top: 1.25em; }
328
329#content:before { content: none; }
330
331#header > h1:first-child { color: black; margin-top: 2.25rem; margin-bottom: 0; }
332#header > h1:first-child + #toc { margin-top: 8px; border-top: 1px solid #ddd; }
333#header > h1:only-child, body.toc2 #header > h1:nth-last-child(2) { border-bottom: 1px solid #ddd; padding-bottom: 8px; }
334#header .details { border-bottom: 1px solid #ddd; line-height: 1.45; padding-top: 0.25em; padding-bottom: 0.25em; padding-left: 0.25em; color: #365E7A; display: -ms-flexbox; display: -webkit-flex; display: flex; -ms-flex-flow: row wrap; -webkit-flex-flow: row wrap; flex-flow: row wrap; }
335#header .details span:first-child { margin-left: -0.125em; }
336#header .details span.email a { color: #333; }
337#header .details br { display: none; }
338#header .details br + span:before { content: "\00a0\2013\00a0"; }
339#header .details br + span.author:before { content: "\00a0\22c5\00a0"; color: #333; }
340#header .details br + span#revremark:before { content: "\00a0|\00a0"; }
341#header #revnumber { text-transform: capitalize; }
342#header #revnumber:after { content: "\00a0"; }
343
344#content > h1:first-child:not([class]) { color: black; border-bottom: 1px solid #ddd; padding-bottom: 8px; margin-top: 0; padding-top: 1rem; margin-bottom: 1.25rem; }
345
346#toc { border-bottom: 0 solid #ddd; padding-bottom: 0.5em; }
347#toc > ul { margin-left: 0.125em; }
348#toc ul.sectlevel0 > li > a { font-style: italic; }
349#toc ul.sectlevel0 ul.sectlevel1 { margin: 0.5em 0; }
350#toc ul { font-family: Noto, sans-serif; list-style-type: none; }
351#toc li { line-height: 1.3334; margin-top: 0.3334em; }
352#toc a { text-decoration: none; }
353#toc a:active { text-decoration: underline; }
354
355#toctitle { color: black; font-size: 1.2em; }
356
357@media only screen and (min-width: 768px) { #toctitle { font-size: 1.375em; }
358  body.toc2 { padding-left: 15em; padding-right: 0; }
359  #toc.toc2 { margin-top: 0 !important; background-color: #fff; position: fixed; width: 15em; left: 0; top: 0; border-right: 1px solid #ddd; border-top-width: 0 !important; border-bottom-width: 0 !important; z-index: 1000; padding: 1.25em 1em; height: 100%; overflow: auto; }
360  #toc.toc2 #toctitle { margin-top: 0; margin-bottom: 0.8rem; font-size: 1.2em; }
361  #toc.toc2 > ul { font-size: 0.9em; margin-bottom: 0; }
362  #toc.toc2 ul ul { margin-left: 0; padding-left: 1em; }
363  #toc.toc2 ul.sectlevel0 ul.sectlevel1 { padding-left: 0; margin-top: 0.5em; margin-bottom: 0.5em; }
364  body.toc2.toc-right { padding-left: 0; padding-right: 15em; }
365  body.toc2.toc-right #toc.toc2 { border-right-width: 0; border-left: 1px solid #ddd; left: auto; right: 0; } }
366@media only screen and (min-width: 1280px) { body.toc2 { padding-left: 20em; padding-right: 0; }
367  #toc.toc2 { width: 20em; }
368  #toc.toc2 #toctitle { font-size: 1.375em; }
369  #toc.toc2 > ul { font-size: 0.95em; }
370  #toc.toc2 ul ul { padding-left: 1.25em; }
371  body.toc2.toc-right { padding-left: 0; padding-right: 20em; } }
372#content #toc { border-style: solid; border-width: 1px; border-color: #e6e6e6; margin-bottom: 1.25em; padding: 1.25em; background: #fff; -webkit-border-radius: 0; border-radius: 0; }
373#content #toc > :first-child { margin-top: 0; }
374#content #toc > :last-child { margin-bottom: 0; }
375
376#footer { max-width: 100%; background-color: none; padding: 1.25em; }
377
378#footer-text { color: black; line-height: 1.44; }
379
380#content { margin-bottom: 0.625em; }
381
382.sect1 { padding-bottom: 0.625em; }
383
384@media only screen and (min-width: 768px) { #content { margin-bottom: 1.25em; }
385  .sect1 { padding-bottom: 1.25em; } }
386.sect1:last-child { padding-bottom: 0; }
387
388.sect1 + .sect1 { border-top: 0 solid #ddd; }
389
390#content h1 > a.anchor, h2 > a.anchor, h3 > a.anchor, #toctitle > a.anchor, .sidebarblock > .content > .title > a.anchor, h4 > a.anchor, h5 > a.anchor, h6 > a.anchor { position: absolute; z-index: 1001; width: 1.5ex; margin-left: -1.5ex; display: block; text-decoration: none !important; visibility: hidden; text-align: center; font-weight: normal; }
391#content h1 > a.anchor:before, h2 > a.anchor:before, h3 > a.anchor:before, #toctitle > a.anchor:before, .sidebarblock > .content > .title > a.anchor:before, h4 > a.anchor:before, h5 > a.anchor:before, h6 > a.anchor:before { content: "\00A7"; font-size: 0.85em; display: block; padding-top: 0.1em; }
392#content h1:hover > a.anchor, #content h1 > a.anchor:hover, h2:hover > a.anchor, h2 > a.anchor:hover, h3:hover > a.anchor, #toctitle:hover > a.anchor, .sidebarblock > .content > .title:hover > a.anchor, h3 > a.anchor:hover, #toctitle > a.anchor:hover, .sidebarblock > .content > .title > a.anchor:hover, h4:hover > a.anchor, h4 > a.anchor:hover, h5:hover > a.anchor, h5 > a.anchor:hover, h6:hover > a.anchor, h6 > a.anchor:hover { visibility: visible; }
393#content h1 > a.link, h2 > a.link, h3 > a.link, #toctitle > a.link, .sidebarblock > .content > .title > a.link, h4 > a.link, h5 > a.link, h6 > a.link { color: black; text-decoration: none; }
394#content h1 > a.link:hover, h2 > a.link:hover, h3 > a.link:hover, #toctitle > a.link:hover, .sidebarblock > .content > .title > a.link:hover, h4 > a.link:hover, h5 > a.link:hover, h6 > a.link:hover { color: black; }
395
396.audioblock, .imageblock, .literalblock, .listingblock, .stemblock, .videoblock { margin-bottom: 1.25em; }
397
398.admonitionblock td.content > .title, .audioblock > .title, .exampleblock > .title, .imageblock > .title, .listingblock > .title, .literalblock > .title, .stemblock > .title, .openblock > .title, .paragraph > .title, .quoteblock > .title, table.tableblock > .title, .verseblock > .title, .videoblock > .title, .dlist > .title, .olist > .title, .ulist > .title, .qlist > .title, .hdlist > .title { text-rendering: optimizeLegibility; text-align: left; }
399
400table.tableblock > caption.title { white-space: nowrap; overflow: visible; max-width: 0; }
401
402.paragraph.lead > p, #preamble > .sectionbody > .paragraph:first-of-type p { color: black; }
403
404table.tableblock #preamble > .sectionbody > .paragraph:first-of-type p { font-size: inherit; }
405
406.admonitionblock > table { border-collapse: separate; border: 0; background: none; width: 100%; }
407.admonitionblock > table td.icon { text-align: center; width: 80px; }
408.admonitionblock > table td.icon img { max-width: initial; }
409.admonitionblock > table td.icon .title { font-weight: bold; font-family: Noto, sans-serif; text-transform: uppercase; }
410.admonitionblock > table td.content { padding-left: 1.125em; padding-right: 1.25em; border-left: 1px solid #ddd; color: #365E7A; }
411.admonitionblock > table td.content > :last-child > :last-child { margin-bottom: 0; }
412
413.exampleblock > .content { border-style: solid; border-width: 1px; border-color: #e6e6e6; margin-bottom: 1.25em; padding: 1.25em; background: #fff; -webkit-border-radius: 0; border-radius: 0; }
414.exampleblock > .content > :first-child { margin-top: 0; }
415.exampleblock > .content > :last-child { margin-bottom: 0; }
416
417.sidebarblock { border-style: solid; border-width: 1px; border-color: #e6e6e6; margin-bottom: 1.25em; padding: 1.25em; background: #fff; -webkit-border-radius: 0; border-radius: 0; }
418.sidebarblock > :first-child { margin-top: 0; }
419.sidebarblock > :last-child { margin-bottom: 0; }
420.sidebarblock > .content > .title { color: black; margin-top: 0; }
421
422.exampleblock > .content > :last-child > :last-child, .exampleblock > .content .olist > ol > li:last-child > :last-child, .exampleblock > .content .ulist > ul > li:last-child > :last-child, .exampleblock > .content .qlist > ol > li:last-child > :last-child, .sidebarblock > .content > :last-child > :last-child, .sidebarblock > .content .olist > ol > li:last-child > :last-child, .sidebarblock > .content .ulist > ul > li:last-child > :last-child, .sidebarblock > .content .qlist > ol > li:last-child > :last-child { margin-bottom: 0; }
423
424.literalblock pre, .listingblock pre:not(.highlight), .listingblock pre[class="highlight"], .listingblock pre[class^="highlight "], .listingblock pre.CodeRay, .listingblock pre.prettyprint { background: #eee; }
425.sidebarblock .literalblock pre, .sidebarblock .listingblock pre:not(.highlight), .sidebarblock .listingblock pre[class="highlight"], .sidebarblock .listingblock pre[class^="highlight "], .sidebarblock .listingblock pre.CodeRay, .sidebarblock .listingblock pre.prettyprint { background: #f2f1f1; }
426
427.literalblock pre, .literalblock pre[class], .listingblock pre, .listingblock pre[class] { border: 1px hidden #666; -webkit-border-radius: 0; border-radius: 0; word-wrap: break-word; padding: 1.25em 1.5625em 1.125em 1.5625em; font-size: 0.8125em; }
428.literalblock pre.nowrap, .literalblock pre[class].nowrap, .listingblock pre.nowrap, .listingblock pre[class].nowrap { overflow-x: auto; white-space: pre; word-wrap: normal; }
429@media only screen and (min-width: 768px) { .literalblock pre, .literalblock pre[class], .listingblock pre, .listingblock pre[class] { font-size: 0.90625em; } }
430@media only screen and (min-width: 1280px) { .literalblock pre, .literalblock pre[class], .listingblock pre, .listingblock pre[class] { font-size: 1em; } }
431
432.literalblock.output pre { color: #eee; background-color: #264357; }
433
434.listingblock pre.highlightjs { padding: 0; }
435.listingblock pre.highlightjs > code { padding: 1.25em 1.5625em 1.125em 1.5625em; -webkit-border-radius: 0; border-radius: 0; }
436
437.listingblock > .content { position: relative; }
438
439.listingblock code[data-lang]:before { display: none; content: attr(data-lang); position: absolute; font-size: 0.75em; top: 0.425rem; right: 0.5rem; line-height: 1; text-transform: uppercase; color: #999; }
440
441.listingblock:hover code[data-lang]:before { display: block; }
442
443.listingblock.terminal pre .command:before { content: attr(data-prompt); padding-right: 0.5em; color: #999; }
444
445.listingblock.terminal pre .command:not([data-prompt]):before { content: "$"; }
446
447table.pyhltable { border-collapse: separate; border: 0; margin-bottom: 0; background: none; }
448
449table.pyhltable td { vertical-align: top; padding-top: 0; padding-bottom: 0; line-height: 1.6; }
450
451table.pyhltable td.code { padding-left: .75em; padding-right: 0; }
452
453pre.pygments .lineno, table.pyhltable td:not(.code) { color: #999; padding-left: 0; padding-right: .5em; border-right: 1px solid #ddd; }
454
455pre.pygments .lineno { display: inline-block; margin-right: .25em; }
456
457table.pyhltable .linenodiv { background: none !important; padding-right: 0 !important; }
458
459.quoteblock { margin: 0 1em 0.75em 1.5em; display: table; }
460.quoteblock > .title { margin-left: -1.5em; margin-bottom: 0.75em; }
461.quoteblock blockquote, .quoteblock blockquote p { color: #333; font-size: 1.15rem; line-height: 1.75; word-spacing: 0.1em; letter-spacing: 0; font-style: italic; text-align: justify; }
462.quoteblock blockquote { margin: 0; padding: 0; border: 0; }
463.quoteblock blockquote:before { content: "\201c"; float: left; font-size: 2.75em; font-weight: bold; line-height: 0.6em; margin-left: -0.6em; color: black; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); }
464.quoteblock blockquote > .paragraph:last-child p { margin-bottom: 0; }
465.quoteblock .attribution { margin-top: 0.5em; margin-right: 0.5ex; text-align: right; }
466.quoteblock .quoteblock { margin-left: 0; margin-right: 0; padding: 0.5em 0; border-left: 3px solid #365E7A; }
467.quoteblock .quoteblock blockquote { padding: 0 0 0 0.75em; }
468.quoteblock .quoteblock blockquote:before { display: none; }
469
470.verseblock { margin: 0 1em 0.75em 1em; }
471.verseblock pre { font-family: "Open Sans", "DejaVu Sans", sans; font-size: 1.15rem; color: #333; font-weight: 300; text-rendering: optimizeLegibility; }
472.verseblock pre strong { font-weight: 400; }
473.verseblock .attribution { margin-top: 1.25rem; margin-left: 0.5ex; }
474
475.quoteblock .attribution, .verseblock .attribution { font-size: 0.8125em; line-height: 1.45; font-style: italic; }
476.quoteblock .attribution br, .verseblock .attribution br { display: none; }
477.quoteblock .attribution cite, .verseblock .attribution cite { display: block; letter-spacing: -0.025em; color: #365E7A; }
478
479.quoteblock.abstract { margin: 0 0 0.75em 0; display: block; }
480.quoteblock.abstract blockquote, .quoteblock.abstract blockquote p { text-align: left; word-spacing: 0; }
481.quoteblock.abstract blockquote:before, .quoteblock.abstract blockquote p:first-of-type:before { display: none; }
482
483table.tableblock { max-width: 100%; border-collapse: separate; }
484table.tableblock td > .paragraph:last-child p > p:last-child, table.tableblock th > p:last-child, table.tableblock td > p:last-child { margin-bottom: 0; }
485
486table.tableblock, th.tableblock, td.tableblock { border: 0 solid #d8d8ce; }
487
488table.grid-all > thead > tr > .tableblock, table.grid-all > tbody > tr > .tableblock { border-width: 0 1px 1px 0; }
489
490table.grid-all > tfoot > tr > .tableblock { border-width: 1px 1px 0 0; }
491
492table.grid-cols > * > tr > .tableblock { border-width: 0 1px 0 0; }
493
494table.grid-rows > thead > tr > .tableblock, table.grid-rows > tbody > tr > .tableblock { border-width: 0 0 1px 0; }
495
496table.grid-rows > tfoot > tr > .tableblock { border-width: 1px 0 0 0; }
497
498table.grid-all > * > tr > .tableblock:last-child, table.grid-cols > * > tr > .tableblock:last-child { border-right-width: 0; }
499
500table.grid-all > tbody > tr:last-child > .tableblock, table.grid-all > thead:last-child > tr > .tableblock, table.grid-rows > tbody > tr:last-child > .tableblock, table.grid-rows > thead:last-child > tr > .tableblock { border-bottom-width: 0; }
501
502table.frame-all { border-width: 1px; }
503
504table.frame-sides { border-width: 0 1px; }
505
506table.frame-topbot { border-width: 1px 0; }
507
508th.halign-left, td.halign-left { text-align: left; }
509
510th.halign-right, td.halign-right { text-align: right; }
511
512th.halign-center, td.halign-center { text-align: center; }
513
514th.valign-top, td.valign-top { vertical-align: top; }
515
516th.valign-bottom, td.valign-bottom { vertical-align: bottom; }
517
518th.valign-middle, td.valign-middle { vertical-align: middle; }
519
520table thead th, table tfoot th { font-weight: bold; }
521
522tbody tr th { display: table-cell; line-height: 1.4; background: #eee; }
523
524tbody tr th, tbody tr th p, tfoot tr th, tfoot tr th p { color: #222; font-weight: bold; }
525
526p.tableblock > code:only-child { background: none; padding: 0; }
527
528p.tableblock { font-size: 1em; }
529
530td > div.verse { white-space: pre; }
531
532ol { margin-left: 1.75em; }
533
534ul li ol { margin-left: 1.5em; }
535
536dl dd { margin-left: 1.125em; }
537
538dl dd:last-child, dl dd:last-child > :last-child { margin-bottom: 0; }
539
540ol > li p, ul > li p, ul dd, ol dd, .olist .olist, .ulist .ulist, .ulist .olist, .olist .ulist { margin-bottom: 0.375em; }
541
542ul.checklist, ul.none, ol.none, ul.no-bullet, ol.no-bullet, ol.unnumbered, ul.unstyled, ol.unstyled { list-style-type: none; }
543
544ul.no-bullet, ol.no-bullet, ol.unnumbered { margin-left: 0.625em; }
545
546ul.unstyled, ol.unstyled { margin-left: 0; }
547
548ul.checklist { margin-left: 0.625em; }
549
550ul.checklist li > p:first-child > .fa-square-o:first-child, ul.checklist li > p:first-child > .fa-check-square-o:first-child { width: 1.25em; font-size: 0.8em; position: relative; bottom: 0.125em; }
551
552ul.checklist li > p:first-child > input[type="checkbox"]:first-child { margin-right: 0.25em; }
553
554ul.inline { display: -ms-flexbox; display: -webkit-box; display: flex; -ms-flex-flow: row wrap; -webkit-flex-flow: row wrap; flex-flow: row wrap; list-style: none; margin: 0 0 0.375em -0.75em; }
555
556ul.inline > li { margin-left: 0.75em; }
557
558.unstyled dl dt { font-weight: normal; font-style: normal; }
559
560ol.arabic { list-style-type: decimal; }
561
562ol.decimal { list-style-type: decimal-leading-zero; }
563
564ol.loweralpha { list-style-type: lower-alpha; }
565
566ol.upperalpha { list-style-type: upper-alpha; }
567
568ol.lowerroman { list-style-type: lower-roman; }
569
570ol.upperroman { list-style-type: upper-roman; }
571
572ol.lowergreek { list-style-type: lower-greek; }
573
574.hdlist > table, .colist > table { border: 0; background: none; }
575.hdlist > table > tbody > tr, .colist > table > tbody > tr { background: none; }
576
577td.hdlist1, td.hdlist2 { vertical-align: top; padding: 0 0.625em; }
578
579td.hdlist1 { font-weight: bold; padding-bottom: 0.75em; }
580
581.literalblock + .colist, .listingblock + .colist { margin-top: -0.5em; }
582
583.colist > table tr > td:first-of-type { padding: 0.4em 0.75em 0 0.75em; line-height: 1; vertical-align: top; }
584.colist > table tr > td:first-of-type img { max-width: initial; }
585.colist > table tr > td:last-of-type { padding: 0.25em 0; }
586
587.thumb, .th { line-height: 0; display: inline-block; border: solid 4px #fff; -webkit-box-shadow: 0 0 0 1px #ddd; box-shadow: 0 0 0 1px #ddd; }
588
589.imageblock.left, .imageblock[style*="float: left"] { margin: 0.25em 0.625em 1.25em 0; }
590.imageblock.right, .imageblock[style*="float: right"] { margin: 0.25em 0 1.25em 0.625em; }
591.imageblock > .title { margin-bottom: 0; }
592.imageblock.thumb, .imageblock.th { border-width: 6px; }
593.imageblock.thumb > .title, .imageblock.th > .title { padding: 0 0.125em; }
594
595.image.left, .image.right { margin-top: 0.25em; margin-bottom: 0.25em; display: inline-block; line-height: 0; }
596.image.left { margin-right: 0.625em; }
597.image.right { margin-left: 0.625em; }
598
599a.image { text-decoration: none; display: inline-block; }
600a.image object { pointer-events: none; }
601
602sup.footnote, sup.footnoteref { font-size: 0.875em; position: static; vertical-align: super; }
603sup.footnote a, sup.footnoteref a { text-decoration: none; }
604sup.footnote a:active, sup.footnoteref a:active { text-decoration: underline; }
605
606#footnotes { padding-top: 0.75em; padding-bottom: 0.75em; margin-bottom: 0.625em; }
607#footnotes hr { width: 20%; min-width: 6.25em; margin: -0.25em 0 0.75em 0; border-width: 1px 0 0 0; }
608#footnotes .footnote { padding: 0 0.375em 0 0.225em; line-height: 1.3334; font-size: 0.875em; margin-left: 1.2em; margin-bottom: 0.2em; }
609#footnotes .footnote a:first-of-type { font-weight: bold; text-decoration: none; margin-left: -1.05em; }
610#footnotes .footnote:last-of-type { margin-bottom: 0; }
611#content #footnotes { margin-top: -0.625em; margin-bottom: 0; padding: 0.75em 0; }
612
613.gist .file-data > table { border: 0; background: #fff; width: 100%; margin-bottom: 0; }
614.gist .file-data > table td.line-data { width: 99%; }
615
616div.unbreakable { page-break-inside: avoid; }
617
618.big { font-size: larger; }
619
620.small { font-size: smaller; }
621
622.underline { text-decoration: underline; }
623
624.overline { text-decoration: overline; }
625
626.line-through { text-decoration: line-through; }
627
628.aqua { color: #00bfbf; }
629
630.aqua-background { background-color: #00fafa; }
631
632.black { color: black; }
633
634.black-background { background-color: black; }
635
636.blue { color: #0000bf; }
637
638.blue-background { background-color: #0000fa; }
639
640.fuchsia { color: #bf00bf; }
641
642.fuchsia-background { background-color: #fa00fa; }
643
644.gray { color: #606060; }
645
646.gray-background { background-color: #7d7d7d; }
647
648.green { color: #006000; }
649
650.green-background { background-color: #007d00; }
651
652.lime { color: #00bf00; }
653
654.lime-background { background-color: #00fa00; }
655
656.maroon { color: #600000; }
657
658.maroon-background { background-color: #7d0000; }
659
660.navy { color: #000060; }
661
662.navy-background { background-color: #00007d; }
663
664.olive { color: #606000; }
665
666.olive-background { background-color: #7d7d00; }
667
668.purple { color: #600060; }
669
670.purple-background { background-color: #7d007d; }
671
672.red { color: #bf0000; }
673
674.red-background { background-color: #fa0000; }
675
676.silver { color: #909090; }
677
678.silver-background { background-color: #bcbcbc; }
679
680.teal { color: #006060; }
681
682.teal-background { background-color: #007d7d; }
683
684.white { color: #bfbfbf; }
685
686.white-background { background-color: #fafafa; }
687
688.yellow { color: #bfbf00; }
689
690.yellow-background { background-color: #fafa00; }
691
692span.icon > .fa { cursor: default; }
693a span.icon > .fa { cursor: inherit; }
694
695.admonitionblock td.icon [class^="fa icon-"] { font-size: 2.5em; text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5); cursor: default; }
696.admonitionblock td.icon .icon-note:before { content: "\f05a"; color: #29475c; }
697.admonitionblock td.icon .icon-tip:before { content: "\f0eb"; text-shadow: 1px 1px 2px rgba(155, 155, 0, 0.8); color: #111; }
698.admonitionblock td.icon .icon-warning:before { content: "\f071"; color: #bf6900; }
699.admonitionblock td.icon .icon-caution:before { content: "\f06d"; color: #bf3400; }
700.admonitionblock td.icon .icon-important:before { content: "\f06a"; color: #bf0000; }
701
702.conum[data-value] { display: inline-block; color: #fff !important; background-color: black; -webkit-border-radius: 100px; border-radius: 100px; text-align: center; font-size: 0.75em; width: 1.67em; height: 1.67em; line-height: 1.67em; font-family: "Open Sans", "DejaVu Sans", sans-serif; font-style: normal; font-weight: bold; }
703.conum[data-value] * { color: #fff !important; }
704.conum[data-value] + b { display: none; }
705.conum[data-value]:after { content: attr(data-value); }
706pre .conum[data-value] { position: relative; top: -0.125em; }
707
708b.conum * { color: inherit !important; }
709
710.conum:not([data-value]):empty { display: none; }
711
712h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6 { border-bottom: 1px solid #ddd; }
713
714.sect1 { padding-bottom: 0; }
715
716#toctitle { color: #00406F; font-weight: normal; margin-top: 1.5em; }
717
718.sidebarblock { border-color: #aaa; }
719
720code { -webkit-border-radius: 4px; border-radius: 4px; }
721
722p.tableblock.header { color: #6d6e71; }
723
724.literalblock pre, .listingblock pre { background: #eee; }
725
726/* From https://github.com/KhronosGroup/Vulkan-Docs/pull/901 */
727a code { color: inherit; }
728
729/* From https://github.com/KhronosGroup/Vulkan-Docs/pull/1157 */
730/* Make VUID anchor handles*/
731li > p > a[id^="VUID-"] { visibility: hidden; position: absolute; z-index: 1001; width: 2.2ex; margin-left: -2.2ex; display: block; text-decoration: none !important; text-align: center; font-weight: normal; }
732
733li > p > a[id^="VUID-"]:before { content: "\00A7"; font-size: 1em; display: block; padding-top: 0em; background: #fff; }
734
735li > p:hover > a[id^="VUID-"], li > p > a[id^="VUID-"]:hover { visibility: visible; }
736
737li > p > a[id^="VUID-"].link { color: black; text-decoration: none; }
738
739/* TODO: not quite sure what these two do */
740li > p > a[id^="VUID-"].link:hover { color: black; }
741
742.vuid { color: #4d4d4d; font-family: monospace; }
743
744</style>
745<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
746<style>
747pre.rouge table td { padding: 5px; }
748pre.rouge table pre { margin: 0; }
749pre.rouge .cm {
750  color: #999988;
751  font-style: italic;
752}
753pre.rouge .cp {
754  color: #999999;
755  font-weight: bold;
756}
757pre.rouge .c1 {
758  color: #999988;
759  font-style: italic;
760}
761pre.rouge .cs {
762  color: #999999;
763  font-weight: bold;
764  font-style: italic;
765}
766pre.rouge .c, pre.rouge .ch, pre.rouge .cd, pre.rouge .cpf {
767  color: #999988;
768  font-style: italic;
769}
770pre.rouge .err {
771  color: #a61717;
772  background-color: #e3d2d2;
773}
774pre.rouge .gd {
775  color: #000000;
776  background-color: #ffdddd;
777}
778pre.rouge .ge {
779  color: #000000;
780  font-style: italic;
781}
782pre.rouge .gr {
783  color: #aa0000;
784}
785pre.rouge .gh {
786  color: #999999;
787}
788pre.rouge .gi {
789  color: #000000;
790  background-color: #ddffdd;
791}
792pre.rouge .go {
793  color: #888888;
794}
795pre.rouge .gp {
796  color: #555555;
797}
798pre.rouge .gs {
799  font-weight: bold;
800}
801pre.rouge .gu {
802  color: #aaaaaa;
803}
804pre.rouge .gt {
805  color: #aa0000;
806}
807pre.rouge .kc {
808  color: #000000;
809  font-weight: bold;
810}
811pre.rouge .kd {
812  color: #000000;
813  font-weight: bold;
814}
815pre.rouge .kn {
816  color: #000000;
817  font-weight: bold;
818}
819pre.rouge .kp {
820  color: #000000;
821  font-weight: bold;
822}
823pre.rouge .kr {
824  color: #000000;
825  font-weight: bold;
826}
827pre.rouge .kt {
828  color: #445588;
829  font-weight: bold;
830}
831pre.rouge .k, pre.rouge .kv {
832  color: #000000;
833  font-weight: bold;
834}
835pre.rouge .mf {
836  color: #009999;
837}
838pre.rouge .mh {
839  color: #009999;
840}
841pre.rouge .il {
842  color: #009999;
843}
844pre.rouge .mi {
845  color: #009999;
846}
847pre.rouge .mo {
848  color: #009999;
849}
850pre.rouge .m, pre.rouge .mb, pre.rouge .mx {
851  color: #009999;
852}
853pre.rouge .sa {
854  color: #000000;
855  font-weight: bold;
856}
857pre.rouge .sb {
858  color: #d14;
859}
860pre.rouge .sc {
861  color: #d14;
862}
863pre.rouge .sd {
864  color: #d14;
865}
866pre.rouge .s2 {
867  color: #d14;
868}
869pre.rouge .se {
870  color: #d14;
871}
872pre.rouge .sh {
873  color: #d14;
874}
875pre.rouge .si {
876  color: #d14;
877}
878pre.rouge .sx {
879  color: #d14;
880}
881pre.rouge .sr {
882  color: #009926;
883}
884pre.rouge .s1 {
885  color: #d14;
886}
887pre.rouge .ss {
888  color: #990073;
889}
890pre.rouge .s, pre.rouge .dl {
891  color: #d14;
892}
893pre.rouge .na {
894  color: #008080;
895}
896pre.rouge .bp {
897  color: #999999;
898}
899pre.rouge .nb {
900  color: #0086B3;
901}
902pre.rouge .nc {
903  color: #445588;
904  font-weight: bold;
905}
906pre.rouge .no {
907  color: #008080;
908}
909pre.rouge .nd {
910  color: #3c5d5d;
911  font-weight: bold;
912}
913pre.rouge .ni {
914  color: #800080;
915}
916pre.rouge .ne {
917  color: #990000;
918  font-weight: bold;
919}
920pre.rouge .nf, pre.rouge .fm {
921  color: #990000;
922  font-weight: bold;
923}
924pre.rouge .nl {
925  color: #990000;
926  font-weight: bold;
927}
928pre.rouge .nn {
929  color: #555555;
930}
931pre.rouge .nt {
932  color: #000080;
933}
934pre.rouge .vc {
935  color: #008080;
936}
937pre.rouge .vg {
938  color: #008080;
939}
940pre.rouge .vi {
941  color: #008080;
942}
943pre.rouge .nv, pre.rouge .vm {
944  color: #008080;
945}
946pre.rouge .ow {
947  color: #000000;
948  font-weight: bold;
949}
950pre.rouge .o {
951  color: #000000;
952  font-weight: bold;
953}
954pre.rouge .w {
955  color: #bbbbbb;
956}
957pre.rouge {
958  background-color: #f8f8f8;
959}
960</style>
961<style>
962/* Khronos overrides for Rouge 'github' theme for accessibility */
963/* Basically everything is overridden, but it is unclear how to add a new Rouge theme */
964/* Codelike overrides */
965pre.rouge .cm, pre.rouge .cp, pre.rouge .c1, pre.rouge .cs,
966pre.rouge .c, pre.rouge .ch, pre.rouge .cd, pre.rouge .cpf,
967pre.rouge .gh, pre.rouge .bp {
968  color: #5f5f5f;
969}
970/* Numberlike overrides */
971pre.rouge .mf, pre.rouge .mh, pre.rouge .il, pre.rouge .mi,
972pre.rouge .mo, pre.rouge .m, pre.rouge .mb, pre.rouge .mx {
973  color: #007f7f;
974}
975/* Namelike overrides */
976pre.rouge .ne, pre.rouge .nf, pre.rouge .fm, pre.rouge .nl {
977  color: #5f0000;
978}
979/* Other things ANDI warns about - unsure of their purposes */
980pre.rouge .go, pre.rouge .gu {
981  color: #727272;
982}
983pre.rouge .sr {
984  color: #008512;
985}
986pre.rouge .na, pre.rouge .nb {
987  color: #007f7f;
988}
989pre.rouge .no, pre.rouge .vc, pre.rouge .vg, pre.rouge .vi,
990pre.rouge .nv, pre.rouge .vm {
991  color: #007f7f;
992}
993pre.rouge .w {
994  color: #727272;
995}
996</style>
997
998<!-- dragged in by font-awesome css included by asciidoctor, but preloaded in this extension for convenience -->
999<link rel="preload" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/fonts/fontawesome-webfont.woff2?v=4.7.0" as="font" type="font/woff2" crossorigin="">
1000
1001<!-- Note: Chrome needs crossorigin="" even for same-origin fonts -->
1002<link rel="preload" href="../katex/fonts/KaTeX_Main-Bold.woff2" as="font" type="font/woff2" crossorigin="">
1003<link rel="preload" href="../katex/fonts/KaTeX_Main-Italic.woff2" as="font" type="font/woff2" crossorigin="">
1004<link rel="preload" href="../katex/fonts/KaTeX_Main-Regular.woff2" as="font" type="font/woff2" crossorigin="">
1005<link rel="preload" href="../katex/fonts/KaTeX_Math-Italic.woff2" as="font" type="font/woff2" crossorigin="">
1006<link rel="preload" href="../katex/fonts/KaTeX_Size1-Regular.woff2" as="font" type="font/woff2" crossorigin="">
1007<link rel="preload" href="../katex/fonts/KaTeX_Size2-Regular.woff2" as="font" type="font/woff2" crossorigin="">
1008<link rel="preload" href="../katex/fonts/KaTeX_Size3-Regular.woff2" as="font" type="font/woff2" crossorigin="">
1009<link rel="preload" href="../katex/fonts/KaTeX_Size4-Regular.woff2" as="font" type="font/woff2" crossorigin="">
1010<link rel="preload" href="../katex/fonts/KaTeX_Typewriter-Regular.woff2" as="font" type="font/woff2" crossorigin=""><link rel="stylesheet" href="../katex/katex.min.css">
1011<!--ChunkedSearchJSMarker-->
1012<style>
1013    #loading_msg {
1014        width: 100%;
1015        margin-left: auto;
1016        margin-right: auto;
1017        margin-top: 1ex;
1018        margin-bottom: 1ex;
1019        max-width: 62.5em;
1020        position: relative;
1021        padding-left: 1.5em;
1022        padding-right: 1.5em;
1023    }
1024    .hidden {display: none;}
1025</style>
1026<script>
1027    function hideElement(e){
1028        e.setAttribute("hidden", "");
1029        e.classList.add("hidden");
1030    }
1031
1032    function unhideElement(e){
1033        e.classList.remove("hidden");
1034        e.removeAttribute("hidden");
1035    }
1036
1037    function hideLoadableContent(){
1038        unhideElement( document.getElementById("loading_msg") );
1039        for( var loadable of document.getElementsByClassName("loadable") ) hideElement(loadable);
1040    }
1041
1042    function unhideLoadableContent(){
1043        hideElement( document.getElementById("loading_msg") );
1044        for( var loadable of document.getElementsByClassName("loadable") ) unhideElement(loadable);
1045    }
1046
1047    window.addEventListener("load", unhideLoadableContent);
1048</script>
1049</head>
1050<body class="book toc2 toc-left">
1051<div id="header">
1052<h1>Test<sup>®</sup> 1.2.3 - (with VK_EXT_host_image_copy, VK_KHR_copy_commands2, VK_KHR_format_feature_flags2, VK_KHR_get_physical_device_properties2)</h1>
1053<div class="details">
1054<span id="author" class="author">The Khronos<sup>®</sup> Vulkan Working Group</span><br>
1055<span id="revnumber">version 1.2.3,</span>
1056<span id="revdate">"2100-11-22 00:33:44Z"</span>
1057<br><span id="revremark">"test build"</span>
1058</div>
1059<div id="toc" class="toc2">
1060<div id="toctitle">Table of Contents</div>
1061<ul class="sectlevel1">
1062<li><a href="#preamble">1. Preamble</a></li>
1063<li><a href="#lorem">2. Lorem</a>
1064<ul class="sectlevel2">
1065<li><a href="#lorem-subchapter">2.1. Lorem Subchapter</a></li>
1066</ul>
1067</li>
1068<li><a href="#hic">3. Host Image Copy</a></li>
1069<li><a href="#extensions">Layers &amp; Extensions (Informative)</a>
1070<ul class="sectlevel2">
1071<li><a href="#_extension_dependencies">Extension Dependencies</a></li>
1072</ul>
1073</li>
1074</ul>
1075</div>
1076</div>
1077<div id="loading_msg" class="hidden" hidden><p>Loading&hellip; please wait.</p></div>
1078<!--ChunkedSearchboxMarker-->
1079<div id="content" class="loadable" ><script>hideLoadableContent();</script>
1080<div id="preamble">
1081<div class="sectionbody">
1082<!-- toc disabled -->
1083<div style="page-break-after: always;"></div>
1084</div>
1085</div>
1086<div class="sect1">
1087<h2 id="preamble"><a class="anchor" href="#preamble"></a>1. Preamble</h2>
1088<div class="sectionbody">
1089<div class="paragraph">
1090<p>Copyright 2014-2024 The Khronos Group Inc.</p>
1091</div>
1092<div class="paragraph">
1093<p>This Specification is protected by copyright laws and contains material
1094proprietary to Khronos. Except as described by these terms, it or any
1095components may not be reproduced, republished, distributed, transmitted,
1096displayed, broadcast or otherwise exploited in any manner without the
1097express prior written permission of Khronos.</p>
1098</div>
1099<div class="paragraph">
1100<p>Khronos grants a conditional copyright license to use and reproduce the
1101unmodified Specification for any purpose, without fee or royalty, EXCEPT no
1102licenses to any patent, trademark or other intellectual property rights are
1103granted under these terms.</p>
1104</div>
1105<div class="paragraph">
1106<p>Khronos makes no, and expressly disclaims any, representations or
1107warranties, express or implied, regarding this Specification, including,
1108without limitation: merchantability, fitness for a particular purpose,
1109non-infringement of any intellectual property, correctness, accuracy,
1110completeness, timeliness, and reliability. Under no circumstances will
1111Khronos, or any of its Promoters, Contributors or Members, or their
1112respective partners, officers, directors, employees, agents or
1113representatives be liable for any damages, whether direct, indirect, special
1114or consequential damages for lost revenues, lost profits, or otherwise,
1115arising from or in connection with these materials.</p>
1116</div>
1117<div class="paragraph">
1118<p>This document contains extensions which are not ratified by Khronos, and as
1119such is not a ratified Specification, though it contains text from (and is a
1120superset of) the ratified Vulkan Specification. The ratified versions
1121of the Vulkan Specification can be found at <a href="https://registry.khronos.org/vulkan/specs/1.3/html/vkspec.html" class="bare">https://registry.khronos.org/vulkan/specs/1.3/html/vkspec.html</a> (core only)
1122and <a href="https://registry.khronos.org/vulkan/specs/1.3-khr-extensions/html/vkspec.html" class="bare">https://registry.khronos.org/vulkan/specs/1.3-khr-extensions/html/vkspec.html</a> (core with all ratified extensions)
1123.</p>
1124</div>
1125<div class="paragraph">
1126<p>This Specification contains substantially unmodified functionality from, and
1127is a successor to, Khronos specifications including
1128OpenGL, OpenGL ES and OpenCL.</p>
1129</div>
1130<div class="paragraph">
1131<p>The Khronos Intellectual Property Rights Policy defines the terms 'Scope',
1132'Compliant Portion', and 'Necessary Patent Claims'.</p>
1133</div>
1134<div class="paragraph">
1135<p>Some parts of this Specification are purely informative and so are EXCLUDED
1136the Scope of this Specification. The <a href="#introduction-conventions">[introduction-conventions]</a> section of
1137the <a href="#introduction">[introduction]</a> defines how these parts of the Specification are
1138identified.</p>
1139</div>
1140<div class="paragraph">
1141<p>Where this Specification uses <a href="#introduction-technical-terminology">technical terminology</a>, defined in the <a href="#glossary">Glossary</a> or otherwise,
1142that refer to enabling technologies that are not expressly set forth in this
1143Specification, those enabling technologies are EXCLUDED from the Scope of
1144this Specification. For clarity, enabling technologies not disclosed with
1145particularity in this Specification (e.g. semiconductor manufacturing
1146technology, hardware architecture, processor architecture or
1147microarchitecture, memory architecture, compiler technology, object oriented
1148technology, basic operating system technology, compression technology,
1149algorithms, and so on) are NOT to be considered expressly set forth; only
1150those application program interfaces and data structures disclosed with
1151particularity are included in the Scope of this Specification.</p>
1152</div>
1153<div class="paragraph">
1154<p>For purposes of the Khronos Intellectual Property Rights Policy as it
1155relates to the definition of Necessary Patent Claims, all recommended or
1156optional features, behaviors and functionality set forth in this
1157Specification, if implemented, are considered to be included as Compliant
1158Portions.</p>
1159</div>
1160<div class="paragraph">
1161<p>Where this Specification identifies specific sections of external
1162references, only those specifically identified sections define
1163<a href="#introduction-normative-references">normative</a>
1164functionality. The Khronos Intellectual Property Rights Policy excludes
1165external references to materials and associated enabling technology not
1166created by Khronos from the Scope of this Specification, and any licenses
1167that may be required to implement such referenced materials and associated
1168technologies must be obtained separately and may involve royalty payments.</p>
1169</div>
1170<div class="paragraph">
1171<p>Khronos and Vulkan are registered trademarks, and SPIR-V is a trademark of
1172The Khronos Group Inc. OpenCL is a trademark of Apple Inc., used under
1173license by Khronos. OpenGL is a registered trademark and the OpenGL ES logo
1174is a trademark of Hewlett Packard Enterprise, used under license by Khronos.
1175ASTC is a trademark of ARM Holdings PLC. All other product names,
1176trademarks, and/or company names are used solely for identification and
1177belong to their respective owners.</p>
1178</div>
1179</div>
1180</div>
1181<div class="sect1">
1182<h2 id="lorem"><a class="anchor" href="#lorem"></a>2. Lorem</h2>
1183<div class="sectionbody">
1184<div class="paragraph">
1185<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
1186incididunt ut labore et dolore magna aliqua. Congue eu consequat ac felis donec
1187et odio. Enim nec dui nunc mattis enim. Nulla facilisi etiam dignissim diam
1188quis enim lobortis scelerisque fermentum. Nam libero justo laoreet sit amet.
1189Lacus luctus accumsan tortor posuere. Ultrices tincidunt arcu non sodales. Ut
1190enim blandit volutpat maecenas volutpat blandit aliquam etiam. Sed id semper
1191risus in. Natoque penatibus et magnis dis parturient montes.</p>
1192</div>
1193<div class="paragraph">
1194<p>Vestibulum morbi blandit cursus risus at ultrices mi tempus imperdiet.
1195Dignissim cras tincidunt lobortis feugiat vivamus at augue eget arcu. Ultricies
1196mi eget mauris pharetra.  Ac turpis egestas maecenas pharetra convallis posuere
1197morbi leo urna. Cras sed felis eget velit aliquet. Sit amet mauris commodo quis
1198imperdiet. Malesuada pellentesque elit eget gravida cum sociis natoque.
1199Faucibus pulvinar elementum integer enim neque volutpat ac tincidunt vitae.</p>
1200</div>
1201<div class="sect2">
1202<h3 id="lorem-subchapter"><a class="anchor" href="#lorem-subchapter"></a>2.1. Lorem Subchapter</h3>
1203<div class="openblock">
1204<div class="content">
1205<div class="paragraph">
1206<p>Sed risus pretium quam vulputate dignissim suspendisse in est ante:</p>
1207</div>
1208<div id="vkCmdCopyBufferToImage2KHR" class="listingblock">
1209<div class="content">
1210<pre class="rouge highlight"><code data-lang="c++"><span class="c1">// Provided by VK_KHR_copy_commands2</span>
1211<span class="kt">void</span> <span class="nf">vkCmdCopyBufferToImage2KHR</span><span class="p">(</span>
1212    <span class="n">VkCommandBuffer</span>                             <span class="n">commandBuffer</span><span class="p">,</span>
1213    <span class="k">const</span> <span class="n">VkCopyBufferToImageInfo2</span><span class="o">*</span>             <span class="n">pCopyBufferToImageInfo</span><span class="p">);</span></code></pre>
1214</div>
1215</div>
1216<div class="ulist">
1217<ul>
1218<li>
1219<p><code>commandBuffer</code> Mauris commodo quis imperdiet massa tincidunt nunc pulvinar.</p>
1220</li>
1221<li>
1222<p><code>pCopyBufferToImageInfo</code> Odio morbi quis commodo odio aenean sed <a href="#VkCopyBufferToImageInfo2">VkCopyBufferToImageInfo2</a>.</p>
1223</li>
1224</ul>
1225</div>
1226<div class="paragraph">
1227<p>Ac tortor dignissim convallis aenean et tortor. Amet porttitor eget dolor morbi
1228non arcu. Consequat interdum varius sit amet. Tempus egestas sed sed risus
1229pretium quam. Gravida in fermentum et sollicitudin ac orci phasellus egestas.
1230Nulla facilisi etiam dignissim diam quis enim lobortis scelerisque fermentum.
1231Tempus quam pellentesque nec nam aliquam. A pellentesque sit amet porttitor
1232eget. Viverra justo nec ultrices dui sapien eget mi. Nullam vehicula ipsum a
1233arcu. Amet volutpat consequat mauris nunc congue nisi. Tincidunt arcu non
1234sodales neque.</p>
1235</div>
1236<div class="sidebarblock">
1237<div class="content">
1238<div class="title">Valid Usage</div>
1239<div class="ulist">
1240<ul>
1241<li>
1242<p><a id="VUID-vkCmdCopyBufferToImage2-commandBuffer-97737" href="#VUID-vkCmdCopyBufferToImage2-commandBuffer-97737"></a> <span class="vuid">VUID-vkCmdCopyBufferToImage2-commandBuffer-97737</span><br>
1243
1244If the queue family used to create the <a href="#VkCommandPool">VkCommandPool</a> which
1245<code>commandBuffer</code> was allocated from does not support
1246<code>VK_QUEUE_GRAPHICS_BIT</code> or <code>VK_QUEUE_COMPUTE_BIT</code>, the
1247<code>bufferOffset</code> member of any element of <code>pCopyBufferToImageInfo-&gt;pRegions</code> <strong class="purple">must</strong> be a
1248multiple of <code>4</code></p>
1249</li>
1250<li>
1251<p><a id="VUID-vkCmdCopyBufferToImage2-imageOffset-97738" href="#VUID-vkCmdCopyBufferToImage2-imageOffset-97738"></a> <span class="vuid">VUID-vkCmdCopyBufferToImage2-imageOffset-97738</span><br>
1252
1253The <code>imageOffset</code> and <code>imageExtent</code> members of each element of
1254<code>pCopyBufferToImageInfo-&gt;pRegions</code> <strong class="purple">must</strong> respect the image transfer granularity requirements
1255of <code>commandBuffer</code>&#8217;s command pool&#8217;s queue family, as described in
1256<a href="#VkQueueFamilyProperties">VkQueueFamilyProperties</a></p>
1257</li>
1258<li>
1259<p><a id="VUID-vkCmdCopyBufferToImage2-commandBuffer-97739" href="#VUID-vkCmdCopyBufferToImage2-commandBuffer-97739"></a> <span class="vuid">VUID-vkCmdCopyBufferToImage2-commandBuffer-97739</span><br>
1260
1261If the queue family used to create the <a href="#VkCommandPool">VkCommandPool</a> which
1262<code>commandBuffer</code> was allocated from does not support
1263<code>VK_QUEUE_GRAPHICS_BIT</code>, for each element of <code>pCopyBufferToImageInfo-&gt;pRegions</code>, the
1264<code>aspectMask</code> member of <code>imageSubresource</code> <strong class="purple">must</strong> not be
1265<code>VK_IMAGE_ASPECT_DEPTH_BIT</code> or <code>VK_IMAGE_ASPECT_STENCIL_BIT</code></p>
1266</li>
1267</ul>
1268</div>
1269</div>
1270</div>
1271<div class="sidebarblock">
1272<div class="content">
1273<div class="title">Valid Usage (Implicit)</div>
1274<div class="ulist">
1275<ul>
1276<li>
1277<p><a id="VUID-vkCmdCopyBufferToImage2-commandBuffer-parameter" href="#VUID-vkCmdCopyBufferToImage2-commandBuffer-parameter"></a> <span class="vuid">VUID-vkCmdCopyBufferToImage2-commandBuffer-parameter</span><br>
1278 <code>commandBuffer</code> <strong class="purple">must</strong> be a valid <a href="#VkCommandBuffer">VkCommandBuffer</a> handle</p>
1279</li>
1280<li>
1281<p><a id="VUID-vkCmdCopyBufferToImage2-pCopyBufferToImageInfo-parameter" href="#VUID-vkCmdCopyBufferToImage2-pCopyBufferToImageInfo-parameter"></a> <span class="vuid">VUID-vkCmdCopyBufferToImage2-pCopyBufferToImageInfo-parameter</span><br>
1282 <code>pCopyBufferToImageInfo</code> <strong class="purple">must</strong> be a valid pointer to a valid <a href="#VkCopyBufferToImageInfo2">VkCopyBufferToImageInfo2</a> structure</p>
1283</li>
1284<li>
1285<p><a id="VUID-vkCmdCopyBufferToImage2-commandBuffer-recording" href="#VUID-vkCmdCopyBufferToImage2-commandBuffer-recording"></a> <span class="vuid">VUID-vkCmdCopyBufferToImage2-commandBuffer-recording</span><br>
1286 <code>commandBuffer</code> <strong class="purple">must</strong> be in the <a href="#commandbuffers-lifecycle">recording state</a></p>
1287</li>
1288<li>
1289<p><a id="VUID-vkCmdCopyBufferToImage2-commandBuffer-cmdpool" href="#VUID-vkCmdCopyBufferToImage2-commandBuffer-cmdpool"></a> <span class="vuid">VUID-vkCmdCopyBufferToImage2-commandBuffer-cmdpool</span><br>
1290 The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class="purple">must</strong> support transfer, graphics, or compute operations</p>
1291</li>
1292<li>
1293<p><a id="VUID-vkCmdCopyBufferToImage2-renderpass" href="#VUID-vkCmdCopyBufferToImage2-renderpass"></a> <span class="vuid">VUID-vkCmdCopyBufferToImage2-renderpass</span><br>
1294 This command <strong class="purple">must</strong> only be called outside of a render pass instance</p>
1295</li>
1296</ul>
1297</div>
1298</div>
1299</div>
1300<div class="sidebarblock">
1301<div class="content">
1302<div class="title">Host Synchronization</div>
1303<div class="ulist">
1304<ul>
1305<li>
1306<p>Host access to <code>commandBuffer</code> <strong class="purple">must</strong> be externally synchronized</p>
1307</li>
1308<li>
1309<p>Host access to the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class="purple">must</strong> be externally synchronized</p>
1310</li>
1311</ul>
1312</div>
1313</div>
1314</div>
1315<div class="sidebarblock">
1316<div class="content">
1317<div class="title">Command Properties</div>
1318<table class="tableblock frame-all grid-all stretch">
1319<colgroup>
1320<col style="width: 25%;">
1321<col style="width: 25%;">
1322<col style="width: 25%;">
1323<col style="width: 25%;">
1324</colgroup>
1325<thead>
1326<tr>
1327<th class="tableblock halign-left valign-top"><a href="#VkCommandBufferLevel">Command Buffer Levels</a></th>
1328<th class="tableblock halign-left valign-top"><a href="#vkCmdBeginRenderPass">Render Pass Scope</a></th>
1329<th class="tableblock halign-left valign-top"><a href="#VkQueueFlagBits">Supported Queue Types</a></th>
1330<th class="tableblock halign-left valign-top"><a href="#fundamentals-queueoperation-command-types">Command Type</a></th>
1331</tr>
1332</thead>
1333<tbody>
1334<tr>
1335<td class="tableblock halign-left valign-top"><p class="tableblock">Primary<br>
1336Secondary</p></td>
1337<td class="tableblock halign-left valign-top"><p class="tableblock">Outside</p></td>
1338<td class="tableblock halign-left valign-top"><p class="tableblock">Transfer<br>
1339Graphics<br>
1340Compute</p></td>
1341<td class="tableblock halign-left valign-top"><p class="tableblock">Action</p></td>
1342</tr>
1343</tbody>
1344</table>
1345</div>
1346</div>
1347</div>
1348</div>
1349<div class="openblock">
1350<div class="content">
1351<div class="paragraph">
1352<p>Sed risus pretium quam vulputate dignissim suspendisse in est ante <code>VkCopyBufferToImageInfo2</code>:</p>
1353</div>
1354<div id="VkCopyBufferToImageInfo2" class="listingblock">
1355<div class="content">
1356<pre class="rouge highlight"><code data-lang="c++"><span class="k">typedef</span> <span class="k">struct</span> <span class="nc">VkCopyBufferToImageInfo2</span> <span class="p">{</span>
1357    <span class="n">VkStructureType</span>              <span class="n">sType</span><span class="p">;</span>
1358    <span class="k">const</span> <span class="kt">void</span><span class="o">*</span>                  <span class="n">pNext</span><span class="p">;</span>
1359    <span class="n">VkBuffer</span>                     <span class="n">srcBuffer</span><span class="p">;</span>
1360    <span class="n">VkImage</span>                      <span class="n">dstImage</span><span class="p">;</span>
1361    <span class="n">VkImageLayout</span>                <span class="n">dstImageLayout</span><span class="p">;</span>
1362    <span class="kt">uint32_t</span>                     <span class="n">regionCount</span><span class="p">;</span>
1363    <span class="k">const</span> <span class="n">VkBufferImageCopy2</span><span class="o">*</span>    <span class="n">pRegions</span><span class="p">;</span>
1364<span class="p">}</span> <span class="n">VkCopyBufferToImageInfo2</span><span class="p">;</span></code></pre>
1365</div>
1366</div>
1367<div class="paragraph">
1368<p>or the equivalent</p>
1369</div>
1370<div id="VkCopyBufferToImageInfo2KHR" class="listingblock">
1371<div class="content">
1372<pre class="rouge highlight"><code data-lang="c++"><span class="c1">// Provided by VK_KHR_copy_commands2</span>
1373<span class="k">typedef</span> <span class="n">VkCopyBufferToImageInfo2</span> <span class="n">VkCopyBufferToImageInfo2KHR</span><span class="p">;</span></code></pre>
1374</div>
1375</div>
1376<div class="ulist">
1377<ul>
1378<li>
1379<p><code>sType</code> Natoque penatibus et magnis dis parturient montes nascetur.</p>
1380</li>
1381<li>
1382<p><code>pNext</code> Iaculis eu non diam phasellus vestibulum.</p>
1383</li>
1384<li>
1385<p><code>srcBuffer</code> Consequat nisl vel pretium lectus quam.</p>
1386</li>
1387<li>
1388<p><code>dstImage</code> Euismod in pellentesque massa placerat duis ultricies lacus sed turpis.</p>
1389</li>
1390<li>
1391<p><code>dstImageLayout</code> Ullamcorper eget nulla facilisi etiam dignissim diam quis enim.</p>
1392</li>
1393<li>
1394<p><code>regionCount</code> Vel facilisis volutpat est velit egestas dui.</p>
1395</li>
1396<li>
1397<p><code>pRegions</code> Consequat id porta nibh venenatis cras sed felis.</p>
1398</li>
1399</ul>
1400</div>
1401<div class="sidebarblock">
1402<div class="content">
1403<div class="title">Valid Usage</div>
1404<div class="ulist">
1405<ul>
1406<li>
1407<p><a id="VUID-VkCopyBufferToImageInfo2-pRegions-94565" href="#VUID-VkCopyBufferToImageInfo2-pRegions-94565"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-pRegions-94565</span><br>
1408
1409Id velit ut tortor pretium viverra suspendisse potenti <code>pRegions</code>
1410<code>imageSubresource</code> eu facilisis sed <strong class="purple">must</strong> odio morbi quis commodo
1411<code>dstImage</code></p>
1412</li>
1413</ul>
1414</div>
1415<div class="ulist">
1416<ul>
1417<li>
1418<p><a id="VUID-VkCopyBufferToImageInfo2-dstImage-97965" href="#VUID-VkCopyBufferToImageInfo2-dstImage-97965"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-dstImage-97965</span><br>
1419
1420If <code>dstImage</code> is non-sparse then it <strong class="purple">must</strong> be bound completely
1421and contiguously to a single <code>VkDeviceMemory</code> object</p>
1422</li>
1423<li>
1424<p><a id="VUID-VkCopyBufferToImageInfo2-imageSubresource-97967" href="#VUID-VkCopyBufferToImageInfo2-imageSubresource-97967"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-imageSubresource-97967</span><br>
1425
1426The <code>imageSubresource.mipLevel</code> member of each element of
1427<code>pRegions</code> <strong class="purple">must</strong> be less than the <code>mipLevels</code> specified in
1428<a href="#VkImageCreateInfo">VkImageCreateInfo</a> when <code>dstImage</code> was created</p>
1429</li>
1430<li>
1431<p><a id="VUID-VkCopyBufferToImageInfo2-imageSubresource-97968" href="#VUID-VkCopyBufferToImageInfo2-imageSubresource-97968"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-imageSubresource-97968</span><br>
1432
1433The <span class="eq"><code>imageSubresource.baseArrayLayer</code> + 
1434<code>imageSubresource.layerCount</code></span> of each element of <code>pRegions</code>
1435<strong class="purple">must</strong> be less than or equal to the <code>arrayLayers</code> specified in
1436<a href="#VkImageCreateInfo">VkImageCreateInfo</a> when <code>dstImage</code> was created</p>
1437</li>
1438</ul>
1439</div>
1440<div class="ulist">
1441<ul>
1442<li>
1443<p><a id="VUID-VkCopyBufferToImageInfo2-bufferRowLength-99101" href="#VUID-VkCopyBufferToImageInfo2-bufferRowLength-99101"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-bufferRowLength-99101</span><br>
1444
1445<code>bufferRowLength</code> <strong class="purple">must</strong> be <code>0</code>, or greater than or equal to the
1446<code>width</code> member of <code>imageExtent</code></p>
1447</li>
1448<li>
1449<p><a id="VUID-VkCopyBufferToImageInfo2-bufferImageHeight-99102" href="#VUID-VkCopyBufferToImageInfo2-bufferImageHeight-99102"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-bufferImageHeight-99102</span><br>
1450
1451<code>bufferImageHeight</code> <strong class="purple">must</strong> be <code>0</code>, or greater than or equal to the
1452<code>height</code> member of <code>imageExtent</code></p>
1453</li>
1454<li>
1455<p><a id="VUID-VkCopyBufferToImageInfo2-aspectMask-99103" href="#VUID-VkCopyBufferToImageInfo2-aspectMask-99103"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-aspectMask-99103</span><br>
1456
1457The <code>aspectMask</code> member of <code>imageSubresource</code> <strong class="purple">must</strong> only have a
1458single bit set</p>
1459</li>
1460<li>
1461<p><a id="VUID-VkCopyBufferToImageInfo2-imageExtent-96659" href="#VUID-VkCopyBufferToImageInfo2-imageExtent-96659"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-imageExtent-96659</span><br>
1462
1463<code>imageExtent.width</code> <strong class="purple">must</strong> not be 0</p>
1464</li>
1465<li>
1466<p><a id="VUID-VkCopyBufferToImageInfo2-imageExtent-96660" href="#VUID-VkCopyBufferToImageInfo2-imageExtent-96660"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-imageExtent-96660</span><br>
1467
1468<code>imageExtent.height</code> <strong class="purple">must</strong> not be 0</p>
1469</li>
1470<li>
1471<p><a id="VUID-VkCopyBufferToImageInfo2-imageExtent-96661" href="#VUID-VkCopyBufferToImageInfo2-imageExtent-96661"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-imageExtent-96661</span><br>
1472
1473<code>imageExtent.depth</code> <strong class="purple">must</strong> not be 0</p>
1474</li>
1475<li>
1476<p><a id="VUID-VkCopyBufferToImageInfo2-pRegions-96223" href="#VUID-VkCopyBufferToImageInfo2-pRegions-96223"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-pRegions-96223</span><br>
1477
1478Id leo in vitae turpis massa sed elementum
1479<code>imageOffset.x</code> and <span class="eq">(<code>imageExtent.width</code> + 
1480<code>imageOffset.x</code>)</span> <strong class="purple">must</strong> gravida dictum fusce ut placerat orci nulla
1481pellentesque dignissim enim <code>imageSubresource</code> of <code>dstImage</code></p>
1482</li>
1483</ul>
1484</div>
1485</div>
1486</div>
1487<div class="sidebarblock">
1488<div class="content">
1489<div class="title">Valid Usage (Implicit)</div>
1490<div class="ulist">
1491<ul>
1492<li>
1493<p><a id="VUID-VkCopyBufferToImageInfo2-sType-sType" href="#VUID-VkCopyBufferToImageInfo2-sType-sType"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-sType-sType</span><br>
1494 <code>sType</code> <strong class="purple">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2</code></p>
1495</li>
1496<li>
1497<p><a id="VUID-VkCopyBufferToImageInfo2-pNext-pNext" href="#VUID-VkCopyBufferToImageInfo2-pNext-pNext"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-pNext-pNext</span><br>
1498 <code>pNext</code> <strong class="purple">must</strong> be <code>NULL</code></p>
1499</li>
1500<li>
1501<p><a id="VUID-VkCopyBufferToImageInfo2-srcBuffer-parameter" href="#VUID-VkCopyBufferToImageInfo2-srcBuffer-parameter"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-srcBuffer-parameter</span><br>
1502 <code>srcBuffer</code> <strong class="purple">must</strong> be a valid <a href="#VkBuffer">VkBuffer</a> handle</p>
1503</li>
1504<li>
1505<p><a id="VUID-VkCopyBufferToImageInfo2-dstImage-parameter" href="#VUID-VkCopyBufferToImageInfo2-dstImage-parameter"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-dstImage-parameter</span><br>
1506 <code>dstImage</code> <strong class="purple">must</strong> be a valid <a href="#VkImage">VkImage</a> handle</p>
1507</li>
1508<li>
1509<p><a id="VUID-VkCopyBufferToImageInfo2-dstImageLayout-parameter" href="#VUID-VkCopyBufferToImageInfo2-dstImageLayout-parameter"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-dstImageLayout-parameter</span><br>
1510 <code>dstImageLayout</code> <strong class="purple">must</strong> be a valid <a href="#VkImageLayout">VkImageLayout</a> value</p>
1511</li>
1512<li>
1513<p><a id="VUID-VkCopyBufferToImageInfo2-pRegions-parameter" href="#VUID-VkCopyBufferToImageInfo2-pRegions-parameter"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-pRegions-parameter</span><br>
1514 <code>pRegions</code> <strong class="purple">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href="#VkBufferImageCopy2">VkBufferImageCopy2</a> structures</p>
1515</li>
1516<li>
1517<p><a id="VUID-VkCopyBufferToImageInfo2-regionCount-arraylength" href="#VUID-VkCopyBufferToImageInfo2-regionCount-arraylength"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-regionCount-arraylength</span><br>
1518 <code>regionCount</code> <strong class="purple">must</strong> be greater than <code>0</code></p>
1519</li>
1520<li>
1521<p><a id="VUID-VkCopyBufferToImageInfo2-commonparent" href="#VUID-VkCopyBufferToImageInfo2-commonparent"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-commonparent</span><br>
1522 Both of <code>dstImage</code>, and <code>srcBuffer</code> <strong class="purple">must</strong> have been created, allocated, or retrieved from the same <a href="#VkDevice">VkDevice</a></p>
1523</li>
1524</ul>
1525</div>
1526</div>
1527</div>
1528</div>
1529</div>
1530<div class="openblock">
1531<div class="content">
1532<div class="paragraph">
1533<p>Gravida dictum fusce ut placerat orci nulla pellentesque dignissim enim <a href="#vkCmdCopyBufferToImage2KHR">vkCmdCopyBufferToImage2KHR</a>:</p>
1534</div>
1535<div id="VkBufferImageCopy2" class="listingblock">
1536<div class="content">
1537<pre class="rouge highlight"><code data-lang="c++"><span class="k">typedef</span> <span class="k">struct</span> <span class="nc">VkBufferImageCopy2</span> <span class="p">{</span>
1538    <span class="n">VkStructureType</span>             <span class="n">sType</span><span class="p">;</span>
1539    <span class="k">const</span> <span class="kt">void</span><span class="o">*</span>                 <span class="n">pNext</span><span class="p">;</span>
1540    <span class="n">VkDeviceSize</span>                <span class="n">bufferOffset</span><span class="p">;</span>
1541    <span class="kt">uint32_t</span>                    <span class="n">bufferRowLength</span><span class="p">;</span>
1542    <span class="kt">uint32_t</span>                    <span class="n">bufferImageHeight</span><span class="p">;</span>
1543    <span class="n">VkImageSubresourceLayers</span>    <span class="n">imageSubresource</span><span class="p">;</span>
1544    <span class="n">VkOffset3D</span>                  <span class="n">imageOffset</span><span class="p">;</span>
1545    <span class="n">VkExtent3D</span>                  <span class="n">imageExtent</span><span class="p">;</span>
1546<span class="p">}</span> <span class="n">VkBufferImageCopy2</span><span class="p">;</span></code></pre>
1547</div>
1548</div>
1549<div class="paragraph">
1550<p>or the equivalent</p>
1551</div>
1552<div id="VkBufferImageCopy2KHR" class="listingblock">
1553<div class="content">
1554<pre class="rouge highlight"><code data-lang="c++"><span class="c1">// Provided by VK_KHR_copy_commands2</span>
1555<span class="k">typedef</span> <span class="n">VkBufferImageCopy2</span> <span class="n">VkBufferImageCopy2KHR</span><span class="p">;</span></code></pre>
1556</div>
1557</div>
1558<div class="ulist">
1559<ul>
1560<li>
1561<p><code>sType</code> Tristique senectus et netus et malesuada.</p>
1562</li>
1563<li>
1564<p><code>pNext</code> Tempor commodo ullamcorper a lacus vestibulum sed arcu.</p>
1565</li>
1566<li>
1567<p><code>bufferOffset</code> Tellus in metus vulputate eu scelerisque. Lectus sit amet est placerat in.</p>
1568</li>
1569<li>
1570<p><code>bufferRowLength</code> and <code>bufferImageHeight</code> Quam adipiscing vitae
1571proin sagittis. Mattis pellentesque id nibh tortor id aliquet lectus proin
1572nibh <code>imageExtent</code>.</p>
1573</li>
1574<li>
1575<p><code>imageSubresource</code> Sociis natoque penatibus et magnis dis parturient montes nascetur.</p>
1576</li>
1577<li>
1578<p><code>imageOffset</code> Lobortis mattis aliquam faucibus purus in massa tempor nec.</p>
1579</li>
1580<li>
1581<p><code>imageExtent</code> Ut ornare lectus sit amet est placerat in.</p>
1582</li>
1583</ul>
1584</div>
1585<div class="paragraph">
1586<p>Integer quis auctor elit sed vulputate mi sit amet mauris. Ultrices sagittis
1587orci a scelerisque purus semper eget duis.</p>
1588</div>
1589<div class="sidebarblock">
1590<div class="content">
1591<div class="title">Valid Usage</div>
1592<div class="ulist">
1593<ul>
1594<li>
1595<p><a id="VUID-VkBufferImageCopy2-bufferRowLength-99101" href="#VUID-VkBufferImageCopy2-bufferRowLength-99101"></a> <span class="vuid">VUID-VkBufferImageCopy2-bufferRowLength-99101</span><br>
1596
1597<code>bufferRowLength</code> <strong class="purple">must</strong> be <code>0</code>, or greater than or equal to the
1598<code>width</code> member of <code>imageExtent</code></p>
1599</li>
1600<li>
1601<p><a id="VUID-VkBufferImageCopy2-bufferImageHeight-99102" href="#VUID-VkBufferImageCopy2-bufferImageHeight-99102"></a> <span class="vuid">VUID-VkBufferImageCopy2-bufferImageHeight-99102</span><br>
1602
1603<code>bufferImageHeight</code> <strong class="purple">must</strong> be <code>0</code>, or greater than or equal to the
1604<code>height</code> member of <code>imageExtent</code></p>
1605</li>
1606<li>
1607<p><a id="VUID-VkBufferImageCopy2-aspectMask-99103" href="#VUID-VkBufferImageCopy2-aspectMask-99103"></a> <span class="vuid">VUID-VkBufferImageCopy2-aspectMask-99103</span><br>
1608
1609The <code>aspectMask</code> member of <code>imageSubresource</code> <strong class="purple">must</strong> only have a
1610single bit set</p>
1611</li>
1612<li>
1613<p><a id="VUID-VkBufferImageCopy2-imageExtent-96659" href="#VUID-VkBufferImageCopy2-imageExtent-96659"></a> <span class="vuid">VUID-VkBufferImageCopy2-imageExtent-96659</span><br>
1614
1615<code>imageExtent.width</code> <strong class="purple">must</strong> not be 0</p>
1616</li>
1617<li>
1618<p><a id="VUID-VkBufferImageCopy2-imageExtent-96660" href="#VUID-VkBufferImageCopy2-imageExtent-96660"></a> <span class="vuid">VUID-VkBufferImageCopy2-imageExtent-96660</span><br>
1619
1620<code>imageExtent.height</code> <strong class="purple">must</strong> not be 0</p>
1621</li>
1622<li>
1623<p><a id="VUID-VkBufferImageCopy2-imageExtent-96661" href="#VUID-VkBufferImageCopy2-imageExtent-96661"></a> <span class="vuid">VUID-VkBufferImageCopy2-imageExtent-96661</span><br>
1624
1625<code>imageExtent.depth</code> <strong class="purple">must</strong> not be 0</p>
1626</li>
1627</ul>
1628</div>
1629</div>
1630</div>
1631<div class="sidebarblock">
1632<div class="content">
1633<div class="title">Valid Usage (Implicit)</div>
1634<div class="ulist">
1635<ul>
1636<li>
1637<p><a id="VUID-VkBufferImageCopy2-sType-sType" href="#VUID-VkBufferImageCopy2-sType-sType"></a> <span class="vuid">VUID-VkBufferImageCopy2-sType-sType</span><br>
1638 <code>sType</code> <strong class="purple">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2</code></p>
1639</li>
1640<li>
1641<p><a id="VUID-VkBufferImageCopy2-pNext-pNext" href="#VUID-VkBufferImageCopy2-pNext-pNext"></a> <span class="vuid">VUID-VkBufferImageCopy2-pNext-pNext</span><br>
1642 <code>pNext</code> <strong class="purple">must</strong> be <code>NULL</code></p>
1643</li>
1644<li>
1645<p><a id="VUID-VkBufferImageCopy2-imageSubresource-parameter" href="#VUID-VkBufferImageCopy2-imageSubresource-parameter"></a> <span class="vuid">VUID-VkBufferImageCopy2-imageSubresource-parameter</span><br>
1646 <code>imageSubresource</code> <strong class="purple">must</strong> be a valid <a href="#VkImageSubresourceLayers">VkImageSubresourceLayers</a> structure</p>
1647</li>
1648</ul>
1649</div>
1650</div>
1651</div>
1652</div>
1653</div>
1654</div>
1655</div>
1656</div>
1657<div class="sect1">
1658<h2 id="hic"><a class="anchor" href="#hic"></a>3. Host Image Copy</h2>
1659<div class="sectionbody">
1660<div class="paragraph">
1661<p>Tristique senectus et netus et malesuada. Tempor commodo ullamcorper a lacus
1662vestibulum sed arcu. Tellus in metus vulputate eu scelerisque. Lectus sit amet
1663est placerat in. Quam adipiscing vitae proin sagittis. Mattis pellentesque id
1664nibh tortor id aliquet lectus proin nibh. Sociis natoque penatibus et magnis
1665dis parturient montes nascetur. Lobortis mattis aliquam faucibus purus in massa
1666tempor nec. Ut ornare lectus sit amet est placerat in. Integer quis auctor elit
1667sed vulputate mi sit amet mauris. Ultrices sagittis orci a scelerisque purus
1668semper eget duis. Sit amet consectetur adipiscing elit duis tristique. Semper
1669risus in hendrerit gravida rutrum. Lorem ipsum dolor sit amet consectetur
1670adipiscing elit duis. Varius morbi enim nunc faucibus a pellentesque sit amet.
1671Praesent semper feugiat nibh sed pulvinar proin. Porttitor leo a diam
1672sollicitudin tempor id. In massa tempor nec feugiat nisl pretium fusce id. Amet
1673venenatis urna cursus eget nunc scelerisque.</p>
1674</div>
1675<div class="openblock">
1676<div class="content">
1677<div class="paragraph">
1678<p>Cursus sit amet dictum sit amet justo:</p>
1679</div>
1680<div id="vkCopyMemoryToImageEXT" class="listingblock">
1681<div class="content">
1682<pre class="rouge highlight"><code data-lang="c++"><span class="c1">// Provided by VK_EXT_host_image_copy</span>
1683<span class="n">VkResult</span> <span class="nf">vkCopyMemoryToImageEXT</span><span class="p">(</span>
1684    <span class="n">VkDevice</span>                                    <span class="n">device</span><span class="p">,</span>
1685    <span class="k">const</span> <span class="n">VkCopyMemoryToImageInfoEXT</span><span class="o">*</span>           <span class="n">pCopyMemoryToImageInfo</span><span class="p">);</span></code></pre>
1686</div>
1687</div>
1688<div class="ulist">
1689<ul>
1690<li>
1691<p><code>device</code> Quis viverra nibh cras pulvinar mattis nunc
1692<code>pCopyMemoryToImageInfo-&gt;dstImage</code>.</p>
1693</li>
1694<li>
1695<p><code>pCopyMemoryToImageInfo</code> Est velit egestas dui id ornare. Tristique nulla aliquet enim tortor at
1696<a href="#VkCopyMemoryToImageInfoEXT">VkCopyMemoryToImageInfoEXT</a> structure.</p>
1697</li>
1698</ul>
1699</div>
1700<div class="paragraph">
1701<p>Turpis egestas pretium aenean pharetra <a href="#vkCmdCopyBufferToImage2KHR">vkCmdCopyBufferToImage2KHR</a>, magna ac placerat vestibulum lectus.</p>
1702</div>
1703<div class="sidebarblock">
1704<div class="content">
1705<div class="title">Valid Usage</div>
1706<div class="ulist">
1707<ul>
1708<li>
1709<p><a id="VUID-vkCopyMemoryToImageEXT-hostImageCopy-99058" href="#VUID-vkCopyMemoryToImageEXT-hostImageCopy-99058"></a> <span class="vuid">VUID-vkCopyMemoryToImageEXT-hostImageCopy-99058</span><br>
1710
1711Risus quis varius <a href="#features-hostImageCopy"><code>hostImageCopy</code></a> quam
1712quisque id diam vel</p>
1713</li>
1714</ul>
1715</div>
1716</div>
1717</div>
1718<div class="sidebarblock">
1719<div class="content">
1720<div class="title">Valid Usage (Implicit)</div>
1721<div class="ulist">
1722<ul>
1723<li>
1724<p><a id="VUID-vkCopyMemoryToImageEXT-device-parameter" href="#VUID-vkCopyMemoryToImageEXT-device-parameter"></a> <span class="vuid">VUID-vkCopyMemoryToImageEXT-device-parameter</span><br>
1725 <code>device</code> <strong class="purple">must</strong> be a valid <a href="#VkDevice">VkDevice</a> handle</p>
1726</li>
1727<li>
1728<p><a id="VUID-vkCopyMemoryToImageEXT-pCopyMemoryToImageInfo-parameter" href="#VUID-vkCopyMemoryToImageEXT-pCopyMemoryToImageInfo-parameter"></a> <span class="vuid">VUID-vkCopyMemoryToImageEXT-pCopyMemoryToImageInfo-parameter</span><br>
1729 <code>pCopyMemoryToImageInfo</code> <strong class="purple">must</strong> be a valid pointer to a valid <a href="#VkCopyMemoryToImageInfoEXT">VkCopyMemoryToImageInfoEXT</a> structure</p>
1730</li>
1731</ul>
1732</div>
1733</div>
1734</div>
1735<div class="sidebarblock">
1736<div class="content">
1737<div class="title">Return Codes</div>
1738<div class="dlist">
1739<dl>
1740<dt class="hdlist1"><a href="#fundamentals-successcodes">Success</a></dt>
1741<dd>
1742<div class="ulist">
1743<ul>
1744<li>
1745<p><code>VK_SUCCESS</code></p>
1746</li>
1747</ul>
1748</div>
1749</dd>
1750<dt class="hdlist1"><a href="#fundamentals-errorcodes">Failure</a></dt>
1751<dd>
1752<div class="ulist">
1753<ul>
1754<li>
1755<p><code>VK_ERROR_INITIALIZATION_FAILED</code></p>
1756</li>
1757<li>
1758<p><code>VK_ERROR_OUT_OF_HOST_MEMORY</code></p>
1759</li>
1760<li>
1761<p><code>VK_ERROR_OUT_OF_DEVICE_MEMORY</code></p>
1762</li>
1763<li>
1764<p><code>VK_ERROR_MEMORY_MAP_FAILED</code></p>
1765</li>
1766</ul>
1767</div>
1768</dd>
1769</dl>
1770</div>
1771</div>
1772</div>
1773</div>
1774</div>
1775<div class="openblock">
1776<div class="content">
1777<div class="paragraph">
1778<p>Morbi tincidunt augue interdum velit euismod in pellentesque massa <code>VkCopyMemoryToImageInfoEXT</code> structure:</p>
1779</div>
1780<div id="VkCopyMemoryToImageInfoEXT" class="listingblock">
1781<div class="content">
1782<pre class="rouge highlight"><code data-lang="c++"><span class="c1">// Provided by VK_EXT_host_image_copy</span>
1783<span class="k">typedef</span> <span class="k">struct</span> <span class="nc">VkCopyMemoryToImageInfoEXT</span> <span class="p">{</span>
1784    <span class="n">VkStructureType</span>                  <span class="n">sType</span><span class="p">;</span>
1785    <span class="k">const</span> <span class="kt">void</span><span class="o">*</span>                      <span class="n">pNext</span><span class="p">;</span>
1786    <span class="n">VkHostImageCopyFlagsEXT</span>          <span class="n">flags</span><span class="p">;</span>
1787    <span class="n">VkImage</span>                          <span class="n">dstImage</span><span class="p">;</span>
1788    <span class="n">VkImageLayout</span>                    <span class="n">dstImageLayout</span><span class="p">;</span>
1789    <span class="kt">uint32_t</span>                         <span class="n">regionCount</span><span class="p">;</span>
1790    <span class="k">const</span> <span class="n">VkMemoryToImageCopyEXT</span><span class="o">*</span>    <span class="n">pRegions</span><span class="p">;</span>
1791<span class="p">}</span> <span class="n">VkCopyMemoryToImageInfoEXT</span><span class="p">;</span></code></pre>
1792</div>
1793</div>
1794<div class="ulist">
1795<ul>
1796<li>
1797<p><code>sType</code> on enim praesent elementum facilisis.</p>
1798</li>
1799<li>
1800<p><code>pNext</code> Ultricies tristique <code>NULL</code> nulla aliquet enim tortor.</p>
1801</li>
1802<li>
1803<p><code>flags</code> Volutpat ac tincidunt vitae semper.</p>
1804</li>
1805<li>
1806<p><code>dstImage</code> Orci eu lobortis elementum nibh.</p>
1807</li>
1808<li>
1809<p><code>dstImageLayout</code> Euismod elementum nisi quis eleifend quam adipiscing vitae proin.</p>
1810</li>
1811<li>
1812<p><code>regionCount</code> Et netus et malesuada fames ac turpis egestas.</p>
1813</li>
1814<li>
1815<p><code>pRegions</code> Lorem ipsum dolor sitr <a href="#VkMemoryToImageCopyEXT">VkMemoryToImageCopyEXT</a> amet consectetu.</p>
1816</li>
1817</ul>
1818</div>
1819<div class="paragraph">
1820<p><code>vkCopyMemoryToImageEXT</code> pulvinar neque laoreet suspendisse interdum
1821consectetur libero. Id porta nibh venenatis cras sed felis. Massa vitae tortor
1822condimentum lacinia quis.</p>
1823</div>
1824<div class="sidebarblock">
1825<div class="content">
1826<div class="title">Valid Usage</div>
1827<div class="ulist">
1828<ul>
1829<li>
1830<p><a id="VUID-VkCopyMemoryToImageInfoEXT-dstImage-97965" href="#VUID-VkCopyMemoryToImageInfoEXT-dstImage-97965"></a> <span class="vuid">VUID-VkCopyMemoryToImageInfoEXT-dstImage-97965</span><br>
1831
1832If <code>dstImage</code> is non-sparse then it <strong class="purple">must</strong> be bound completely
1833and contiguously to a single <code>VkDeviceMemory</code> object</p>
1834</li>
1835<li>
1836<p><a id="VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-97967" href="#VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-97967"></a> <span class="vuid">VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-97967</span><br>
1837
1838The <code>imageSubresource.mipLevel</code> member of each element of
1839<code>pRegions</code> <strong class="purple">must</strong> be less than the <code>mipLevels</code> specified in
1840<a href="#VkImageCreateInfo">VkImageCreateInfo</a> when <code>dstImage</code> was created</p>
1841</li>
1842<li>
1843<p><a id="VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-97968" href="#VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-97968"></a> <span class="vuid">VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-97968</span><br>
1844
1845The <span class="eq"><code>imageSubresource.baseArrayLayer</code> + 
1846<code>imageSubresource.layerCount</code></span> of each element of <code>pRegions</code>
1847<strong class="purple">must</strong> be less than or equal to the <code>arrayLayers</code> specified in
1848<a href="#VkImageCreateInfo">VkImageCreateInfo</a> when <code>dstImage</code> was created</p>
1849</li>
1850<li>
1851<p><a id="VUID-VkCopyMemoryToImageInfoEXT-dstImageLayout-99059" href="#VUID-VkCopyMemoryToImageInfoEXT-dstImageLayout-99059"></a> <span class="vuid">VUID-VkCopyMemoryToImageInfoEXT-dstImageLayout-99059</span><br>
1852
1853<code>dstImageLayout</code> <strong class="purple">must</strong> Lorem ipsum dolor sit amet, <code>dstImage</code>
1854consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore
1855<code>pRegions</code> et dolore magna aliqua</p>
1856</li>
1857</ul>
1858</div>
1859</div>
1860</div>
1861<div class="sidebarblock">
1862<div class="content">
1863<div class="title">Valid Usage (Implicit)</div>
1864<div class="ulist">
1865<ul>
1866<li>
1867<p><a id="VUID-VkCopyMemoryToImageInfoEXT-sType-sType" href="#VUID-VkCopyMemoryToImageInfoEXT-sType-sType"></a> <span class="vuid">VUID-VkCopyMemoryToImageInfoEXT-sType-sType</span><br>
1868 <code>sType</code> <strong class="purple">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT</code></p>
1869</li>
1870<li>
1871<p><a id="VUID-VkCopyMemoryToImageInfoEXT-pNext-pNext" href="#VUID-VkCopyMemoryToImageInfoEXT-pNext-pNext"></a> <span class="vuid">VUID-VkCopyMemoryToImageInfoEXT-pNext-pNext</span><br>
1872 <code>pNext</code> <strong class="purple">must</strong> be <code>NULL</code></p>
1873</li>
1874<li>
1875<p><a id="VUID-VkCopyMemoryToImageInfoEXT-flags-parameter" href="#VUID-VkCopyMemoryToImageInfoEXT-flags-parameter"></a> <span class="vuid">VUID-VkCopyMemoryToImageInfoEXT-flags-parameter</span><br>
1876 <code>flags</code> <strong class="purple">must</strong> be a valid combination of <a href="#VkHostImageCopyFlagBitsEXT">VkHostImageCopyFlagBitsEXT</a> values</p>
1877</li>
1878<li>
1879<p><a id="VUID-VkCopyMemoryToImageInfoEXT-dstImage-parameter" href="#VUID-VkCopyMemoryToImageInfoEXT-dstImage-parameter"></a> <span class="vuid">VUID-VkCopyMemoryToImageInfoEXT-dstImage-parameter</span><br>
1880 <code>dstImage</code> <strong class="purple">must</strong> be a valid <a href="#VkImage">VkImage</a> handle</p>
1881</li>
1882<li>
1883<p><a id="VUID-VkCopyMemoryToImageInfoEXT-dstImageLayout-parameter" href="#VUID-VkCopyMemoryToImageInfoEXT-dstImageLayout-parameter"></a> <span class="vuid">VUID-VkCopyMemoryToImageInfoEXT-dstImageLayout-parameter</span><br>
1884 <code>dstImageLayout</code> <strong class="purple">must</strong> be a valid <a href="#VkImageLayout">VkImageLayout</a> value</p>
1885</li>
1886<li>
1887<p><a id="VUID-VkCopyMemoryToImageInfoEXT-pRegions-parameter" href="#VUID-VkCopyMemoryToImageInfoEXT-pRegions-parameter"></a> <span class="vuid">VUID-VkCopyMemoryToImageInfoEXT-pRegions-parameter</span><br>
1888 <code>pRegions</code> <strong class="purple">must</strong> be a valid pointer to an array of <code>regionCount</code> valid <a href="#VkMemoryToImageCopyEXT">VkMemoryToImageCopyEXT</a> structures</p>
1889</li>
1890<li>
1891<p><a id="VUID-VkCopyMemoryToImageInfoEXT-regionCount-arraylength" href="#VUID-VkCopyMemoryToImageInfoEXT-regionCount-arraylength"></a> <span class="vuid">VUID-VkCopyMemoryToImageInfoEXT-regionCount-arraylength</span><br>
1892 <code>regionCount</code> <strong class="purple">must</strong> be greater than <code>0</code></p>
1893</li>
1894</ul>
1895</div>
1896</div>
1897</div>
1898</div>
1899</div>
1900<div class="openblock">
1901<div class="content">
1902<div class="paragraph">
1903<p>Congue eu consequat ac felis donec et odio. Enim nec
1904<a href="#VkCopyMemoryToImageInfoEXT">VkCopyMemoryToImageInfoEXT</a>::<code>pRegions</code> dui nunc mattis enim:</p>
1905</div>
1906<div id="VkMemoryToImageCopyEXT" class="listingblock">
1907<div class="content">
1908<pre class="rouge highlight"><code data-lang="c++"><span class="c1">// Provided by VK_EXT_host_image_copy</span>
1909<span class="k">typedef</span> <span class="k">struct</span> <span class="nc">VkMemoryToImageCopyEXT</span> <span class="p">{</span>
1910    <span class="n">VkStructureType</span>             <span class="n">sType</span><span class="p">;</span>
1911    <span class="k">const</span> <span class="kt">void</span><span class="o">*</span>                 <span class="n">pNext</span><span class="p">;</span>
1912    <span class="k">const</span> <span class="kt">void</span><span class="o">*</span>                 <span class="n">pHostPointer</span><span class="p">;</span>
1913    <span class="kt">uint32_t</span>                    <span class="n">memoryRowLength</span><span class="p">;</span>
1914    <span class="kt">uint32_t</span>                    <span class="n">memoryImageHeight</span><span class="p">;</span>
1915    <span class="n">VkImageSubresourceLayers</span>    <span class="n">imageSubresource</span><span class="p">;</span>
1916    <span class="n">VkOffset3D</span>                  <span class="n">imageOffset</span><span class="p">;</span>
1917    <span class="n">VkExtent3D</span>                  <span class="n">imageExtent</span><span class="p">;</span>
1918<span class="p">}</span> <span class="n">VkMemoryToImageCopyEXT</span><span class="p">;</span></code></pre>
1919</div>
1920</div>
1921<div class="ulist">
1922<ul>
1923<li>
1924<p><code>sType</code> Nulla facilisi etiam dignissim diam quis enim lobortis scelerisque fermentum.</p>
1925</li>
1926<li>
1927<p><code>pNext</code> Nam libero justo laoreet sit amet.</p>
1928</li>
1929<li>
1930<p><code>pHostPointer</code> Lacus luctus accumsan tortor posuere.</p>
1931</li>
1932<li>
1933<p><code>memoryRowLength</code> and <code>memoryImageHeight</code> Ultrices tincidunt arcu
1934non sodales. Ut enim blandit volutpat maecenas volutpat blandit aliquam
1935etiam <code>imageExtent</code>.</p>
1936</li>
1937<li>
1938<p><code>imageSubresource</code> Sed id semper risus in. Natoque penatibus et magnis dis parturient montes.</p>
1939</li>
1940<li>
1941<p><code>imageOffset</code> Vestibulum morbi blandit cursus <code>x</code>, <code>y</code>, <code>z</code>
1942risus at ultrices mi tempus imperdiet.</p>
1943</li>
1944<li>
1945<p><code>imageExtent</code> Dignissim cras tincidunt lobortis feugiat vivamus at
1946<code>width</code>, <code>height</code> and <code>depth</code> augue eget arcu.</p>
1947</li>
1948</ul>
1949</div>
1950<div class="paragraph">
1951<p>Ultricies mi eget mauris pharetra. Ac turpis <a href="#VkBufferImageCopy2">VkBufferImageCopy2</a> egestas
1952maecenas pharetra convallis posuere morbi leo urna. Cras sed felis eget velit
1953aliquet. Sit amet mauris commodo quis imperdiet. Malesuada pellentesque elit
1954eget gravida cum sociis natoque. Faucibus pulvinar elementum integer enim neque
1955volutpat ac tincidunt vitae</p>
1956</div>
1957<div class="sidebarblock">
1958<div class="content">
1959<div class="title">Valid Usage</div>
1960<div class="ulist">
1961<ul>
1962<li>
1963<p><a id="VUID-VkMemoryToImageCopyEXT-pHostPointer-99061" href="#VUID-VkMemoryToImageCopyEXT-pHostPointer-99061"></a> <span class="vuid">VUID-VkMemoryToImageCopyEXT-pHostPointer-99061</span><br>
1964
1965<code>pHostPointer</code> <strong class="purple">must</strong> Nisl condimentum id venenatis a condimentum vitae</p>
1966</li>
1967</ul>
1968</div>
1969<div class="ulist">
1970<ul>
1971<li>
1972<p><a id="VUID-VkMemoryToImageCopyEXT-memoryRowLength-99101" href="#VUID-VkMemoryToImageCopyEXT-memoryRowLength-99101"></a> <span class="vuid">VUID-VkMemoryToImageCopyEXT-memoryRowLength-99101</span><br>
1973
1974<code>memoryRowLength</code> <strong class="purple">must</strong> be <code>0</code>, or greater than or equal to the
1975<code>width</code> member of <code>imageExtent</code></p>
1976</li>
1977<li>
1978<p><a id="VUID-VkMemoryToImageCopyEXT-memoryImageHeight-99102" href="#VUID-VkMemoryToImageCopyEXT-memoryImageHeight-99102"></a> <span class="vuid">VUID-VkMemoryToImageCopyEXT-memoryImageHeight-99102</span><br>
1979
1980<code>memoryImageHeight</code> <strong class="purple">must</strong> be <code>0</code>, or greater than or equal to the
1981<code>height</code> member of <code>imageExtent</code></p>
1982</li>
1983<li>
1984<p><a id="VUID-VkMemoryToImageCopyEXT-aspectMask-99103" href="#VUID-VkMemoryToImageCopyEXT-aspectMask-99103"></a> <span class="vuid">VUID-VkMemoryToImageCopyEXT-aspectMask-99103</span><br>
1985
1986The <code>aspectMask</code> member of <code>imageSubresource</code> <strong class="purple">must</strong> only have a
1987single bit set</p>
1988</li>
1989<li>
1990<p><a id="VUID-VkMemoryToImageCopyEXT-imageExtent-96659" href="#VUID-VkMemoryToImageCopyEXT-imageExtent-96659"></a> <span class="vuid">VUID-VkMemoryToImageCopyEXT-imageExtent-96659</span><br>
1991
1992<code>imageExtent.width</code> <strong class="purple">must</strong> not be 0</p>
1993</li>
1994<li>
1995<p><a id="VUID-VkMemoryToImageCopyEXT-imageExtent-96660" href="#VUID-VkMemoryToImageCopyEXT-imageExtent-96660"></a> <span class="vuid">VUID-VkMemoryToImageCopyEXT-imageExtent-96660</span><br>
1996
1997<code>imageExtent.height</code> <strong class="purple">must</strong> not be 0</p>
1998</li>
1999<li>
2000<p><a id="VUID-VkMemoryToImageCopyEXT-imageExtent-96661" href="#VUID-VkMemoryToImageCopyEXT-imageExtent-96661"></a> <span class="vuid">VUID-VkMemoryToImageCopyEXT-imageExtent-96661</span><br>
2001
2002<code>imageExtent.depth</code> <strong class="purple">must</strong> not be 0</p>
2003</li>
2004</ul>
2005</div>
2006</div>
2007</div>
2008<div class="sidebarblock">
2009<div class="content">
2010<div class="title">Valid Usage (Implicit)</div>
2011<div class="ulist">
2012<ul>
2013<li>
2014<p><a id="VUID-VkMemoryToImageCopyEXT-sType-sType" href="#VUID-VkMemoryToImageCopyEXT-sType-sType"></a> <span class="vuid">VUID-VkMemoryToImageCopyEXT-sType-sType</span><br>
2015 <code>sType</code> <strong class="purple">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT</code></p>
2016</li>
2017<li>
2018<p><a id="VUID-VkMemoryToImageCopyEXT-pNext-pNext" href="#VUID-VkMemoryToImageCopyEXT-pNext-pNext"></a> <span class="vuid">VUID-VkMemoryToImageCopyEXT-pNext-pNext</span><br>
2019 <code>pNext</code> <strong class="purple">must</strong> be <code>NULL</code></p>
2020</li>
2021<li>
2022<p><a id="VUID-VkMemoryToImageCopyEXT-pHostPointer-parameter" href="#VUID-VkMemoryToImageCopyEXT-pHostPointer-parameter"></a> <span class="vuid">VUID-VkMemoryToImageCopyEXT-pHostPointer-parameter</span><br>
2023 <code>pHostPointer</code> <strong class="purple">must</strong> be a pointer value</p>
2024</li>
2025<li>
2026<p><a id="VUID-VkMemoryToImageCopyEXT-imageSubresource-parameter" href="#VUID-VkMemoryToImageCopyEXT-imageSubresource-parameter"></a> <span class="vuid">VUID-VkMemoryToImageCopyEXT-imageSubresource-parameter</span><br>
2027 <code>imageSubresource</code> <strong class="purple">must</strong> be a valid <a href="#VkImageSubresourceLayers">VkImageSubresourceLayers</a> structure</p>
2028</li>
2029</ul>
2030</div>
2031</div>
2032</div>
2033</div>
2034</div>
2035</div>
2036</div>
2037<div class="sect1">
2038<h2 id="extensions"><a class="anchor" href="#extensions"></a>Layers &amp; Extensions (Informative)</h2>
2039<div class="sectionbody">
2040<div class="paragraph">
2041<p>Cursus euismod quis viverra nibh cras pulvinar.</p>
2042</div>
2043<div class="sect2">
2044<h3 id="_extension_dependencies"><a class="anchor" href="#_extension_dependencies"></a>Extension Dependencies</h3>
2045<div class="paragraph">
2046<p>Id diam vel quam elementum</p>
2047</div>
2048<div class="sect3">
2049<h4 id="VK_EXT_host_image_copy"><a class="anchor" href="#VK_EXT_host_image_copy"></a>VK_EXT_host_image_copy</h4>
2050<div class="dlist">
2051<dl>
2052<dt class="hdlist1"><strong>Name String</strong></dt>
2053<dd>
2054<p><code>VK_EXT_host_image_copy</code></p>
2055</dd>
2056<dt class="hdlist1"><strong>Extension Type</strong></dt>
2057<dd>
2058<p>Device extension</p>
2059</dd>
2060<dt class="hdlist1"><strong>Registered Extension Number</strong></dt>
2061<dd>
2062<p>271</p>
2063</dd>
2064<dt class="hdlist1"><strong>Revision</strong></dt>
2065<dd>
2066<p>1</p>
2067</dd>
2068<dt class="hdlist1"><strong>Ratification Status</strong></dt>
2069<dd>
2070<p>Ratified</p>
2071</dd>
2072<dt class="hdlist1"><strong>Extension and Version Dependencies</strong></dt>
2073<dd>
2074<div class="openblock">
2075<div class="content">
2076<div class="paragraph">
2077<p><a href="#VK_KHR_get_physical_device_properties2">VK_KHR_get_physical_device_properties2</a><br>
2078and<br>
2079<a href="#VK_KHR_copy_commands2">VK_KHR_copy_commands2</a><br>
2080and<br>
2081<a href="#VK_KHR_format_feature_flags2">VK_KHR_format_feature_flags2</a><br></p>
2082</div>
2083</div>
2084</div>
2085</dd>
2086<dt class="hdlist1"><strong>Contact</strong></dt>
2087<dd>
2088<div class="ulist">
2089<ul>
2090<li>
2091<p>Shahbaz Youssefi <a href="https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_host_image_copy] @syoussefi%0A*Here describe the issue or question you have about the VK_EXT_host_image_copy extension*" target="_blank" rel="nofollow noopener"><span class="icon black"><i class="fa fa-github"></i></span>syoussefi</a></p>
2092</li>
2093</ul>
2094</div>
2095</dd>
2096<dt class="hdlist1"><strong>Extension Proposal</strong></dt>
2097<dd>
2098<p><a href="https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_host_image_copy.adoc">VK_EXT_host_image_copy</a></p>
2099</dd>
2100</dl>
2101</div>
2102</div>
2103<div class="sect3">
2104<h4 id="_other_extension_metadata"><a class="anchor" href="#_other_extension_metadata"></a>Other Extension Metadata</h4>
2105<div class="dlist">
2106<dl>
2107<dt class="hdlist1"><strong>Last Modified Date</strong></dt>
2108<dd>
2109<p>2186-02-28</p>
2110</dd>
2111<dt class="hdlist1"><strong>Contributors</strong></dt>
2112<dd>
2113<div class="ulist">
2114<ul>
2115<li>
2116<p>Zabhash Ifessouy, Elgoog</p>
2117</li>
2118<li>
2119<p>Htiaf Dnartske, Aroballoc</p>
2120</li>
2121<li>
2122<p>Sreip Lleinad, AIDIVN</p>
2123</li>
2124</ul>
2125</div>
2126</dd>
2127</dl>
2128</div>
2129</div>
2130<div class="sect3">
2131<h4 id="_description"><a class="anchor" href="#_description"></a>Description</h4>
2132<div class="paragraph">
2133<p>Sed risus pretium quam vulputate dignissim suspendisse in est ante. Mauris
2134commodo quis imperdiet massa tincidunt nunc pulvinar. Odio morbi quis commodo
2135odio aenean sed. Quam adipiscing vitae proin sagittis nisl rhoncus. Vel
2136facilisis volutpat est velit egestas dui. Consequat id porta nibh venenatis
2137cras sed felis. Ac tortor dignissim convallis aenean et tortor. Amet porttitor
2138eget dolor morbi non arcu. Consequat interdum varius sit amet. Tempus egestas
2139sed sed risus pretium quam. Gravida in fermentum et sollicitudin ac orci
2140phasellus egestas. Nulla facilisi etiam dignissim diam quis enim lobortis
2141scelerisque fermentum. Tempus quam pellentesque nec nam aliquam. A pellentesque
2142sit amet porttitor eget. Viverra justo nec ultrices dui sapien eget mi. Nullam
2143vehicula ipsum a arcu. Amet volutpat consequat mauris nunc congue nisi.
2144Tincidunt arcu non sodales neque.</p>
2145</div>
2146</div>
2147<div class="sect3">
2148<h4 id="_new_commands"><a class="anchor" href="#_new_commands"></a>New Commands</h4>
2149<div class="ulist">
2150<ul>
2151<li>
2152<p><a href="#vkCopyImageToImageEXT">vkCopyImageToImageEXT</a></p>
2153</li>
2154<li>
2155<p><a href="#vkCopyImageToMemoryEXT">vkCopyImageToMemoryEXT</a></p>
2156</li>
2157<li>
2158<p><a href="#vkCopyMemoryToImageEXT">vkCopyMemoryToImageEXT</a></p>
2159</li>
2160<li>
2161<p><a href="#vkGetImageSubresourceLayout2EXT">vkGetImageSubresourceLayout2EXT</a></p>
2162</li>
2163<li>
2164<p><a href="#vkTransitionImageLayoutEXT">vkTransitionImageLayoutEXT</a></p>
2165</li>
2166</ul>
2167</div>
2168</div>
2169<div class="sect3">
2170<h4 id="_new_structures"><a class="anchor" href="#_new_structures"></a>New Structures</h4>
2171<div class="ulist">
2172<ul>
2173<li>
2174<p><a href="#VkCopyImageToImageInfoEXT">VkCopyImageToImageInfoEXT</a></p>
2175</li>
2176<li>
2177<p><a href="#VkCopyImageToMemoryInfoEXT">VkCopyImageToMemoryInfoEXT</a></p>
2178</li>
2179<li>
2180<p><a href="#VkCopyMemoryToImageInfoEXT">VkCopyMemoryToImageInfoEXT</a></p>
2181</li>
2182<li>
2183<p><a href="#VkHostImageLayoutTransitionInfoEXT">VkHostImageLayoutTransitionInfoEXT</a></p>
2184</li>
2185<li>
2186<p><a href="#VkImageSubresource2EXT">VkImageSubresource2EXT</a></p>
2187</li>
2188<li>
2189<p><a href="#VkImageToMemoryCopyEXT">VkImageToMemoryCopyEXT</a></p>
2190</li>
2191<li>
2192<p><a href="#VkMemoryToImageCopyEXT">VkMemoryToImageCopyEXT</a></p>
2193</li>
2194<li>
2195<p><a href="#VkSubresourceLayout2EXT">VkSubresourceLayout2EXT</a></p>
2196</li>
2197<li>
2198<p>Extending <a href="#VkImageFormatProperties2">VkImageFormatProperties2</a>:</p>
2199<div class="ulist">
2200<ul>
2201<li>
2202<p><a href="#VkHostImageCopyDevicePerformanceQueryEXT">VkHostImageCopyDevicePerformanceQueryEXT</a></p>
2203</li>
2204</ul>
2205</div>
2206</li>
2207<li>
2208<p>Extending <a href="#VkPhysicalDeviceFeatures2">VkPhysicalDeviceFeatures2</a>, <a href="#VkDeviceCreateInfo">VkDeviceCreateInfo</a>:</p>
2209<div class="ulist">
2210<ul>
2211<li>
2212<p><a href="#VkPhysicalDeviceHostImageCopyFeaturesEXT">VkPhysicalDeviceHostImageCopyFeaturesEXT</a></p>
2213</li>
2214</ul>
2215</div>
2216</li>
2217<li>
2218<p>Extending <a href="#VkPhysicalDeviceProperties2">VkPhysicalDeviceProperties2</a>:</p>
2219<div class="ulist">
2220<ul>
2221<li>
2222<p><a href="#VkPhysicalDeviceHostImageCopyPropertiesEXT">VkPhysicalDeviceHostImageCopyPropertiesEXT</a></p>
2223</li>
2224</ul>
2225</div>
2226</li>
2227<li>
2228<p>Extending <a href="#VkSubresourceLayout2KHR">VkSubresourceLayout2KHR</a>:</p>
2229<div class="ulist">
2230<ul>
2231<li>
2232<p><a href="#VkSubresourceHostMemcpySizeEXT">VkSubresourceHostMemcpySizeEXT</a></p>
2233</li>
2234</ul>
2235</div>
2236</li>
2237</ul>
2238</div>
2239</div>
2240<div class="sect3">
2241<h4 id="_new_enums"><a class="anchor" href="#_new_enums"></a>New Enums</h4>
2242<div class="ulist">
2243<ul>
2244<li>
2245<p><a href="#VkHostImageCopyFlagBitsEXT">VkHostImageCopyFlagBitsEXT</a></p>
2246</li>
2247</ul>
2248</div>
2249</div>
2250<div class="sect3">
2251<h4 id="_new_bitmasks"><a class="anchor" href="#_new_bitmasks"></a>New Bitmasks</h4>
2252<div class="ulist">
2253<ul>
2254<li>
2255<p><a href="#VkHostImageCopyFlagsEXT">VkHostImageCopyFlagsEXT</a></p>
2256</li>
2257</ul>
2258</div>
2259</div>
2260<div class="sect3">
2261<h4 id="_new_enum_constants"><a class="anchor" href="#_new_enum_constants"></a>New Enum Constants</h4>
2262<div class="ulist">
2263<ul>
2264<li>
2265<p><code>VK_EXT_HOST_IMAGE_COPY_EXTENSION_NAME</code></p>
2266</li>
2267<li>
2268<p><code>VK_EXT_HOST_IMAGE_COPY_SPEC_VERSION</code></p>
2269</li>
2270<li>
2271<p>Extending <a href="#VkFormatFeatureFlagBits2">VkFormatFeatureFlagBits2</a>:</p>
2272<div class="ulist">
2273<ul>
2274<li>
2275<p><code>VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT</code></p>
2276</li>
2277</ul>
2278</div>
2279</li>
2280<li>
2281<p>Extending <a href="#VkImageUsageFlagBits">VkImageUsageFlagBits</a>:</p>
2282<div class="ulist">
2283<ul>
2284<li>
2285<p><code>VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT</code></p>
2286</li>
2287</ul>
2288</div>
2289</li>
2290<li>
2291<p>Extending <a href="#VkStructureType">VkStructureType</a>:</p>
2292<div class="ulist">
2293<ul>
2294<li>
2295<p><code>VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT</code></p>
2296</li>
2297<li>
2298<p><code>VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT</code></p>
2299</li>
2300<li>
2301<p><code>VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT</code></p>
2302</li>
2303<li>
2304<p><code>VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT</code></p>
2305</li>
2306<li>
2307<p><code>VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT</code></p>
2308</li>
2309<li>
2310<p><code>VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT</code></p>
2311</li>
2312<li>
2313<p><code>VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT</code></p>
2314</li>
2315<li>
2316<p><code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT</code></p>
2317</li>
2318<li>
2319<p><code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT</code></p>
2320</li>
2321<li>
2322<p><code>VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT</code></p>
2323</li>
2324</ul>
2325</div>
2326</li>
2327</ul>
2328</div>
2329</div>
2330<div class="sect3">
2331<h4 id="_issues"><a class="anchor" href="#_issues"></a>Issues</h4>
2332<div class="paragraph">
2333<p>1) Natoque penatibus et magnis dis parturient montes nascetur.</p>
2334</div>
2335<div class="paragraph">
2336<p><strong>RESOLVED</strong>: Iaculis eu non diam phasellus vestibulum. Consequat nisl vel
2337pretium lectus quam. Euismod in pellentesque massa placerat duis ultricies
2338lacus sed turpis. Ullamcorper eget nulla facilisi etiam dignissim diam quis
2339enim. Id velit ut tortor pretium viverra suspendisse potenti.</p>
2340</div>
2341<div class="paragraph">
2342<p>2) Faucibus in ornare quam viverra orci sagittis eu volutpat?</p>
2343</div>
2344<div class="paragraph">
2345<p><strong>RESOLVED</strong>: Eu facilisis sed odio morbi quis commodo. Pharetra magna ac
2346placerat vestibulum lectus mauris. Ac felis donec et odio pellentesque diam
2347volutpat commodo sed.</p>
2348</div>
2349</div>
2350<div class="sect3">
2351<h4 id="_version_history"><a class="anchor" href="#_version_history"></a>Version History</h4>
2352<div class="ulist">
2353<ul>
2354<li>
2355<p>Revision 0, 2173-05-30 (Htiaf Dnartske)</p>
2356<div class="ulist">
2357<ul>
2358<li>
2359<p>Malesuada pellentesque elit eget gravida cum sociis natoque</p>
2360</li>
2361</ul>
2362</div>
2363</li>
2364<li>
2365<p>Revision 1, 2185-12-01 (Zabhash Ifessouy)</p>
2366<div class="ulist">
2367<ul>
2368<li>
2369<p>Id leo in vitae turpis massa sed elementum</p>
2370</li>
2371</ul>
2372</div>
2373</li>
2374</ul>
2375</div>
2376</div>
2377</div>
2378</div>
2379</div>
2380</div>
2381<div id="footer">
2382<div id="footer-text">
2383Version 1.2.3<br>
2384</div>
2385</div>
2386
2387
2388</body>
2389</html>