• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 all registered extensions)</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 all registered extensions)</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-2023 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="vkCmdCopyBufferToImage2" class="listingblock">
1209<div class="content">
1210<pre class="rouge highlight"><code data-lang="c++"><span class="c1">// Provided by VK_VERSION_1_3</span>
1211<span class="kt">void</span> <span class="nf">vkCmdCopyBufferToImage2</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="paragraph">
1217<p>or the equivalent command</p>
1218</div>
1219<div id="vkCmdCopyBufferToImage2KHR" class="listingblock">
1220<div class="content">
1221<pre class="rouge highlight"><code data-lang="c++"><span class="c1">// Provided by VK_KHR_copy_commands2</span>
1222<span class="kt">void</span> <span class="nf">vkCmdCopyBufferToImage2KHR</span><span class="p">(</span>
1223    <span class="n">VkCommandBuffer</span>                             <span class="n">commandBuffer</span><span class="p">,</span>
1224    <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>
1225</div>
1226</div>
1227<div class="ulist">
1228<ul>
1229<li>
1230<p><code>commandBuffer</code> Mauris commodo quis imperdiet massa tincidunt nunc pulvinar.</p>
1231</li>
1232<li>
1233<p><code>pCopyBufferToImageInfo</code> Odio morbi quis commodo odio aenean sed <a href="#VkCopyBufferToImageInfo2">VkCopyBufferToImageInfo2</a>.</p>
1234</li>
1235</ul>
1236</div>
1237<div class="paragraph">
1238<p>Ac tortor dignissim convallis aenean et tortor. Amet porttitor eget dolor morbi
1239non arcu. Consequat interdum varius sit amet. Tempus egestas sed sed risus
1240pretium quam. Gravida in fermentum et sollicitudin ac orci phasellus egestas.
1241Nulla facilisi etiam dignissim diam quis enim lobortis scelerisque fermentum.
1242Tempus quam pellentesque nec nam aliquam. A pellentesque sit amet porttitor
1243eget. Viverra justo nec ultrices dui sapien eget mi. Nullam vehicula ipsum a
1244arcu. Amet volutpat consequat mauris nunc congue nisi. Tincidunt arcu non
1245sodales neque.</p>
1246</div>
1247<div class="sidebarblock">
1248<div class="content">
1249<div class="title">Valid Usage</div>
1250<div class="ulist">
1251<ul>
1252<li>
1253<p><a id="VUID-vkCmdCopyBufferToImage2-commandBuffer-91828" href="#VUID-vkCmdCopyBufferToImage2-commandBuffer-91828"></a> <span class="vuid">VUID-vkCmdCopyBufferToImage2-commandBuffer-91828</span><br>
1254
1255If <code>commandBuffer</code> is an unprotected command buffer and
1256<a href="#limits-protectedNoFault"><code>protectedNoFault</code></a> is not supported,
1257<code>srcBuffer</code> <strong class="purple">must</strong> not be a protected buffer</p>
1258</li>
1259<li>
1260<p><a id="VUID-vkCmdCopyBufferToImage2-commandBuffer-91829" href="#VUID-vkCmdCopyBufferToImage2-commandBuffer-91829"></a> <span class="vuid">VUID-vkCmdCopyBufferToImage2-commandBuffer-91829</span><br>
1261
1262If <code>commandBuffer</code> is an unprotected command buffer and
1263<a href="#limits-protectedNoFault"><code>protectedNoFault</code></a> is not supported,
1264<code>dstImage</code> <strong class="purple">must</strong> not be a protected image</p>
1265</li>
1266<li>
1267<p><a id="VUID-vkCmdCopyBufferToImage2-commandBuffer-91830" href="#VUID-vkCmdCopyBufferToImage2-commandBuffer-91830"></a> <span class="vuid">VUID-vkCmdCopyBufferToImage2-commandBuffer-91830</span><br>
1268
1269If <code>commandBuffer</code> is a protected command buffer and
1270<a href="#limits-protectedNoFault"><code>protectedNoFault</code></a> is not supported,
1271<code>dstImage</code> <strong class="purple">must</strong> not be an unprotected image</p>
1272</li>
1273<li>
1274<p><a id="VUID-vkCmdCopyBufferToImage2-commandBuffer-97737" href="#VUID-vkCmdCopyBufferToImage2-commandBuffer-97737"></a> <span class="vuid">VUID-vkCmdCopyBufferToImage2-commandBuffer-97737</span><br>
1275
1276If the queue family used to create the <a href="#VkCommandPool">VkCommandPool</a> which
1277<code>commandBuffer</code> was allocated from does not support
1278<code>VK_QUEUE_GRAPHICS_BIT</code> or <code>VK_QUEUE_COMPUTE_BIT</code>, the
1279<code>bufferOffset</code> member of any element of <code>pCopyBufferToImageInfo-&gt;pRegions</code> <strong class="purple">must</strong> be a
1280multiple of <code>4</code></p>
1281</li>
1282<li>
1283<p><a id="VUID-vkCmdCopyBufferToImage2-imageOffset-97738" href="#VUID-vkCmdCopyBufferToImage2-imageOffset-97738"></a> <span class="vuid">VUID-vkCmdCopyBufferToImage2-imageOffset-97738</span><br>
1284
1285The <code>imageOffset</code> and <code>imageExtent</code> members of each element of
1286<code>pCopyBufferToImageInfo-&gt;pRegions</code> <strong class="purple">must</strong> respect the image transfer granularity requirements
1287of <code>commandBuffer</code>&#8217;s command pool&#8217;s queue family, as described in
1288<a href="#VkQueueFamilyProperties">VkQueueFamilyProperties</a></p>
1289</li>
1290<li>
1291<p><a id="VUID-vkCmdCopyBufferToImage2-commandBuffer-97739" href="#VUID-vkCmdCopyBufferToImage2-commandBuffer-97739"></a> <span class="vuid">VUID-vkCmdCopyBufferToImage2-commandBuffer-97739</span><br>
1292
1293If the queue family used to create the <a href="#VkCommandPool">VkCommandPool</a> which
1294<code>commandBuffer</code> was allocated from does not support
1295<code>VK_QUEUE_GRAPHICS_BIT</code>, for each element of <code>pCopyBufferToImageInfo-&gt;pRegions</code>, the
1296<code>aspectMask</code> member of <code>imageSubresource</code> <strong class="purple">must</strong> not be
1297<code>VK_IMAGE_ASPECT_DEPTH_BIT</code> or <code>VK_IMAGE_ASPECT_STENCIL_BIT</code></p>
1298</li>
1299</ul>
1300</div>
1301</div>
1302</div>
1303<div class="sidebarblock">
1304<div class="content">
1305<div class="title">Valid Usage (Implicit)</div>
1306<div class="ulist">
1307<ul>
1308<li>
1309<p><a id="VUID-vkCmdCopyBufferToImage2-commandBuffer-parameter" href="#VUID-vkCmdCopyBufferToImage2-commandBuffer-parameter"></a> <span class="vuid">VUID-vkCmdCopyBufferToImage2-commandBuffer-parameter</span><br>
1310 <code>commandBuffer</code> <strong class="purple">must</strong> be a valid <a href="#VkCommandBuffer">VkCommandBuffer</a> handle</p>
1311</li>
1312<li>
1313<p><a id="VUID-vkCmdCopyBufferToImage2-pCopyBufferToImageInfo-parameter" href="#VUID-vkCmdCopyBufferToImage2-pCopyBufferToImageInfo-parameter"></a> <span class="vuid">VUID-vkCmdCopyBufferToImage2-pCopyBufferToImageInfo-parameter</span><br>
1314 <code>pCopyBufferToImageInfo</code> <strong class="purple">must</strong> be a valid pointer to a valid <a href="#VkCopyBufferToImageInfo2">VkCopyBufferToImageInfo2</a> structure</p>
1315</li>
1316<li>
1317<p><a id="VUID-vkCmdCopyBufferToImage2-commandBuffer-recording" href="#VUID-vkCmdCopyBufferToImage2-commandBuffer-recording"></a> <span class="vuid">VUID-vkCmdCopyBufferToImage2-commandBuffer-recording</span><br>
1318 <code>commandBuffer</code> <strong class="purple">must</strong> be in the <a href="#commandbuffers-lifecycle">recording state</a></p>
1319</li>
1320<li>
1321<p><a id="VUID-vkCmdCopyBufferToImage2-commandBuffer-cmdpool" href="#VUID-vkCmdCopyBufferToImage2-commandBuffer-cmdpool"></a> <span class="vuid">VUID-vkCmdCopyBufferToImage2-commandBuffer-cmdpool</span><br>
1322 The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class="purple">must</strong> support transfer, graphics, or compute operations</p>
1323</li>
1324<li>
1325<p><a id="VUID-vkCmdCopyBufferToImage2-renderpass" href="#VUID-vkCmdCopyBufferToImage2-renderpass"></a> <span class="vuid">VUID-vkCmdCopyBufferToImage2-renderpass</span><br>
1326 This command <strong class="purple">must</strong> only be called outside of a render pass instance</p>
1327</li>
1328<li>
1329<p><a id="VUID-vkCmdCopyBufferToImage2-videocoding" href="#VUID-vkCmdCopyBufferToImage2-videocoding"></a> <span class="vuid">VUID-vkCmdCopyBufferToImage2-videocoding</span><br>
1330 This command <strong class="purple">must</strong> only be called outside of a video coding scope</p>
1331</li>
1332</ul>
1333</div>
1334</div>
1335</div>
1336<div class="sidebarblock">
1337<div class="content">
1338<div class="title">Host Synchronization</div>
1339<div class="ulist">
1340<ul>
1341<li>
1342<p>Host access to <code>commandBuffer</code> <strong class="purple">must</strong> be externally synchronized</p>
1343</li>
1344<li>
1345<p>Host access to the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class="purple">must</strong> be externally synchronized</p>
1346</li>
1347</ul>
1348</div>
1349</div>
1350</div>
1351<div class="sidebarblock">
1352<div class="content">
1353<div class="title">Command Properties</div>
1354<table class="tableblock frame-all grid-all stretch">
1355<colgroup>
1356<col style="width: 20%;">
1357<col style="width: 20%;">
1358<col style="width: 20%;">
1359<col style="width: 20%;">
1360<col style="width: 20%;">
1361</colgroup>
1362<thead>
1363<tr>
1364<th class="tableblock halign-left valign-top"><a href="#VkCommandBufferLevel">Command Buffer Levels</a></th>
1365<th class="tableblock halign-left valign-top"><a href="#vkCmdBeginRenderPass">Render Pass Scope</a></th>
1366<th class="tableblock halign-left valign-top"><a href="#vkCmdBeginVideoCodingKHR">Video Coding Scope</a></th>
1367<th class="tableblock halign-left valign-top"><a href="#VkQueueFlagBits">Supported Queue Types</a></th>
1368<th class="tableblock halign-left valign-top"><a href="#fundamentals-queueoperation-command-types">Command Type</a></th>
1369</tr>
1370</thead>
1371<tbody>
1372<tr>
1373<td class="tableblock halign-left valign-top"><p class="tableblock">Primary<br>
1374Secondary</p></td>
1375<td class="tableblock halign-left valign-top"><p class="tableblock">Outside</p></td>
1376<td class="tableblock halign-left valign-top"><p class="tableblock">Outside</p></td>
1377<td class="tableblock halign-left valign-top"><p class="tableblock">Transfer<br>
1378Graphics<br>
1379Compute</p></td>
1380<td class="tableblock halign-left valign-top"><p class="tableblock">Action</p></td>
1381</tr>
1382</tbody>
1383</table>
1384</div>
1385</div>
1386</div>
1387</div>
1388<div class="openblock">
1389<div class="content">
1390<div class="paragraph">
1391<p>Sed risus pretium quam vulputate dignissim suspendisse in est ante <code>VkCopyBufferToImageInfo2</code>:</p>
1392</div>
1393<div id="VkCopyBufferToImageInfo2" class="listingblock">
1394<div class="content">
1395<pre class="rouge highlight"><code data-lang="c++"><span class="c1">// Provided by VK_VERSION_1_3</span>
1396<span class="k">typedef</span> <span class="k">struct</span> <span class="nc">VkCopyBufferToImageInfo2</span> <span class="p">{</span>
1397    <span class="n">VkStructureType</span>              <span class="n">sType</span><span class="p">;</span>
1398    <span class="k">const</span> <span class="kt">void</span><span class="o">*</span>                  <span class="n">pNext</span><span class="p">;</span>
1399    <span class="n">VkBuffer</span>                     <span class="n">srcBuffer</span><span class="p">;</span>
1400    <span class="n">VkImage</span>                      <span class="n">dstImage</span><span class="p">;</span>
1401    <span class="n">VkImageLayout</span>                <span class="n">dstImageLayout</span><span class="p">;</span>
1402    <span class="kt">uint32_t</span>                     <span class="n">regionCount</span><span class="p">;</span>
1403    <span class="k">const</span> <span class="n">VkBufferImageCopy2</span><span class="o">*</span>    <span class="n">pRegions</span><span class="p">;</span>
1404<span class="p">}</span> <span class="n">VkCopyBufferToImageInfo2</span><span class="p">;</span></code></pre>
1405</div>
1406</div>
1407<div class="paragraph">
1408<p>or the equivalent</p>
1409</div>
1410<div id="VkCopyBufferToImageInfo2KHR" class="listingblock">
1411<div class="content">
1412<pre class="rouge highlight"><code data-lang="c++"><span class="c1">// Provided by VK_KHR_copy_commands2</span>
1413<span class="k">typedef</span> <span class="n">VkCopyBufferToImageInfo2</span> <span class="n">VkCopyBufferToImageInfo2KHR</span><span class="p">;</span></code></pre>
1414</div>
1415</div>
1416<div class="ulist">
1417<ul>
1418<li>
1419<p><code>sType</code> Natoque penatibus et magnis dis parturient montes nascetur.</p>
1420</li>
1421<li>
1422<p><code>pNext</code> Iaculis eu non diam phasellus vestibulum.</p>
1423</li>
1424<li>
1425<p><code>srcBuffer</code> Consequat nisl vel pretium lectus quam.</p>
1426</li>
1427<li>
1428<p><code>dstImage</code> Euismod in pellentesque massa placerat duis ultricies lacus sed turpis.</p>
1429</li>
1430<li>
1431<p><code>dstImageLayout</code> Ullamcorper eget nulla facilisi etiam dignissim diam quis enim.</p>
1432</li>
1433<li>
1434<p><code>regionCount</code> Vel facilisis volutpat est velit egestas dui.</p>
1435</li>
1436<li>
1437<p><code>pRegions</code> Consequat id porta nibh venenatis cras sed felis.</p>
1438</li>
1439</ul>
1440</div>
1441<div class="sidebarblock">
1442<div class="content">
1443<div class="title">Valid Usage</div>
1444<div class="ulist">
1445<ul>
1446<li>
1447<p><a id="VUID-VkCopyBufferToImageInfo2-pRegions-94565" href="#VUID-VkCopyBufferToImageInfo2-pRegions-94565"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-pRegions-94565</span><br>
1448
1449Id velit ut tortor pretium viverra suspendisse potenti <code>pRegions</code>
1450faucibus in ornare quam viverra orci sagittis eu volutpat
1451<code>pNext</code> chain
1452<code>imageSubresource</code> eu facilisis sed <strong class="purple">must</strong> odio morbi quis commodo
1453<code>dstImage</code></p>
1454</li>
1455<li>
1456<p><a id="VUID-VkCopyBufferToImageInfo2KHR-pRegions-94554" href="#VUID-VkCopyBufferToImageInfo2KHR-pRegions-94554"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2KHR-pRegions-94554</span><br>
1457
1458Pharetra magna ac placerat vestibulum lectus mauris <code>pRegions</code>
1459ac felis donec et odio pellentesque diam volutpat commodo sed <code>pNext</code> chain
1460<strong class="purple">must</strong> malesuada pellentesque elit <a href="#lorem-subchapter">Lorem Subchapter</a> eget gravida cum sociis natoque
1461<code>dstImage</code></p>
1462</li>
1463</ul>
1464</div>
1465<div class="ulist">
1466<ul>
1467<li>
1468<p><a id="VUID-VkCopyBufferToImageInfo2-dstImage-97966" href="#VUID-VkCopyBufferToImageInfo2-dstImage-97966"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-dstImage-97966</span><br>
1469
1470If <code>dstImage</code> is non-sparse then the image or the specified
1471<em>disjoint</em> plane <strong class="purple">must</strong> be bound completely and contiguously to a single
1472<code>VkDeviceMemory</code> object</p>
1473</li>
1474<li>
1475<p><a id="VUID-VkCopyBufferToImageInfo2-imageSubresource-97967" href="#VUID-VkCopyBufferToImageInfo2-imageSubresource-97967"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-imageSubresource-97967</span><br>
1476
1477The <code>imageSubresource.mipLevel</code> member of each element of
1478<code>pRegions</code> <strong class="purple">must</strong> be less than the <code>mipLevels</code> specified in
1479<a href="#VkImageCreateInfo">VkImageCreateInfo</a> when <code>dstImage</code> was created</p>
1480</li>
1481<li>
1482<p><a id="VUID-VkCopyBufferToImageInfo2-imageSubresource-97968" href="#VUID-VkCopyBufferToImageInfo2-imageSubresource-97968"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-imageSubresource-97968</span><br>
1483
1484The <span class="eq"><code>imageSubresource.baseArrayLayer</code> +
1485<code>imageSubresource.layerCount</code></span> of each element of <code>pRegions</code>
1486, if <code>imageSubresource.layerCount</code> is not
1487<code>VK_REMAINING_ARRAY_LAYERS</code> and <a href="#features-maintenance5"><code>maintenance5</code></a> is not enabled,
1488<strong class="purple">must</strong> be less than or equal to the <code>arrayLayers</code> specified in
1489<a href="#VkImageCreateInfo">VkImageCreateInfo</a> when <code>dstImage</code> was created</p>
1490</li>
1491<li>
1492<p><a id="VUID-VkCopyBufferToImageInfo2-dstImage-97969" href="#VUID-VkCopyBufferToImageInfo2-dstImage-97969"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-dstImage-97969</span><br>
1493
1494<code>dstImage</code> <strong class="purple">must</strong> not have been created with <code>flags</code>
1495containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code></p>
1496</li>
1497</ul>
1498</div>
1499<div class="ulist">
1500<ul>
1501<li>
1502<p><a id="VUID-VkCopyBufferToImageInfo2-bufferRowLength-99101" href="#VUID-VkCopyBufferToImageInfo2-bufferRowLength-99101"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-bufferRowLength-99101</span><br>
1503
1504<code>bufferRowLength</code> <strong class="purple">must</strong> be <code>0</code>, or greater than or equal to the
1505<code>width</code> member of <code>imageExtent</code></p>
1506</li>
1507<li>
1508<p><a id="VUID-VkCopyBufferToImageInfo2-bufferImageHeight-99102" href="#VUID-VkCopyBufferToImageInfo2-bufferImageHeight-99102"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-bufferImageHeight-99102</span><br>
1509
1510<code>bufferImageHeight</code> <strong class="purple">must</strong> be <code>0</code>, or greater than or equal to the
1511<code>height</code> member of <code>imageExtent</code></p>
1512</li>
1513<li>
1514<p><a id="VUID-VkCopyBufferToImageInfo2-aspectMask-99103" href="#VUID-VkCopyBufferToImageInfo2-aspectMask-99103"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-aspectMask-99103</span><br>
1515
1516The <code>aspectMask</code> member of <code>imageSubresource</code> <strong class="purple">must</strong> only have a
1517single bit set</p>
1518</li>
1519<li>
1520<p><a id="VUID-VkCopyBufferToImageInfo2-imageExtent-96659" href="#VUID-VkCopyBufferToImageInfo2-imageExtent-96659"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-imageExtent-96659</span><br>
1521
1522<code>imageExtent.width</code> <strong class="purple">must</strong> not be 0</p>
1523</li>
1524<li>
1525<p><a id="VUID-VkCopyBufferToImageInfo2-imageExtent-96660" href="#VUID-VkCopyBufferToImageInfo2-imageExtent-96660"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-imageExtent-96660</span><br>
1526
1527<code>imageExtent.height</code> <strong class="purple">must</strong> not be 0</p>
1528</li>
1529<li>
1530<p><a id="VUID-VkCopyBufferToImageInfo2-imageExtent-96661" href="#VUID-VkCopyBufferToImageInfo2-imageExtent-96661"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-imageExtent-96661</span><br>
1531
1532<code>imageExtent.depth</code> <strong class="purple">must</strong> not be 0</p>
1533</li>
1534<li>
1535<p><a id="VUID-VkCopyBufferToImageInfo2-pRegions-96223" href="#VUID-VkCopyBufferToImageInfo2-pRegions-96223"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-pRegions-96223</span><br>
1536
1537Id leo in vitae turpis massa sed elementum
1538<code>imageOffset.x</code> and <span class="eq">(<code>imageExtent.width</code> +
1539<code>imageOffset.x</code>)</span> <strong class="purple">must</strong> gravida dictum fusce ut placerat orci nulla
1540pellentesque dignissim enim <code>imageSubresource</code> of <code>dstImage</code></p>
1541</li>
1542</ul>
1543</div>
1544</div>
1545</div>
1546<div class="sidebarblock">
1547<div class="content">
1548<div class="title">Valid Usage (Implicit)</div>
1549<div class="ulist">
1550<ul>
1551<li>
1552<p><a id="VUID-VkCopyBufferToImageInfo2-sType-sType" href="#VUID-VkCopyBufferToImageInfo2-sType-sType"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-sType-sType</span><br>
1553 <code>sType</code> <strong class="purple">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2</code></p>
1554</li>
1555<li>
1556<p><a id="VUID-VkCopyBufferToImageInfo2-pNext-pNext" href="#VUID-VkCopyBufferToImageInfo2-pNext-pNext"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-pNext-pNext</span><br>
1557 <code>pNext</code> <strong class="purple">must</strong> be <code>NULL</code></p>
1558</li>
1559<li>
1560<p><a id="VUID-VkCopyBufferToImageInfo2-srcBuffer-parameter" href="#VUID-VkCopyBufferToImageInfo2-srcBuffer-parameter"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-srcBuffer-parameter</span><br>
1561 <code>srcBuffer</code> <strong class="purple">must</strong> be a valid <a href="#VkBuffer">VkBuffer</a> handle</p>
1562</li>
1563<li>
1564<p><a id="VUID-VkCopyBufferToImageInfo2-dstImage-parameter" href="#VUID-VkCopyBufferToImageInfo2-dstImage-parameter"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-dstImage-parameter</span><br>
1565 <code>dstImage</code> <strong class="purple">must</strong> be a valid <a href="#VkImage">VkImage</a> handle</p>
1566</li>
1567<li>
1568<p><a id="VUID-VkCopyBufferToImageInfo2-dstImageLayout-parameter" href="#VUID-VkCopyBufferToImageInfo2-dstImageLayout-parameter"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-dstImageLayout-parameter</span><br>
1569 <code>dstImageLayout</code> <strong class="purple">must</strong> be a valid <a href="#VkImageLayout">VkImageLayout</a> value</p>
1570</li>
1571<li>
1572<p><a id="VUID-VkCopyBufferToImageInfo2-pRegions-parameter" href="#VUID-VkCopyBufferToImageInfo2-pRegions-parameter"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-pRegions-parameter</span><br>
1573 <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>
1574</li>
1575<li>
1576<p><a id="VUID-VkCopyBufferToImageInfo2-regionCount-arraylength" href="#VUID-VkCopyBufferToImageInfo2-regionCount-arraylength"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-regionCount-arraylength</span><br>
1577 <code>regionCount</code> <strong class="purple">must</strong> be greater than <code>0</code></p>
1578</li>
1579<li>
1580<p><a id="VUID-VkCopyBufferToImageInfo2-commonparent" href="#VUID-VkCopyBufferToImageInfo2-commonparent"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-commonparent</span><br>
1581 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>
1582</li>
1583</ul>
1584</div>
1585</div>
1586</div>
1587</div>
1588</div>
1589<div class="openblock">
1590<div class="content">
1591<div class="paragraph">
1592<p>Gravida dictum fusce ut placerat orci nulla pellentesque dignissim enim <a href="#vkCmdCopyBufferToImage2">vkCmdCopyBufferToImage2</a>:</p>
1593</div>
1594<div id="VkBufferImageCopy2" class="listingblock">
1595<div class="content">
1596<pre class="rouge highlight"><code data-lang="c++"><span class="c1">// Provided by VK_VERSION_1_3</span>
1597<span class="k">typedef</span> <span class="k">struct</span> <span class="nc">VkBufferImageCopy2</span> <span class="p">{</span>
1598    <span class="n">VkStructureType</span>             <span class="n">sType</span><span class="p">;</span>
1599    <span class="k">const</span> <span class="kt">void</span><span class="o">*</span>                 <span class="n">pNext</span><span class="p">;</span>
1600    <span class="n">VkDeviceSize</span>                <span class="n">bufferOffset</span><span class="p">;</span>
1601    <span class="kt">uint32_t</span>                    <span class="n">bufferRowLength</span><span class="p">;</span>
1602    <span class="kt">uint32_t</span>                    <span class="n">bufferImageHeight</span><span class="p">;</span>
1603    <span class="n">VkImageSubresourceLayers</span>    <span class="n">imageSubresource</span><span class="p">;</span>
1604    <span class="n">VkOffset3D</span>                  <span class="n">imageOffset</span><span class="p">;</span>
1605    <span class="n">VkExtent3D</span>                  <span class="n">imageExtent</span><span class="p">;</span>
1606<span class="p">}</span> <span class="n">VkBufferImageCopy2</span><span class="p">;</span></code></pre>
1607</div>
1608</div>
1609<div class="paragraph">
1610<p>or the equivalent</p>
1611</div>
1612<div id="VkBufferImageCopy2KHR" class="listingblock">
1613<div class="content">
1614<pre class="rouge highlight"><code data-lang="c++"><span class="c1">// Provided by VK_KHR_copy_commands2</span>
1615<span class="k">typedef</span> <span class="n">VkBufferImageCopy2</span> <span class="n">VkBufferImageCopy2KHR</span><span class="p">;</span></code></pre>
1616</div>
1617</div>
1618<div class="ulist">
1619<ul>
1620<li>
1621<p><code>sType</code> Tristique senectus et netus et malesuada.</p>
1622</li>
1623<li>
1624<p><code>pNext</code> Tempor commodo ullamcorper a lacus vestibulum sed arcu.</p>
1625</li>
1626<li>
1627<p><code>bufferOffset</code> Tellus in metus vulputate eu scelerisque. Lectus sit amet est placerat in.</p>
1628</li>
1629<li>
1630<p><code>bufferRowLength</code> and <code>bufferImageHeight</code> Quam adipiscing vitae
1631proin sagittis. Mattis pellentesque id nibh tortor id aliquet lectus proin
1632nibh <code>imageExtent</code>.</p>
1633</li>
1634<li>
1635<p><code>imageSubresource</code> Sociis natoque penatibus et magnis dis parturient montes nascetur.</p>
1636</li>
1637<li>
1638<p><code>imageOffset</code> Lobortis mattis aliquam faucibus purus in massa tempor nec.</p>
1639</li>
1640<li>
1641<p><code>imageExtent</code> Ut ornare lectus sit amet est placerat in.</p>
1642</li>
1643</ul>
1644</div>
1645<div class="paragraph">
1646<p>Integer quis auctor elit sed vulputate mi sit amet mauris. Ultrices sagittis
1647orci a scelerisque purus semper eget duis.</p>
1648</div>
1649<div class="sidebarblock">
1650<div class="content">
1651<div class="title">Valid Usage</div>
1652<div class="ulist">
1653<ul>
1654<li>
1655<p><a id="VUID-VkBufferImageCopy2-bufferRowLength-99101" href="#VUID-VkBufferImageCopy2-bufferRowLength-99101"></a> <span class="vuid">VUID-VkBufferImageCopy2-bufferRowLength-99101</span><br>
1656
1657<code>bufferRowLength</code> <strong class="purple">must</strong> be <code>0</code>, or greater than or equal to the
1658<code>width</code> member of <code>imageExtent</code></p>
1659</li>
1660<li>
1661<p><a id="VUID-VkBufferImageCopy2-bufferImageHeight-99102" href="#VUID-VkBufferImageCopy2-bufferImageHeight-99102"></a> <span class="vuid">VUID-VkBufferImageCopy2-bufferImageHeight-99102</span><br>
1662
1663<code>bufferImageHeight</code> <strong class="purple">must</strong> be <code>0</code>, or greater than or equal to the
1664<code>height</code> member of <code>imageExtent</code></p>
1665</li>
1666<li>
1667<p><a id="VUID-VkBufferImageCopy2-aspectMask-99103" href="#VUID-VkBufferImageCopy2-aspectMask-99103"></a> <span class="vuid">VUID-VkBufferImageCopy2-aspectMask-99103</span><br>
1668
1669The <code>aspectMask</code> member of <code>imageSubresource</code> <strong class="purple">must</strong> only have a
1670single bit set</p>
1671</li>
1672<li>
1673<p><a id="VUID-VkBufferImageCopy2-imageExtent-96659" href="#VUID-VkBufferImageCopy2-imageExtent-96659"></a> <span class="vuid">VUID-VkBufferImageCopy2-imageExtent-96659</span><br>
1674
1675<code>imageExtent.width</code> <strong class="purple">must</strong> not be 0</p>
1676</li>
1677<li>
1678<p><a id="VUID-VkBufferImageCopy2-imageExtent-96660" href="#VUID-VkBufferImageCopy2-imageExtent-96660"></a> <span class="vuid">VUID-VkBufferImageCopy2-imageExtent-96660</span><br>
1679
1680<code>imageExtent.height</code> <strong class="purple">must</strong> not be 0</p>
1681</li>
1682<li>
1683<p><a id="VUID-VkBufferImageCopy2-imageExtent-96661" href="#VUID-VkBufferImageCopy2-imageExtent-96661"></a> <span class="vuid">VUID-VkBufferImageCopy2-imageExtent-96661</span><br>
1684
1685<code>imageExtent.depth</code> <strong class="purple">must</strong> not be 0</p>
1686</li>
1687</ul>
1688</div>
1689</div>
1690</div>
1691<div class="sidebarblock">
1692<div class="content">
1693<div class="title">Valid Usage (Implicit)</div>
1694<div class="ulist">
1695<ul>
1696<li>
1697<p><a id="VUID-VkBufferImageCopy2-sType-sType" href="#VUID-VkBufferImageCopy2-sType-sType"></a> <span class="vuid">VUID-VkBufferImageCopy2-sType-sType</span><br>
1698 <code>sType</code> <strong class="purple">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2</code></p>
1699</li>
1700<li>
1701<p><a id="VUID-VkBufferImageCopy2-pNext-pNext" href="#VUID-VkBufferImageCopy2-pNext-pNext"></a> <span class="vuid">VUID-VkBufferImageCopy2-pNext-pNext</span><br>
1702 <code>pNext</code> <strong class="purple">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href="#VkCopyCommandTransformInfoQCOM">VkCopyCommandTransformInfoQCOM</a></p>
1703</li>
1704<li>
1705<p><a id="VUID-VkBufferImageCopy2-sType-unique" href="#VUID-VkBufferImageCopy2-sType-unique"></a> <span class="vuid">VUID-VkBufferImageCopy2-sType-unique</span><br>
1706 The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class="purple">must</strong> be unique</p>
1707</li>
1708<li>
1709<p><a id="VUID-VkBufferImageCopy2-imageSubresource-parameter" href="#VUID-VkBufferImageCopy2-imageSubresource-parameter"></a> <span class="vuid">VUID-VkBufferImageCopy2-imageSubresource-parameter</span><br>
1710 <code>imageSubresource</code> <strong class="purple">must</strong> be a valid <a href="#VkImageSubresourceLayers">VkImageSubresourceLayers</a> structure</p>
1711</li>
1712</ul>
1713</div>
1714</div>
1715</div>
1716</div>
1717</div>
1718</div>
1719</div>
1720</div>
1721<div class="sect1">
1722<h2 id="hic"><a class="anchor" href="#hic"></a>3. Host Image Copy</h2>
1723<div class="sectionbody">
1724<div class="paragraph">
1725<p>Tristique senectus et netus et malesuada. Tempor commodo ullamcorper a lacus
1726vestibulum sed arcu. Tellus in metus vulputate eu scelerisque. Lectus sit amet
1727est placerat in. Quam adipiscing vitae proin sagittis. Mattis pellentesque id
1728nibh tortor id aliquet lectus proin nibh. Sociis natoque penatibus et magnis
1729dis parturient montes nascetur. Lobortis mattis aliquam faucibus purus in massa
1730tempor nec. Ut ornare lectus sit amet est placerat in. Integer quis auctor elit
1731sed vulputate mi sit amet mauris. Ultrices sagittis orci a scelerisque purus
1732semper eget duis. Sit amet consectetur adipiscing elit duis tristique. Semper
1733risus in hendrerit gravida rutrum. Lorem ipsum dolor sit amet consectetur
1734adipiscing elit duis. Varius morbi enim nunc faucibus a pellentesque sit amet.
1735Praesent semper feugiat nibh sed pulvinar proin. Porttitor leo a diam
1736sollicitudin tempor id. In massa tempor nec feugiat nisl pretium fusce id. Amet
1737venenatis urna cursus eget nunc scelerisque.</p>
1738</div>
1739<div class="openblock">
1740<div class="content">
1741<div class="paragraph">
1742<p>Cursus sit amet dictum sit amet justo:</p>
1743</div>
1744<div id="vkCopyMemoryToImageEXT" class="listingblock">
1745<div class="content">
1746<pre class="rouge highlight"><code data-lang="c++"><span class="c1">// Provided by VK_EXT_host_image_copy</span>
1747<span class="n">VkResult</span> <span class="nf">vkCopyMemoryToImageEXT</span><span class="p">(</span>
1748    <span class="n">VkDevice</span>                                    <span class="n">device</span><span class="p">,</span>
1749    <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>
1750</div>
1751</div>
1752<div class="ulist">
1753<ul>
1754<li>
1755<p><code>device</code> Quis viverra nibh cras pulvinar mattis nunc
1756<code>pCopyMemoryToImageInfo-&gt;dstImage</code>.</p>
1757</li>
1758<li>
1759<p><code>pCopyMemoryToImageInfo</code> Est velit egestas dui id ornare. Tristique nulla aliquet enim tortor at
1760<a href="#VkCopyMemoryToImageInfoEXT">VkCopyMemoryToImageInfoEXT</a> structure.</p>
1761</li>
1762</ul>
1763</div>
1764<div class="paragraph">
1765<p>Turpis egestas pretium aenean pharetra <a href="#vkCmdCopyBufferToImage2">vkCmdCopyBufferToImage2</a>, magna ac placerat vestibulum lectus.</p>
1766</div>
1767<div class="sidebarblock">
1768<div class="content">
1769<div class="title">Valid Usage</div>
1770<div class="ulist">
1771<ul>
1772<li>
1773<p><a id="VUID-vkCopyMemoryToImageEXT-hostImageCopy-99058" href="#VUID-vkCopyMemoryToImageEXT-hostImageCopy-99058"></a> <span class="vuid">VUID-vkCopyMemoryToImageEXT-hostImageCopy-99058</span><br>
1774
1775Risus quis varius <a href="#features-hostImageCopy"><code>hostImageCopy</code></a> quam
1776quisque id diam vel</p>
1777</li>
1778</ul>
1779</div>
1780</div>
1781</div>
1782<div class="sidebarblock">
1783<div class="content">
1784<div class="title">Valid Usage (Implicit)</div>
1785<div class="ulist">
1786<ul>
1787<li>
1788<p><a id="VUID-vkCopyMemoryToImageEXT-device-parameter" href="#VUID-vkCopyMemoryToImageEXT-device-parameter"></a> <span class="vuid">VUID-vkCopyMemoryToImageEXT-device-parameter</span><br>
1789 <code>device</code> <strong class="purple">must</strong> be a valid <a href="#VkDevice">VkDevice</a> handle</p>
1790</li>
1791<li>
1792<p><a id="VUID-vkCopyMemoryToImageEXT-pCopyMemoryToImageInfo-parameter" href="#VUID-vkCopyMemoryToImageEXT-pCopyMemoryToImageInfo-parameter"></a> <span class="vuid">VUID-vkCopyMemoryToImageEXT-pCopyMemoryToImageInfo-parameter</span><br>
1793 <code>pCopyMemoryToImageInfo</code> <strong class="purple">must</strong> be a valid pointer to a valid <a href="#VkCopyMemoryToImageInfoEXT">VkCopyMemoryToImageInfoEXT</a> structure</p>
1794</li>
1795</ul>
1796</div>
1797</div>
1798</div>
1799<div class="sidebarblock">
1800<div class="content">
1801<div class="title">Return Codes</div>
1802<div class="dlist">
1803<dl>
1804<dt class="hdlist1"><a href="#fundamentals-successcodes">Success</a></dt>
1805<dd>
1806<div class="ulist">
1807<ul>
1808<li>
1809<p><code>VK_SUCCESS</code></p>
1810</li>
1811</ul>
1812</div>
1813</dd>
1814<dt class="hdlist1"><a href="#fundamentals-errorcodes">Failure</a></dt>
1815<dd>
1816<div class="ulist">
1817<ul>
1818<li>
1819<p><code>VK_ERROR_INITIALIZATION_FAILED</code></p>
1820</li>
1821<li>
1822<p><code>VK_ERROR_OUT_OF_HOST_MEMORY</code></p>
1823</li>
1824<li>
1825<p><code>VK_ERROR_OUT_OF_DEVICE_MEMORY</code></p>
1826</li>
1827<li>
1828<p><code>VK_ERROR_MEMORY_MAP_FAILED</code></p>
1829</li>
1830</ul>
1831</div>
1832</dd>
1833</dl>
1834</div>
1835</div>
1836</div>
1837</div>
1838</div>
1839<div class="openblock">
1840<div class="content">
1841<div class="paragraph">
1842<p>Morbi tincidunt augue interdum velit euismod in pellentesque massa <code>VkCopyMemoryToImageInfoEXT</code> structure:</p>
1843</div>
1844<div id="VkCopyMemoryToImageInfoEXT" class="listingblock">
1845<div class="content">
1846<pre class="rouge highlight"><code data-lang="c++"><span class="c1">// Provided by VK_EXT_host_image_copy</span>
1847<span class="k">typedef</span> <span class="k">struct</span> <span class="nc">VkCopyMemoryToImageInfoEXT</span> <span class="p">{</span>
1848    <span class="n">VkStructureType</span>                  <span class="n">sType</span><span class="p">;</span>
1849    <span class="k">const</span> <span class="kt">void</span><span class="o">*</span>                      <span class="n">pNext</span><span class="p">;</span>
1850    <span class="n">VkHostImageCopyFlagsEXT</span>          <span class="n">flags</span><span class="p">;</span>
1851    <span class="n">VkImage</span>                          <span class="n">dstImage</span><span class="p">;</span>
1852    <span class="n">VkImageLayout</span>                    <span class="n">dstImageLayout</span><span class="p">;</span>
1853    <span class="kt">uint32_t</span>                         <span class="n">regionCount</span><span class="p">;</span>
1854    <span class="k">const</span> <span class="n">VkMemoryToImageCopyEXT</span><span class="o">*</span>    <span class="n">pRegions</span><span class="p">;</span>
1855<span class="p">}</span> <span class="n">VkCopyMemoryToImageInfoEXT</span><span class="p">;</span></code></pre>
1856</div>
1857</div>
1858<div class="ulist">
1859<ul>
1860<li>
1861<p><code>sType</code> on enim praesent elementum facilisis.</p>
1862</li>
1863<li>
1864<p><code>pNext</code> Ultricies tristique <code>NULL</code> nulla aliquet enim tortor.</p>
1865</li>
1866<li>
1867<p><code>flags</code> Volutpat ac tincidunt vitae semper.</p>
1868</li>
1869<li>
1870<p><code>dstImage</code> Orci eu lobortis elementum nibh.</p>
1871</li>
1872<li>
1873<p><code>dstImageLayout</code> Euismod elementum nisi quis eleifend quam adipiscing vitae proin.</p>
1874</li>
1875<li>
1876<p><code>regionCount</code> Et netus et malesuada fames ac turpis egestas.</p>
1877</li>
1878<li>
1879<p><code>pRegions</code> Lorem ipsum dolor sitr <a href="#VkMemoryToImageCopyEXT">VkMemoryToImageCopyEXT</a> amet consectetu.</p>
1880</li>
1881</ul>
1882</div>
1883<div class="paragraph">
1884<p><code>vkCopyMemoryToImageEXT</code> pulvinar neque laoreet suspendisse interdum
1885consectetur libero. Id porta nibh venenatis cras sed felis. Massa vitae tortor
1886condimentum lacinia quis.</p>
1887</div>
1888<div class="sidebarblock">
1889<div class="content">
1890<div class="title">Valid Usage</div>
1891<div class="ulist">
1892<ul>
1893<li>
1894<p><a id="VUID-VkCopyMemoryToImageInfoEXT-dstImage-97966" href="#VUID-VkCopyMemoryToImageInfoEXT-dstImage-97966"></a> <span class="vuid">VUID-VkCopyMemoryToImageInfoEXT-dstImage-97966</span><br>
1895
1896If <code>dstImage</code> is non-sparse then the image or the specified
1897<em>disjoint</em> plane <strong class="purple">must</strong> be bound completely and contiguously to a single
1898<code>VkDeviceMemory</code> object</p>
1899</li>
1900<li>
1901<p><a id="VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-97967" href="#VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-97967"></a> <span class="vuid">VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-97967</span><br>
1902
1903The <code>imageSubresource.mipLevel</code> member of each element of
1904<code>pRegions</code> <strong class="purple">must</strong> be less than the <code>mipLevels</code> specified in
1905<a href="#VkImageCreateInfo">VkImageCreateInfo</a> when <code>dstImage</code> was created</p>
1906</li>
1907<li>
1908<p><a id="VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-97968" href="#VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-97968"></a> <span class="vuid">VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-97968</span><br>
1909
1910The <span class="eq"><code>imageSubresource.baseArrayLayer</code> +
1911<code>imageSubresource.layerCount</code></span> of each element of <code>pRegions</code>
1912, if <code>imageSubresource.layerCount</code> is not
1913<code>VK_REMAINING_ARRAY_LAYERS</code> and <a href="#features-maintenance5"><code>maintenance5</code></a> is not enabled,
1914<strong class="purple">must</strong> be less than or equal to the <code>arrayLayers</code> specified in
1915<a href="#VkImageCreateInfo">VkImageCreateInfo</a> when <code>dstImage</code> was created</p>
1916</li>
1917<li>
1918<p><a id="VUID-VkCopyMemoryToImageInfoEXT-dstImage-97969" href="#VUID-VkCopyMemoryToImageInfoEXT-dstImage-97969"></a> <span class="vuid">VUID-VkCopyMemoryToImageInfoEXT-dstImage-97969</span><br>
1919
1920<code>dstImage</code> <strong class="purple">must</strong> not have been created with <code>flags</code>
1921containing <code>VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT</code></p>
1922</li>
1923<li>
1924<p><a id="VUID-VkCopyMemoryToImageInfoEXT-dstImageLayout-99059" href="#VUID-VkCopyMemoryToImageInfoEXT-dstImageLayout-99059"></a> <span class="vuid">VUID-VkCopyMemoryToImageInfoEXT-dstImageLayout-99059</span><br>
1925
1926<code>dstImageLayout</code> <strong class="purple">must</strong> Lorem ipsum dolor sit amet, <code>dstImage</code>
1927consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore
1928<code>pRegions</code> et dolore magna aliqua</p>
1929</li>
1930</ul>
1931</div>
1932</div>
1933</div>
1934<div class="sidebarblock">
1935<div class="content">
1936<div class="title">Valid Usage (Implicit)</div>
1937<div class="ulist">
1938<ul>
1939<li>
1940<p><a id="VUID-VkCopyMemoryToImageInfoEXT-sType-sType" href="#VUID-VkCopyMemoryToImageInfoEXT-sType-sType"></a> <span class="vuid">VUID-VkCopyMemoryToImageInfoEXT-sType-sType</span><br>
1941 <code>sType</code> <strong class="purple">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT</code></p>
1942</li>
1943<li>
1944<p><a id="VUID-VkCopyMemoryToImageInfoEXT-pNext-pNext" href="#VUID-VkCopyMemoryToImageInfoEXT-pNext-pNext"></a> <span class="vuid">VUID-VkCopyMemoryToImageInfoEXT-pNext-pNext</span><br>
1945 <code>pNext</code> <strong class="purple">must</strong> be <code>NULL</code></p>
1946</li>
1947<li>
1948<p><a id="VUID-VkCopyMemoryToImageInfoEXT-flags-parameter" href="#VUID-VkCopyMemoryToImageInfoEXT-flags-parameter"></a> <span class="vuid">VUID-VkCopyMemoryToImageInfoEXT-flags-parameter</span><br>
1949 <code>flags</code> <strong class="purple">must</strong> be a valid combination of <a href="#VkHostImageCopyFlagBitsEXT">VkHostImageCopyFlagBitsEXT</a> values</p>
1950</li>
1951<li>
1952<p><a id="VUID-VkCopyMemoryToImageInfoEXT-dstImage-parameter" href="#VUID-VkCopyMemoryToImageInfoEXT-dstImage-parameter"></a> <span class="vuid">VUID-VkCopyMemoryToImageInfoEXT-dstImage-parameter</span><br>
1953 <code>dstImage</code> <strong class="purple">must</strong> be a valid <a href="#VkImage">VkImage</a> handle</p>
1954</li>
1955<li>
1956<p><a id="VUID-VkCopyMemoryToImageInfoEXT-dstImageLayout-parameter" href="#VUID-VkCopyMemoryToImageInfoEXT-dstImageLayout-parameter"></a> <span class="vuid">VUID-VkCopyMemoryToImageInfoEXT-dstImageLayout-parameter</span><br>
1957 <code>dstImageLayout</code> <strong class="purple">must</strong> be a valid <a href="#VkImageLayout">VkImageLayout</a> value</p>
1958</li>
1959<li>
1960<p><a id="VUID-VkCopyMemoryToImageInfoEXT-pRegions-parameter" href="#VUID-VkCopyMemoryToImageInfoEXT-pRegions-parameter"></a> <span class="vuid">VUID-VkCopyMemoryToImageInfoEXT-pRegions-parameter</span><br>
1961 <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>
1962</li>
1963<li>
1964<p><a id="VUID-VkCopyMemoryToImageInfoEXT-regionCount-arraylength" href="#VUID-VkCopyMemoryToImageInfoEXT-regionCount-arraylength"></a> <span class="vuid">VUID-VkCopyMemoryToImageInfoEXT-regionCount-arraylength</span><br>
1965 <code>regionCount</code> <strong class="purple">must</strong> be greater than <code>0</code></p>
1966</li>
1967</ul>
1968</div>
1969</div>
1970</div>
1971</div>
1972</div>
1973<div class="openblock">
1974<div class="content">
1975<div class="paragraph">
1976<p>Congue eu consequat ac felis donec et odio. Enim nec
1977<a href="#VkCopyMemoryToImageInfoEXT">VkCopyMemoryToImageInfoEXT</a>::<code>pRegions</code> dui nunc mattis enim:</p>
1978</div>
1979<div id="VkMemoryToImageCopyEXT" class="listingblock">
1980<div class="content">
1981<pre class="rouge highlight"><code data-lang="c++"><span class="c1">// Provided by VK_EXT_host_image_copy</span>
1982<span class="k">typedef</span> <span class="k">struct</span> <span class="nc">VkMemoryToImageCopyEXT</span> <span class="p">{</span>
1983    <span class="n">VkStructureType</span>             <span class="n">sType</span><span class="p">;</span>
1984    <span class="k">const</span> <span class="kt">void</span><span class="o">*</span>                 <span class="n">pNext</span><span class="p">;</span>
1985    <span class="k">const</span> <span class="kt">void</span><span class="o">*</span>                 <span class="n">pHostPointer</span><span class="p">;</span>
1986    <span class="kt">uint32_t</span>                    <span class="n">memoryRowLength</span><span class="p">;</span>
1987    <span class="kt">uint32_t</span>                    <span class="n">memoryImageHeight</span><span class="p">;</span>
1988    <span class="n">VkImageSubresourceLayers</span>    <span class="n">imageSubresource</span><span class="p">;</span>
1989    <span class="n">VkOffset3D</span>                  <span class="n">imageOffset</span><span class="p">;</span>
1990    <span class="n">VkExtent3D</span>                  <span class="n">imageExtent</span><span class="p">;</span>
1991<span class="p">}</span> <span class="n">VkMemoryToImageCopyEXT</span><span class="p">;</span></code></pre>
1992</div>
1993</div>
1994<div class="ulist">
1995<ul>
1996<li>
1997<p><code>sType</code> Nulla facilisi etiam dignissim diam quis enim lobortis scelerisque fermentum.</p>
1998</li>
1999<li>
2000<p><code>pNext</code> Nam libero justo laoreet sit amet.</p>
2001</li>
2002<li>
2003<p><code>pHostPointer</code> Lacus luctus accumsan tortor posuere.</p>
2004</li>
2005<li>
2006<p><code>memoryRowLength</code> and <code>memoryImageHeight</code> Ultrices tincidunt arcu
2007non sodales. Ut enim blandit volutpat maecenas volutpat blandit aliquam
2008etiam <code>imageExtent</code>.</p>
2009</li>
2010<li>
2011<p><code>imageSubresource</code> Sed id semper risus in. Natoque penatibus et magnis dis parturient montes.</p>
2012</li>
2013<li>
2014<p><code>imageOffset</code> Vestibulum morbi blandit cursus <code>x</code>, <code>y</code>, <code>z</code>
2015risus at ultrices mi tempus imperdiet.</p>
2016</li>
2017<li>
2018<p><code>imageExtent</code> Dignissim cras tincidunt lobortis feugiat vivamus at
2019<code>width</code>, <code>height</code> and <code>depth</code> augue eget arcu.</p>
2020</li>
2021</ul>
2022</div>
2023<div class="paragraph">
2024<p>Ultricies mi eget mauris pharetra. Ac turpis <a href="#VkBufferImageCopy2">VkBufferImageCopy2</a> egestas
2025maecenas pharetra convallis posuere morbi leo urna. Cras sed felis eget velit
2026aliquet. Sit amet mauris commodo quis imperdiet. Malesuada pellentesque elit
2027eget gravida cum sociis natoque. Faucibus pulvinar elementum integer enim neque
2028volutpat ac tincidunt vitae</p>
2029</div>
2030<div class="sidebarblock">
2031<div class="content">
2032<div class="title">Valid Usage</div>
2033<div class="ulist">
2034<ul>
2035<li>
2036<p><a id="VUID-VkMemoryToImageCopyEXT-pHostPointer-99061" href="#VUID-VkMemoryToImageCopyEXT-pHostPointer-99061"></a> <span class="vuid">VUID-VkMemoryToImageCopyEXT-pHostPointer-99061</span><br>
2037
2038<code>pHostPointer</code> <strong class="purple">must</strong> Nisl condimentum id venenatis a condimentum vitae</p>
2039</li>
2040</ul>
2041</div>
2042<div class="ulist">
2043<ul>
2044<li>
2045<p><a id="VUID-VkMemoryToImageCopyEXT-memoryRowLength-99101" href="#VUID-VkMemoryToImageCopyEXT-memoryRowLength-99101"></a> <span class="vuid">VUID-VkMemoryToImageCopyEXT-memoryRowLength-99101</span><br>
2046
2047<code>memoryRowLength</code> <strong class="purple">must</strong> be <code>0</code>, or greater than or equal to the
2048<code>width</code> member of <code>imageExtent</code></p>
2049</li>
2050<li>
2051<p><a id="VUID-VkMemoryToImageCopyEXT-memoryImageHeight-99102" href="#VUID-VkMemoryToImageCopyEXT-memoryImageHeight-99102"></a> <span class="vuid">VUID-VkMemoryToImageCopyEXT-memoryImageHeight-99102</span><br>
2052
2053<code>memoryImageHeight</code> <strong class="purple">must</strong> be <code>0</code>, or greater than or equal to the
2054<code>height</code> member of <code>imageExtent</code></p>
2055</li>
2056<li>
2057<p><a id="VUID-VkMemoryToImageCopyEXT-aspectMask-99103" href="#VUID-VkMemoryToImageCopyEXT-aspectMask-99103"></a> <span class="vuid">VUID-VkMemoryToImageCopyEXT-aspectMask-99103</span><br>
2058
2059The <code>aspectMask</code> member of <code>imageSubresource</code> <strong class="purple">must</strong> only have a
2060single bit set</p>
2061</li>
2062<li>
2063<p><a id="VUID-VkMemoryToImageCopyEXT-imageExtent-96659" href="#VUID-VkMemoryToImageCopyEXT-imageExtent-96659"></a> <span class="vuid">VUID-VkMemoryToImageCopyEXT-imageExtent-96659</span><br>
2064
2065<code>imageExtent.width</code> <strong class="purple">must</strong> not be 0</p>
2066</li>
2067<li>
2068<p><a id="VUID-VkMemoryToImageCopyEXT-imageExtent-96660" href="#VUID-VkMemoryToImageCopyEXT-imageExtent-96660"></a> <span class="vuid">VUID-VkMemoryToImageCopyEXT-imageExtent-96660</span><br>
2069
2070<code>imageExtent.height</code> <strong class="purple">must</strong> not be 0</p>
2071</li>
2072<li>
2073<p><a id="VUID-VkMemoryToImageCopyEXT-imageExtent-96661" href="#VUID-VkMemoryToImageCopyEXT-imageExtent-96661"></a> <span class="vuid">VUID-VkMemoryToImageCopyEXT-imageExtent-96661</span><br>
2074
2075<code>imageExtent.depth</code> <strong class="purple">must</strong> not be 0</p>
2076</li>
2077</ul>
2078</div>
2079</div>
2080</div>
2081<div class="sidebarblock">
2082<div class="content">
2083<div class="title">Valid Usage (Implicit)</div>
2084<div class="ulist">
2085<ul>
2086<li>
2087<p><a id="VUID-VkMemoryToImageCopyEXT-sType-sType" href="#VUID-VkMemoryToImageCopyEXT-sType-sType"></a> <span class="vuid">VUID-VkMemoryToImageCopyEXT-sType-sType</span><br>
2088 <code>sType</code> <strong class="purple">must</strong> be <code>VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT</code></p>
2089</li>
2090<li>
2091<p><a id="VUID-VkMemoryToImageCopyEXT-pNext-pNext" href="#VUID-VkMemoryToImageCopyEXT-pNext-pNext"></a> <span class="vuid">VUID-VkMemoryToImageCopyEXT-pNext-pNext</span><br>
2092 <code>pNext</code> <strong class="purple">must</strong> be <code>NULL</code></p>
2093</li>
2094<li>
2095<p><a id="VUID-VkMemoryToImageCopyEXT-pHostPointer-parameter" href="#VUID-VkMemoryToImageCopyEXT-pHostPointer-parameter"></a> <span class="vuid">VUID-VkMemoryToImageCopyEXT-pHostPointer-parameter</span><br>
2096 <code>pHostPointer</code> <strong class="purple">must</strong> be a pointer value</p>
2097</li>
2098<li>
2099<p><a id="VUID-VkMemoryToImageCopyEXT-imageSubresource-parameter" href="#VUID-VkMemoryToImageCopyEXT-imageSubresource-parameter"></a> <span class="vuid">VUID-VkMemoryToImageCopyEXT-imageSubresource-parameter</span><br>
2100 <code>imageSubresource</code> <strong class="purple">must</strong> be a valid <a href="#VkImageSubresourceLayers">VkImageSubresourceLayers</a> structure</p>
2101</li>
2102</ul>
2103</div>
2104</div>
2105</div>
2106</div>
2107</div>
2108</div>
2109</div>
2110<div class="sect1">
2111<h2 id="extensions"><a class="anchor" href="#extensions"></a>Layers &amp; Extensions (Informative)</h2>
2112<div class="sectionbody">
2113<div class="paragraph">
2114<p>Cursus euismod quis viverra nibh cras pulvinar.</p>
2115</div>
2116<div class="sect2">
2117<h3 id="_extension_dependencies"><a class="anchor" href="#_extension_dependencies"></a>Extension Dependencies</h3>
2118<div class="paragraph">
2119<p>Id diam vel quam elementum</p>
2120</div>
2121<div class="sect3">
2122<h4 id="VK_EXT_host_image_copy"><a class="anchor" href="#VK_EXT_host_image_copy"></a>VK_EXT_host_image_copy</h4>
2123<div class="dlist">
2124<dl>
2125<dt class="hdlist1"><strong>Name String</strong></dt>
2126<dd>
2127<p><code>VK_EXT_host_image_copy</code></p>
2128</dd>
2129<dt class="hdlist1"><strong>Extension Type</strong></dt>
2130<dd>
2131<p>Device extension</p>
2132</dd>
2133<dt class="hdlist1"><strong>Registered Extension Number</strong></dt>
2134<dd>
2135<p>271</p>
2136</dd>
2137<dt class="hdlist1"><strong>Revision</strong></dt>
2138<dd>
2139<p>1</p>
2140</dd>
2141<dt class="hdlist1"><strong>Ratification Status</strong></dt>
2142<dd>
2143<p>Ratified</p>
2144</dd>
2145<dt class="hdlist1"><strong>Extension and Version Dependencies</strong></dt>
2146<dd>
2147<div class="openblock">
2148<div class="content">
2149<div class="paragraph">
2150<p><a href="#VK_KHR_get_physical_device_properties2">VK_KHR_get_physical_device_properties2</a><br>
2151and<br>
2152<a href="#VK_KHR_copy_commands2">VK_KHR_copy_commands2</a><br>
2153and<br>
2154<a href="#VK_KHR_format_feature_flags2">VK_KHR_format_feature_flags2</a><br></p>
2155</div>
2156</div>
2157</div>
2158</dd>
2159<dt class="hdlist1"><strong>Contact</strong></dt>
2160<dd>
2161<div class="ulist">
2162<ul>
2163<li>
2164<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>
2165</li>
2166</ul>
2167</div>
2168</dd>
2169<dt class="hdlist1"><strong>Extension Proposal</strong></dt>
2170<dd>
2171<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>
2172</dd>
2173</dl>
2174</div>
2175</div>
2176<div class="sect3">
2177<h4 id="_other_extension_metadata"><a class="anchor" href="#_other_extension_metadata"></a>Other Extension Metadata</h4>
2178<div class="dlist">
2179<dl>
2180<dt class="hdlist1"><strong>Last Modified Date</strong></dt>
2181<dd>
2182<p>2186-02-28</p>
2183</dd>
2184<dt class="hdlist1"><strong>Contributors</strong></dt>
2185<dd>
2186<div class="ulist">
2187<ul>
2188<li>
2189<p>Zabhash Ifessouy, Elgoog</p>
2190</li>
2191<li>
2192<p>Htiaf Dnartske, Aroballoc</p>
2193</li>
2194<li>
2195<p>Sreip Lleinad, AIDIVN</p>
2196</li>
2197</ul>
2198</div>
2199</dd>
2200</dl>
2201</div>
2202</div>
2203<div class="sect3">
2204<h4 id="_description"><a class="anchor" href="#_description"></a>Description</h4>
2205<div class="paragraph">
2206<p>Sed risus pretium quam vulputate dignissim suspendisse in est ante. Mauris
2207commodo quis imperdiet massa tincidunt nunc pulvinar. Odio morbi quis commodo
2208odio aenean sed. Quam adipiscing vitae proin sagittis nisl rhoncus. Vel
2209facilisis volutpat est velit egestas dui. Consequat id porta nibh venenatis
2210cras sed felis. Ac tortor dignissim convallis aenean et tortor. Amet porttitor
2211eget dolor morbi non arcu. Consequat interdum varius sit amet. Tempus egestas
2212sed sed risus pretium quam. Gravida in fermentum et sollicitudin ac orci
2213phasellus egestas. Nulla facilisi etiam dignissim diam quis enim lobortis
2214scelerisque fermentum. Tempus quam pellentesque nec nam aliquam. A pellentesque
2215sit amet porttitor eget. Viverra justo nec ultrices dui sapien eget mi. Nullam
2216vehicula ipsum a arcu. Amet volutpat consequat mauris nunc congue nisi.
2217Tincidunt arcu non sodales neque.</p>
2218</div>
2219</div>
2220<div class="sect3">
2221<h4 id="_new_commands"><a class="anchor" href="#_new_commands"></a>New Commands</h4>
2222<div class="ulist">
2223<ul>
2224<li>
2225<p><a href="#vkCopyImageToImageEXT">vkCopyImageToImageEXT</a></p>
2226</li>
2227<li>
2228<p><a href="#vkCopyImageToMemoryEXT">vkCopyImageToMemoryEXT</a></p>
2229</li>
2230<li>
2231<p><a href="#vkCopyMemoryToImageEXT">vkCopyMemoryToImageEXT</a></p>
2232</li>
2233<li>
2234<p><a href="#vkGetImageSubresourceLayout2EXT">vkGetImageSubresourceLayout2EXT</a></p>
2235</li>
2236<li>
2237<p><a href="#vkTransitionImageLayoutEXT">vkTransitionImageLayoutEXT</a></p>
2238</li>
2239</ul>
2240</div>
2241</div>
2242<div class="sect3">
2243<h4 id="_new_structures"><a class="anchor" href="#_new_structures"></a>New Structures</h4>
2244<div class="ulist">
2245<ul>
2246<li>
2247<p><a href="#VkCopyImageToImageInfoEXT">VkCopyImageToImageInfoEXT</a></p>
2248</li>
2249<li>
2250<p><a href="#VkCopyImageToMemoryInfoEXT">VkCopyImageToMemoryInfoEXT</a></p>
2251</li>
2252<li>
2253<p><a href="#VkCopyMemoryToImageInfoEXT">VkCopyMemoryToImageInfoEXT</a></p>
2254</li>
2255<li>
2256<p><a href="#VkHostImageLayoutTransitionInfoEXT">VkHostImageLayoutTransitionInfoEXT</a></p>
2257</li>
2258<li>
2259<p><a href="#VkImageSubresource2EXT">VkImageSubresource2EXT</a></p>
2260</li>
2261<li>
2262<p><a href="#VkImageToMemoryCopyEXT">VkImageToMemoryCopyEXT</a></p>
2263</li>
2264<li>
2265<p><a href="#VkMemoryToImageCopyEXT">VkMemoryToImageCopyEXT</a></p>
2266</li>
2267<li>
2268<p><a href="#VkSubresourceLayout2EXT">VkSubresourceLayout2EXT</a></p>
2269</li>
2270<li>
2271<p>Extending <a href="#VkImageFormatProperties2">VkImageFormatProperties2</a>:</p>
2272<div class="ulist">
2273<ul>
2274<li>
2275<p><a href="#VkHostImageCopyDevicePerformanceQueryEXT">VkHostImageCopyDevicePerformanceQueryEXT</a></p>
2276</li>
2277</ul>
2278</div>
2279</li>
2280<li>
2281<p>Extending <a href="#VkPhysicalDeviceFeatures2">VkPhysicalDeviceFeatures2</a>, <a href="#VkDeviceCreateInfo">VkDeviceCreateInfo</a>:</p>
2282<div class="ulist">
2283<ul>
2284<li>
2285<p><a href="#VkPhysicalDeviceHostImageCopyFeaturesEXT">VkPhysicalDeviceHostImageCopyFeaturesEXT</a></p>
2286</li>
2287</ul>
2288</div>
2289</li>
2290<li>
2291<p>Extending <a href="#VkPhysicalDeviceProperties2">VkPhysicalDeviceProperties2</a>:</p>
2292<div class="ulist">
2293<ul>
2294<li>
2295<p><a href="#VkPhysicalDeviceHostImageCopyPropertiesEXT">VkPhysicalDeviceHostImageCopyPropertiesEXT</a></p>
2296</li>
2297</ul>
2298</div>
2299</li>
2300<li>
2301<p>Extending <a href="#VkSubresourceLayout2KHR">VkSubresourceLayout2KHR</a>:</p>
2302<div class="ulist">
2303<ul>
2304<li>
2305<p><a href="#VkSubresourceHostMemcpySizeEXT">VkSubresourceHostMemcpySizeEXT</a></p>
2306</li>
2307</ul>
2308</div>
2309</li>
2310</ul>
2311</div>
2312</div>
2313<div class="sect3">
2314<h4 id="_new_enums"><a class="anchor" href="#_new_enums"></a>New Enums</h4>
2315<div class="ulist">
2316<ul>
2317<li>
2318<p><a href="#VkHostImageCopyFlagBitsEXT">VkHostImageCopyFlagBitsEXT</a></p>
2319</li>
2320</ul>
2321</div>
2322</div>
2323<div class="sect3">
2324<h4 id="_new_bitmasks"><a class="anchor" href="#_new_bitmasks"></a>New Bitmasks</h4>
2325<div class="ulist">
2326<ul>
2327<li>
2328<p><a href="#VkHostImageCopyFlagsEXT">VkHostImageCopyFlagsEXT</a></p>
2329</li>
2330</ul>
2331</div>
2332</div>
2333<div class="sect3">
2334<h4 id="_new_enum_constants"><a class="anchor" href="#_new_enum_constants"></a>New Enum Constants</h4>
2335<div class="ulist">
2336<ul>
2337<li>
2338<p><code>VK_EXT_HOST_IMAGE_COPY_EXTENSION_NAME</code></p>
2339</li>
2340<li>
2341<p><code>VK_EXT_HOST_IMAGE_COPY_SPEC_VERSION</code></p>
2342</li>
2343<li>
2344<p>Extending <a href="#VkFormatFeatureFlagBits2">VkFormatFeatureFlagBits2</a>:</p>
2345<div class="ulist">
2346<ul>
2347<li>
2348<p><code>VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT</code></p>
2349</li>
2350</ul>
2351</div>
2352</li>
2353<li>
2354<p>Extending <a href="#VkImageUsageFlagBits">VkImageUsageFlagBits</a>:</p>
2355<div class="ulist">
2356<ul>
2357<li>
2358<p><code>VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT</code></p>
2359</li>
2360</ul>
2361</div>
2362</li>
2363<li>
2364<p>Extending <a href="#VkStructureType">VkStructureType</a>:</p>
2365<div class="ulist">
2366<ul>
2367<li>
2368<p><code>VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT</code></p>
2369</li>
2370<li>
2371<p><code>VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT</code></p>
2372</li>
2373<li>
2374<p><code>VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT</code></p>
2375</li>
2376<li>
2377<p><code>VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT</code></p>
2378</li>
2379<li>
2380<p><code>VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT</code></p>
2381</li>
2382<li>
2383<p><code>VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT</code></p>
2384</li>
2385<li>
2386<p><code>VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT</code></p>
2387</li>
2388<li>
2389<p><code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT</code></p>
2390</li>
2391<li>
2392<p><code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT</code></p>
2393</li>
2394<li>
2395<p><code>VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT</code></p>
2396</li>
2397</ul>
2398</div>
2399</li>
2400</ul>
2401</div>
2402</div>
2403<div class="sect3">
2404<h4 id="_issues"><a class="anchor" href="#_issues"></a>Issues</h4>
2405<div class="paragraph">
2406<p>1) Natoque penatibus et magnis dis parturient montes nascetur.</p>
2407</div>
2408<div class="paragraph">
2409<p><strong>RESOLVED</strong>: Iaculis eu non diam phasellus vestibulum. Consequat nisl vel
2410pretium lectus quam. Euismod in pellentesque massa placerat duis ultricies
2411lacus sed turpis. Ullamcorper eget nulla facilisi etiam dignissim diam quis
2412enim. Id velit ut tortor pretium viverra suspendisse potenti.</p>
2413</div>
2414<div class="paragraph">
2415<p>2) Faucibus in ornare quam viverra orci sagittis eu volutpat?</p>
2416</div>
2417<div class="paragraph">
2418<p><strong>RESOLVED</strong>: Eu facilisis sed odio morbi quis commodo. Pharetra magna ac
2419placerat vestibulum lectus mauris. Ac felis donec et odio pellentesque diam
2420volutpat commodo sed.</p>
2421</div>
2422</div>
2423<div class="sect3">
2424<h4 id="_version_history"><a class="anchor" href="#_version_history"></a>Version History</h4>
2425<div class="ulist">
2426<ul>
2427<li>
2428<p>Revision 0, 2173-05-30 (Htiaf Dnartske)</p>
2429<div class="ulist">
2430<ul>
2431<li>
2432<p>Malesuada pellentesque elit eget gravida cum sociis natoque</p>
2433</li>
2434</ul>
2435</div>
2436</li>
2437<li>
2438<p>Revision 1, 2185-12-01 (Zabhash Ifessouy)</p>
2439<div class="ulist">
2440<ul>
2441<li>
2442<p>Id leo in vitae turpis massa sed elementum</p>
2443</li>
2444</ul>
2445</div>
2446</li>
2447</ul>
2448</div>
2449</div>
2450</div>
2451</div>
2452</div>
2453</div>
2454<div id="footer">
2455<div id="footer-text">
2456Version 1.2.3<br>
2457</div>
2458</div>
2459
2460
2461</body>
2462</html>