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 & 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… 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->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->pRegions</code> <strong class="purple">must</strong> respect the image transfer granularity requirements 1287of <code>commandBuffer</code>’s command pool’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->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->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 & 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>