1<!DOCTYPE html> 2<html lang="en"> 3<head> 4<meta charset="UTF-8"> 5<meta http-equiv="X-UA-Compatible" content="IE=edge"> 6<meta name="viewport" content="width=device-width, initial-scale=1.0"> 7<meta name="generator" content="Asciidoctor 2.0.17"> 8<meta name="author" content="The Khronos® Vulkan Working Group"> 9<title>Test® 1.2.3 - (with VK_KHR_copy_commands2, VK_KHR_get_physical_device_properties2)</title> 10<style> 11/*! normalize.css v2.1.2 | MIT License | git.io/normalize */ 12/* ========================================================================== HTML5 display definitions ========================================================================== */ 13/** Correct `block` display not defined in IE 8/9. */ 14article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary { display: block; } 15 16/** Correct `inline-block` display not defined in IE 8/9. */ 17audio, canvas, video { display: inline-block; } 18 19/** Prevent modern browsers from displaying `audio` without controls. Remove excess height in iOS 5 devices. */ 20audio:not([controls]) { display: none; height: 0; } 21 22/** Address `[hidden]` styling not present in IE 8/9. Hide the `template` element in IE, Safari, and Firefox < 22. */ 23[hidden], template { display: none; } 24 25script { display: none !important; } 26 27/* ========================================================================== Base ========================================================================== */ 28/** 1. Set default font family to sans-serif. 2. Prevent iOS text size adjust after orientation change, without disabling user zoom. */ 29html { font-family: sans-serif; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ } 30 31/** Remove default margin. */ 32body { margin: 0; } 33 34/* ========================================================================== Links ========================================================================== */ 35/** Remove the gray background color from active links in IE 10. */ 36a { background: transparent; } 37 38/** Address `outline` inconsistency between Chrome and other browsers. */ 39a:focus { outline: thin dotted; } 40 41/** Improve readability when focused and also mouse hovered in all browsers. */ 42a:active, a:hover { outline: 0; } 43 44/* ========================================================================== Typography ========================================================================== */ 45/** Address variable `h1` font-size and margin within `section` and `article` contexts in Firefox 4+, Safari 5, and Chrome. */ 46h1 { font-size: 2em; margin: 0.67em 0; } 47 48/** Address styling not present in IE 8/9, Safari 5, and Chrome. */ 49abbr[title] { border-bottom: 1px dotted; } 50 51/** Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome. */ 52b, strong { font-weight: bold; } 53 54/** Address styling not present in Safari 5 and Chrome. */ 55dfn { font-style: italic; } 56 57/** Address differences between Firefox and other browsers. */ 58hr { -moz-box-sizing: content-box; box-sizing: content-box; height: 0; } 59 60/** Address styling not present in IE 8/9. */ 61mark { background: #ff0; color: #000; } 62 63/** Correct font family set oddly in Safari 5 and Chrome. */ 64code, kbd, pre, samp { font-family: monospace, serif; font-size: 1em; } 65 66/** Improve readability of pre-formatted text in all browsers. */ 67pre { white-space: pre-wrap; } 68 69/** Set consistent quote types. */ 70q { quotes: "\201C" "\201D" "\2018" "\2019"; } 71 72/** Address inconsistent and variable font size in all browsers. */ 73small { font-size: 80%; } 74 75/** Prevent `sub` and `sup` affecting `line-height` in all browsers. */ 76sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } 77 78sup { top: -0.5em; } 79 80sub { bottom: -0.25em; } 81 82/* ========================================================================== Embedded content ========================================================================== */ 83/** Remove border when inside `a` element in IE 8/9. */ 84img { border: 0; } 85 86/** Correct overflow displayed oddly in IE 9. */ 87svg:not(:root) { overflow: hidden; } 88 89/* ========================================================================== Figures ========================================================================== */ 90/** Address margin not present in IE 8/9 and Safari 5. */ 91figure { margin: 0; } 92 93/* ========================================================================== Forms ========================================================================== */ 94/** Define consistent border, margin, and padding. */ 95fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; } 96 97/** 1. Correct `color` not being inherited in IE 8/9. 2. Remove padding so people aren't caught out if they zero out fieldsets. */ 98legend { border: 0; /* 1 */ padding: 0; /* 2 */ } 99 100/** 1. Correct font family not being inherited in all browsers. 2. Correct font size not being inherited in all browsers. 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome. */ 101button, input, select, textarea { font-family: inherit; /* 1 */ font-size: 100%; /* 2 */ margin: 0; /* 3 */ } 102 103/** Address Firefox 4+ setting `line-height` on `input` using `!important` in the UA stylesheet. */ 104button, input { line-height: normal; } 105 106/** Address inconsistent `text-transform` inheritance for `button` and `select`. All other form control elements do not inherit `text-transform` values. Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+. Correct `select` style inheritance in Firefox 4+ and Opera. */ 107button, select { text-transform: none; } 108 109/** 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls. 2. Correct inability to style clickable `input` types in iOS. 3. Improve usability and consistency of cursor style between image-type `input` and others. */ 110button, html input[type="button"], input[type="reset"], input[type="submit"] { -webkit-appearance: button; /* 2 */ cursor: pointer; /* 3 */ } 111 112/** Re-set default cursor for disabled elements. */ 113button[disabled], html input[disabled] { cursor: default; } 114 115/** 1. Address box sizing set to `content-box` in IE 8/9. 2. Remove excess padding in IE 8/9. */ 116input[type="checkbox"], input[type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ } 117 118/** 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome (include `-moz` to future-proof). */ 119input[type="search"] { -webkit-appearance: textfield; /* 1 */ -moz-box-sizing: content-box; -webkit-box-sizing: content-box; /* 2 */ box-sizing: content-box; } 120 121/** Remove inner padding and search cancel button in Safari 5 and Chrome on OS X. */ 122input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } 123 124/** Remove inner padding and border in Firefox 4+. */ 125button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; } 126 127/** 1. Remove default vertical scrollbar in IE 8/9. 2. Improve readability and alignment in all browsers. */ 128textarea { overflow: auto; /* 1 */ vertical-align: top; /* 2 */ } 129 130/* ========================================================================== Tables ========================================================================== */ 131/** Remove most spacing between table cells. */ 132table { border-collapse: collapse; border-spacing: 0; } 133 134meta.foundation-mq-small { font-family: "only screen and (min-width: 768px)"; width: 768px; } 135 136meta.foundation-mq-medium { font-family: "only screen and (min-width:1280px)"; width: 1280px; } 137 138meta.foundation-mq-large { font-family: "only screen and (min-width:1440px)"; width: 1440px; } 139 140*, *:before, *:after { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; } 141 142html, body { font-size: 100%; } 143 144body { background: #fff; color: #222; padding: 0; margin: 0; font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif; font-weight: normal; font-style: normal; line-height: 1; position: relative; cursor: auto; } 145 146a:hover { cursor: pointer; } 147 148img, object, embed { max-width: 100%; height: auto; } 149 150object, embed { height: 100%; } 151 152img { -ms-interpolation-mode: bicubic; } 153 154#map_canvas img, #map_canvas embed, #map_canvas object, .map_canvas img, .map_canvas embed, .map_canvas object { max-width: none !important; } 155 156.left { float: left !important; } 157 158.right { float: right !important; } 159 160.text-left { text-align: left !important; } 161 162.text-right { text-align: right !important; } 163 164.text-center { text-align: center !important; } 165 166.text-justify { text-align: justify !important; } 167 168.hide { display: none; } 169 170.antialiased { -webkit-font-smoothing: antialiased; } 171 172img { display: inline-block; vertical-align: middle; } 173 174textarea { height: auto; min-height: 50px; } 175 176select { width: 100%; } 177 178object, svg { display: inline-block; vertical-align: middle; } 179 180.center { margin-left: auto; margin-right: auto; } 181 182.spread { width: 100%; } 183 184p.lead, .paragraph.lead > p, #preamble > .sectionbody > .paragraph:first-of-type p { font-size: 1.21875em; line-height: 1.6; } 185 186.subheader, .admonitionblock td.content > .title, .audioblock > .title, .exampleblock > .title, .imageblock > .title, .listingblock > .title, .literalblock > .title, .stemblock > .title, .openblock > .title, .paragraph > .title, .quoteblock > .title, table.tableblock > .title, .verseblock > .title, .videoblock > .title, .dlist > .title, .olist > .title, .ulist > .title, .qlist > .title, .hdlist > .title { line-height: 1.4; color: black; font-weight: 300; margin-top: 0.2em; margin-bottom: 0.5em; } 187 188/* Typography resets */ 189div, dl, dt, dd, ul, ol, li, h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6, pre, form, p, blockquote, th, td { margin: 0; padding: 0; direction: ltr; } 190 191/* Default Link Styles */ 192a { color: #0068b0; text-decoration: none; line-height: inherit; } 193a:hover, a:focus { color: #333; } 194a img { border: none; } 195 196/* Default paragraph styles */ 197p { font-family: Noto, sans-serif; font-weight: normal; font-size: 1em; line-height: 1.6; margin-bottom: 0.75em; text-rendering: optimizeLegibility; } 198p aside { font-size: 0.875em; line-height: 1.35; font-style: italic; } 199 200/* Default header styles */ 201h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6 { font-family: Noto, sans-serif; font-weight: normal; font-style: normal; color: black; text-rendering: optimizeLegibility; margin-top: 0.5em; margin-bottom: 0.5em; line-height: 1.2125em; } 202h1 small, h2 small, h3 small, #toctitle small, .sidebarblock > .content > .title small, h4 small, h5 small, h6 small { font-size: 60%; color: #4d4d4d; line-height: 0; } 203 204h1 { font-size: 2.125em; } 205 206h2 { font-size: 1.6875em; } 207 208h3, #toctitle, .sidebarblock > .content > .title { font-size: 1.375em; } 209 210h4 { font-size: 1.125em; } 211 212h5 { font-size: 1.125em; } 213 214h6 { font-size: 1em; } 215 216hr { border: solid #ddd; border-width: 1px 0 0; clear: both; margin: 1.25em 0 1.1875em; height: 0; } 217 218/* Helpful Typography Defaults */ 219em, i { font-style: italic; line-height: inherit; } 220 221strong, b { font-weight: bold; line-height: inherit; } 222 223small { font-size: 60%; line-height: inherit; } 224 225code { font-family: Consolas, "Liberation Mono", Courier, monospace; font-weight: normal; color: #264357; } 226 227/* Lists */ 228ul, ol, dl { font-size: 1em; line-height: 1.6; margin-bottom: 0.75em; list-style-position: outside; font-family: Noto, sans-serif; } 229 230ul, ol { margin-left: 1.5em; } 231ul.no-bullet, ol.no-bullet { margin-left: 1.5em; } 232 233/* Unordered Lists */ 234ul li ul, ul li ol { margin-left: 1.25em; margin-bottom: 0; font-size: 1em; /* Override nested font-size change */ } 235ul.square li ul, ul.circle li ul, ul.disc li ul { list-style: inherit; } 236ul.square { list-style-type: square; } 237ul.circle { list-style-type: circle; } 238ul.disc { list-style-type: disc; } 239ul.no-bullet { list-style: none; } 240 241/* Ordered Lists */ 242ol li ul, ol li ol { margin-left: 1.25em; margin-bottom: 0; } 243 244/* Definition Lists */ 245dl dt { margin-bottom: 0.3em; font-weight: bold; } 246dl dd { margin-bottom: 0.75em; } 247 248/* Abbreviations */ 249abbr, acronym { text-transform: uppercase; font-size: 90%; color: black; border-bottom: 1px dotted #ddd; cursor: help; } 250 251abbr { text-transform: none; } 252 253/* Blockquotes */ 254blockquote { margin: 0 0 0.75em; padding: 0.5625em 1.25em 0 1.1875em; border-left: 1px solid #ddd; } 255blockquote cite { display: block; font-size: 0.8125em; color: #365E7A; } 256blockquote cite:before { content: "\2014 \0020"; } 257blockquote cite a, blockquote cite a:visited { color: #365E7A; } 258 259blockquote, blockquote p { line-height: 1.6; color: #333; } 260 261/* Microformats */ 262.vcard { display: inline-block; margin: 0 0 1.25em 0; border: 1px solid #ddd; padding: 0.625em 0.75em; } 263.vcard li { margin: 0; display: block; } 264.vcard .fn { font-weight: bold; font-size: 0.9375em; } 265 266.vevent .summary { font-weight: bold; } 267.vevent abbr { cursor: auto; text-decoration: none; font-weight: bold; border: none; padding: 0 0.0625em; } 268 269@media only screen and (min-width: 768px) { h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6 { line-height: 1.4; } 270 h1 { font-size: 2.75em; } 271 h2 { font-size: 2.3125em; } 272 h3, #toctitle, .sidebarblock > .content > .title { font-size: 1.6875em; } 273 h4 { font-size: 1.4375em; } } 274/* Tables */ 275table { background: #fff; margin-bottom: 1.25em; border: solid 1px #d8d8ce; } 276table thead, table tfoot { background: #eee; font-weight: bold; } 277table thead tr th, table thead tr td, table tfoot tr th, table tfoot tr td { padding: 0.5em 0.625em 0.625em; font-size: inherit; color: #222; text-align: left; } 278table tr th, table tr td { padding: 0.5625em 0.625em; font-size: inherit; color: #6d6e71; } 279table tr.even, table tr.alt, table tr:nth-of-type(even) { background: #f8f8f8; } 280table thead tr th, table tfoot tr th, table tbody tr td, table tr td, table tfoot tr td { display: table-cell; line-height: 1.4; } 281 282body { -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; tab-size: 4; } 283 284h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6 { line-height: 1.4; } 285 286a:hover, a:focus { text-decoration: underline; } 287 288.clearfix:before, .clearfix:after, .float-group:before, .float-group:after { content: " "; display: table; } 289.clearfix:after, .float-group:after { clear: both; } 290 291*:not(pre) > code { font-size: inherit; font-style: normal !important; letter-spacing: 0; padding: 0; background-color: transparent; -webkit-border-radius: 0; border-radius: 0; line-height: inherit; word-wrap: break-word; } 292*:not(pre) > code.nobreak { word-wrap: normal; } 293*:not(pre) > code.nowrap { white-space: nowrap; } 294 295pre, pre > code { line-height: 1.6; color: #264357; font-family: Consolas, "Liberation Mono", Courier, monospace; font-weight: normal; } 296 297em em { font-style: normal; } 298 299strong strong { font-weight: normal; } 300 301.keyseq { color: #333333; } 302 303kbd { font-family: Consolas, "Liberation Mono", Courier, monospace; display: inline-block; color: black; font-size: 0.65em; line-height: 1.45; background-color: #f7f7f7; border: 1px solid #ccc; -webkit-border-radius: 3px; border-radius: 3px; -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 0.1em white inset; -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 0.1em white inset; box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 0.1em white inset; margin: 0 0.15em; padding: 0.2em 0.5em; vertical-align: middle; position: relative; top: -0.1em; white-space: nowrap; } 304 305.keyseq kbd:first-child { margin-left: 0; } 306 307.keyseq kbd:last-child { margin-right: 0; } 308 309.menuseq, .menuref { color: #000; } 310 311.menuseq b:not(.caret), .menuref { font-weight: inherit; } 312 313.menuseq { word-spacing: -0.02em; } 314.menuseq b.caret { font-size: 1.25em; line-height: 0.8; } 315.menuseq i.caret { font-weight: bold; text-align: center; width: 0.45em; } 316 317b.button:before, b.button:after { position: relative; top: -1px; font-weight: normal; } 318 319b.button:before { content: "["; padding: 0 3px 0 2px; } 320 321b.button:after { content: "]"; padding: 0 2px 0 3px; } 322 323#header, #content, #footnotes, #footer { width: 100%; margin-left: auto; margin-right: auto; margin-top: 0; margin-bottom: 0; max-width: 62.5em; *zoom: 1; position: relative; padding-left: 1.5em; padding-right: 1.5em; } 324#header:before, #header:after, #content:before, #content:after, #footnotes:before, #footnotes:after, #footer:before, #footer:after { content: " "; display: table; } 325#header:after, #content:after, #footnotes:after, #footer:after { clear: both; } 326 327#content { margin-top: 1.25em; } 328 329#content:before { content: none; } 330 331#header > h1:first-child { color: black; margin-top: 2.25rem; margin-bottom: 0; } 332#header > h1:first-child + #toc { margin-top: 8px; border-top: 1px solid #ddd; } 333#header > h1:only-child, body.toc2 #header > h1:nth-last-child(2) { border-bottom: 1px solid #ddd; padding-bottom: 8px; } 334#header .details { border-bottom: 1px solid #ddd; line-height: 1.45; padding-top: 0.25em; padding-bottom: 0.25em; padding-left: 0.25em; color: #365E7A; display: -ms-flexbox; display: -webkit-flex; display: flex; -ms-flex-flow: row wrap; -webkit-flex-flow: row wrap; flex-flow: row wrap; } 335#header .details span:first-child { margin-left: -0.125em; } 336#header .details span.email a { color: #333; } 337#header .details br { display: none; } 338#header .details br + span:before { content: "\00a0\2013\00a0"; } 339#header .details br + span.author:before { content: "\00a0\22c5\00a0"; color: #333; } 340#header .details br + span#revremark:before { content: "\00a0|\00a0"; } 341#header #revnumber { text-transform: capitalize; } 342#header #revnumber:after { content: "\00a0"; } 343 344#content > h1:first-child:not([class]) { color: black; border-bottom: 1px solid #ddd; padding-bottom: 8px; margin-top: 0; padding-top: 1rem; margin-bottom: 1.25rem; } 345 346#toc { border-bottom: 0 solid #ddd; padding-bottom: 0.5em; } 347#toc > ul { margin-left: 0.125em; } 348#toc ul.sectlevel0 > li > a { font-style: italic; } 349#toc ul.sectlevel0 ul.sectlevel1 { margin: 0.5em 0; } 350#toc ul { font-family: Noto, sans-serif; list-style-type: none; } 351#toc li { line-height: 1.3334; margin-top: 0.3334em; } 352#toc a { text-decoration: none; } 353#toc a:active { text-decoration: underline; } 354 355#toctitle { color: black; font-size: 1.2em; } 356 357@media only screen and (min-width: 768px) { #toctitle { font-size: 1.375em; } 358 body.toc2 { padding-left: 15em; padding-right: 0; } 359 #toc.toc2 { margin-top: 0 !important; background-color: #fff; position: fixed; width: 15em; left: 0; top: 0; border-right: 1px solid #ddd; border-top-width: 0 !important; border-bottom-width: 0 !important; z-index: 1000; padding: 1.25em 1em; height: 100%; overflow: auto; } 360 #toc.toc2 #toctitle { margin-top: 0; margin-bottom: 0.8rem; font-size: 1.2em; } 361 #toc.toc2 > ul { font-size: 0.9em; margin-bottom: 0; } 362 #toc.toc2 ul ul { margin-left: 0; padding-left: 1em; } 363 #toc.toc2 ul.sectlevel0 ul.sectlevel1 { padding-left: 0; margin-top: 0.5em; margin-bottom: 0.5em; } 364 body.toc2.toc-right { padding-left: 0; padding-right: 15em; } 365 body.toc2.toc-right #toc.toc2 { border-right-width: 0; border-left: 1px solid #ddd; left: auto; right: 0; } } 366@media only screen and (min-width: 1280px) { body.toc2 { padding-left: 20em; padding-right: 0; } 367 #toc.toc2 { width: 20em; } 368 #toc.toc2 #toctitle { font-size: 1.375em; } 369 #toc.toc2 > ul { font-size: 0.95em; } 370 #toc.toc2 ul ul { padding-left: 1.25em; } 371 body.toc2.toc-right { padding-left: 0; padding-right: 20em; } } 372#content #toc { border-style: solid; border-width: 1px; border-color: #e6e6e6; margin-bottom: 1.25em; padding: 1.25em; background: #fff; -webkit-border-radius: 0; border-radius: 0; } 373#content #toc > :first-child { margin-top: 0; } 374#content #toc > :last-child { margin-bottom: 0; } 375 376#footer { max-width: 100%; background-color: none; padding: 1.25em; } 377 378#footer-text { color: black; line-height: 1.44; } 379 380#content { margin-bottom: 0.625em; } 381 382.sect1 { padding-bottom: 0.625em; } 383 384@media only screen and (min-width: 768px) { #content { margin-bottom: 1.25em; } 385 .sect1 { padding-bottom: 1.25em; } } 386.sect1:last-child { padding-bottom: 0; } 387 388.sect1 + .sect1 { border-top: 0 solid #ddd; } 389 390#content h1 > a.anchor, h2 > a.anchor, h3 > a.anchor, #toctitle > a.anchor, .sidebarblock > .content > .title > a.anchor, h4 > a.anchor, h5 > a.anchor, h6 > a.anchor { position: absolute; z-index: 1001; width: 1.5ex; margin-left: -1.5ex; display: block; text-decoration: none !important; visibility: hidden; text-align: center; font-weight: normal; } 391#content h1 > a.anchor:before, h2 > a.anchor:before, h3 > a.anchor:before, #toctitle > a.anchor:before, .sidebarblock > .content > .title > a.anchor:before, h4 > a.anchor:before, h5 > a.anchor:before, h6 > a.anchor:before { content: "\00A7"; font-size: 0.85em; display: block; padding-top: 0.1em; } 392#content h1:hover > a.anchor, #content h1 > a.anchor:hover, h2:hover > a.anchor, h2 > a.anchor:hover, h3:hover > a.anchor, #toctitle:hover > a.anchor, .sidebarblock > .content > .title:hover > a.anchor, h3 > a.anchor:hover, #toctitle > a.anchor:hover, .sidebarblock > .content > .title > a.anchor:hover, h4:hover > a.anchor, h4 > a.anchor:hover, h5:hover > a.anchor, h5 > a.anchor:hover, h6:hover > a.anchor, h6 > a.anchor:hover { visibility: visible; } 393#content h1 > a.link, h2 > a.link, h3 > a.link, #toctitle > a.link, .sidebarblock > .content > .title > a.link, h4 > a.link, h5 > a.link, h6 > a.link { color: black; text-decoration: none; } 394#content h1 > a.link:hover, h2 > a.link:hover, h3 > a.link:hover, #toctitle > a.link:hover, .sidebarblock > .content > .title > a.link:hover, h4 > a.link:hover, h5 > a.link:hover, h6 > a.link:hover { color: black; } 395 396.audioblock, .imageblock, .literalblock, .listingblock, .stemblock, .videoblock { margin-bottom: 1.25em; } 397 398.admonitionblock td.content > .title, .audioblock > .title, .exampleblock > .title, .imageblock > .title, .listingblock > .title, .literalblock > .title, .stemblock > .title, .openblock > .title, .paragraph > .title, .quoteblock > .title, table.tableblock > .title, .verseblock > .title, .videoblock > .title, .dlist > .title, .olist > .title, .ulist > .title, .qlist > .title, .hdlist > .title { text-rendering: optimizeLegibility; text-align: left; } 399 400table.tableblock > caption.title { white-space: nowrap; overflow: visible; max-width: 0; } 401 402.paragraph.lead > p, #preamble > .sectionbody > .paragraph:first-of-type p { color: black; } 403 404table.tableblock #preamble > .sectionbody > .paragraph:first-of-type p { font-size: inherit; } 405 406.admonitionblock > table { border-collapse: separate; border: 0; background: none; width: 100%; } 407.admonitionblock > table td.icon { text-align: center; width: 80px; } 408.admonitionblock > table td.icon img { max-width: initial; } 409.admonitionblock > table td.icon .title { font-weight: bold; font-family: Noto, sans-serif; text-transform: uppercase; } 410.admonitionblock > table td.content { padding-left: 1.125em; padding-right: 1.25em; border-left: 1px solid #ddd; color: #365E7A; } 411.admonitionblock > table td.content > :last-child > :last-child { margin-bottom: 0; } 412 413.exampleblock > .content { border-style: solid; border-width: 1px; border-color: #e6e6e6; margin-bottom: 1.25em; padding: 1.25em; background: #fff; -webkit-border-radius: 0; border-radius: 0; } 414.exampleblock > .content > :first-child { margin-top: 0; } 415.exampleblock > .content > :last-child { margin-bottom: 0; } 416 417.sidebarblock { border-style: solid; border-width: 1px; border-color: #e6e6e6; margin-bottom: 1.25em; padding: 1.25em; background: #fff; -webkit-border-radius: 0; border-radius: 0; } 418.sidebarblock > :first-child { margin-top: 0; } 419.sidebarblock > :last-child { margin-bottom: 0; } 420.sidebarblock > .content > .title { color: black; margin-top: 0; } 421 422.exampleblock > .content > :last-child > :last-child, .exampleblock > .content .olist > ol > li:last-child > :last-child, .exampleblock > .content .ulist > ul > li:last-child > :last-child, .exampleblock > .content .qlist > ol > li:last-child > :last-child, .sidebarblock > .content > :last-child > :last-child, .sidebarblock > .content .olist > ol > li:last-child > :last-child, .sidebarblock > .content .ulist > ul > li:last-child > :last-child, .sidebarblock > .content .qlist > ol > li:last-child > :last-child { margin-bottom: 0; } 423 424.literalblock pre, .listingblock pre:not(.highlight), .listingblock pre[class="highlight"], .listingblock pre[class^="highlight "], .listingblock pre.CodeRay, .listingblock pre.prettyprint { background: #eee; } 425.sidebarblock .literalblock pre, .sidebarblock .listingblock pre:not(.highlight), .sidebarblock .listingblock pre[class="highlight"], .sidebarblock .listingblock pre[class^="highlight "], .sidebarblock .listingblock pre.CodeRay, .sidebarblock .listingblock pre.prettyprint { background: #f2f1f1; } 426 427.literalblock pre, .literalblock pre[class], .listingblock pre, .listingblock pre[class] { border: 1px hidden #666; -webkit-border-radius: 0; border-radius: 0; word-wrap: break-word; padding: 1.25em 1.5625em 1.125em 1.5625em; font-size: 0.8125em; } 428.literalblock pre.nowrap, .literalblock pre[class].nowrap, .listingblock pre.nowrap, .listingblock pre[class].nowrap { overflow-x: auto; white-space: pre; word-wrap: normal; } 429@media only screen and (min-width: 768px) { .literalblock pre, .literalblock pre[class], .listingblock pre, .listingblock pre[class] { font-size: 0.90625em; } } 430@media only screen and (min-width: 1280px) { .literalblock pre, .literalblock pre[class], .listingblock pre, .listingblock pre[class] { font-size: 1em; } } 431 432.literalblock.output pre { color: #eee; background-color: #264357; } 433 434.listingblock pre.highlightjs { padding: 0; } 435.listingblock pre.highlightjs > code { padding: 1.25em 1.5625em 1.125em 1.5625em; -webkit-border-radius: 0; border-radius: 0; } 436 437.listingblock > .content { position: relative; } 438 439.listingblock code[data-lang]:before { display: none; content: attr(data-lang); position: absolute; font-size: 0.75em; top: 0.425rem; right: 0.5rem; line-height: 1; text-transform: uppercase; color: #999; } 440 441.listingblock:hover code[data-lang]:before { display: block; } 442 443.listingblock.terminal pre .command:before { content: attr(data-prompt); padding-right: 0.5em; color: #999; } 444 445.listingblock.terminal pre .command:not([data-prompt]):before { content: "$"; } 446 447table.pyhltable { border-collapse: separate; border: 0; margin-bottom: 0; background: none; } 448 449table.pyhltable td { vertical-align: top; padding-top: 0; padding-bottom: 0; line-height: 1.6; } 450 451table.pyhltable td.code { padding-left: .75em; padding-right: 0; } 452 453pre.pygments .lineno, table.pyhltable td:not(.code) { color: #999; padding-left: 0; padding-right: .5em; border-right: 1px solid #ddd; } 454 455pre.pygments .lineno { display: inline-block; margin-right: .25em; } 456 457table.pyhltable .linenodiv { background: none !important; padding-right: 0 !important; } 458 459.quoteblock { margin: 0 1em 0.75em 1.5em; display: table; } 460.quoteblock > .title { margin-left: -1.5em; margin-bottom: 0.75em; } 461.quoteblock blockquote, .quoteblock blockquote p { color: #333; font-size: 1.15rem; line-height: 1.75; word-spacing: 0.1em; letter-spacing: 0; font-style: italic; text-align: justify; } 462.quoteblock blockquote { margin: 0; padding: 0; border: 0; } 463.quoteblock blockquote:before { content: "\201c"; float: left; font-size: 2.75em; font-weight: bold; line-height: 0.6em; margin-left: -0.6em; color: black; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); } 464.quoteblock blockquote > .paragraph:last-child p { margin-bottom: 0; } 465.quoteblock .attribution { margin-top: 0.5em; margin-right: 0.5ex; text-align: right; } 466.quoteblock .quoteblock { margin-left: 0; margin-right: 0; padding: 0.5em 0; border-left: 3px solid #365E7A; } 467.quoteblock .quoteblock blockquote { padding: 0 0 0 0.75em; } 468.quoteblock .quoteblock blockquote:before { display: none; } 469 470.verseblock { margin: 0 1em 0.75em 1em; } 471.verseblock pre { font-family: "Open Sans", "DejaVu Sans", sans; font-size: 1.15rem; color: #333; font-weight: 300; text-rendering: optimizeLegibility; } 472.verseblock pre strong { font-weight: 400; } 473.verseblock .attribution { margin-top: 1.25rem; margin-left: 0.5ex; } 474 475.quoteblock .attribution, .verseblock .attribution { font-size: 0.8125em; line-height: 1.45; font-style: italic; } 476.quoteblock .attribution br, .verseblock .attribution br { display: none; } 477.quoteblock .attribution cite, .verseblock .attribution cite { display: block; letter-spacing: -0.025em; color: #365E7A; } 478 479.quoteblock.abstract { margin: 0 0 0.75em 0; display: block; } 480.quoteblock.abstract blockquote, .quoteblock.abstract blockquote p { text-align: left; word-spacing: 0; } 481.quoteblock.abstract blockquote:before, .quoteblock.abstract blockquote p:first-of-type:before { display: none; } 482 483table.tableblock { max-width: 100%; border-collapse: separate; } 484table.tableblock td > .paragraph:last-child p > p:last-child, table.tableblock th > p:last-child, table.tableblock td > p:last-child { margin-bottom: 0; } 485 486table.tableblock, th.tableblock, td.tableblock { border: 0 solid #d8d8ce; } 487 488table.grid-all > thead > tr > .tableblock, table.grid-all > tbody > tr > .tableblock { border-width: 0 1px 1px 0; } 489 490table.grid-all > tfoot > tr > .tableblock { border-width: 1px 1px 0 0; } 491 492table.grid-cols > * > tr > .tableblock { border-width: 0 1px 0 0; } 493 494table.grid-rows > thead > tr > .tableblock, table.grid-rows > tbody > tr > .tableblock { border-width: 0 0 1px 0; } 495 496table.grid-rows > tfoot > tr > .tableblock { border-width: 1px 0 0 0; } 497 498table.grid-all > * > tr > .tableblock:last-child, table.grid-cols > * > tr > .tableblock:last-child { border-right-width: 0; } 499 500table.grid-all > tbody > tr:last-child > .tableblock, table.grid-all > thead:last-child > tr > .tableblock, table.grid-rows > tbody > tr:last-child > .tableblock, table.grid-rows > thead:last-child > tr > .tableblock { border-bottom-width: 0; } 501 502table.frame-all { border-width: 1px; } 503 504table.frame-sides { border-width: 0 1px; } 505 506table.frame-topbot { border-width: 1px 0; } 507 508th.halign-left, td.halign-left { text-align: left; } 509 510th.halign-right, td.halign-right { text-align: right; } 511 512th.halign-center, td.halign-center { text-align: center; } 513 514th.valign-top, td.valign-top { vertical-align: top; } 515 516th.valign-bottom, td.valign-bottom { vertical-align: bottom; } 517 518th.valign-middle, td.valign-middle { vertical-align: middle; } 519 520table thead th, table tfoot th { font-weight: bold; } 521 522tbody tr th { display: table-cell; line-height: 1.4; background: #eee; } 523 524tbody tr th, tbody tr th p, tfoot tr th, tfoot tr th p { color: #222; font-weight: bold; } 525 526p.tableblock > code:only-child { background: none; padding: 0; } 527 528p.tableblock { font-size: 1em; } 529 530td > div.verse { white-space: pre; } 531 532ol { margin-left: 1.75em; } 533 534ul li ol { margin-left: 1.5em; } 535 536dl dd { margin-left: 1.125em; } 537 538dl dd:last-child, dl dd:last-child > :last-child { margin-bottom: 0; } 539 540ol > li p, ul > li p, ul dd, ol dd, .olist .olist, .ulist .ulist, .ulist .olist, .olist .ulist { margin-bottom: 0.375em; } 541 542ul.checklist, ul.none, ol.none, ul.no-bullet, ol.no-bullet, ol.unnumbered, ul.unstyled, ol.unstyled { list-style-type: none; } 543 544ul.no-bullet, ol.no-bullet, ol.unnumbered { margin-left: 0.625em; } 545 546ul.unstyled, ol.unstyled { margin-left: 0; } 547 548ul.checklist { margin-left: 0.625em; } 549 550ul.checklist li > p:first-child > .fa-square-o:first-child, ul.checklist li > p:first-child > .fa-check-square-o:first-child { width: 1.25em; font-size: 0.8em; position: relative; bottom: 0.125em; } 551 552ul.checklist li > p:first-child > input[type="checkbox"]:first-child { margin-right: 0.25em; } 553 554ul.inline { display: -ms-flexbox; display: -webkit-box; display: flex; -ms-flex-flow: row wrap; -webkit-flex-flow: row wrap; flex-flow: row wrap; list-style: none; margin: 0 0 0.375em -0.75em; } 555 556ul.inline > li { margin-left: 0.75em; } 557 558.unstyled dl dt { font-weight: normal; font-style: normal; } 559 560ol.arabic { list-style-type: decimal; } 561 562ol.decimal { list-style-type: decimal-leading-zero; } 563 564ol.loweralpha { list-style-type: lower-alpha; } 565 566ol.upperalpha { list-style-type: upper-alpha; } 567 568ol.lowerroman { list-style-type: lower-roman; } 569 570ol.upperroman { list-style-type: upper-roman; } 571 572ol.lowergreek { list-style-type: lower-greek; } 573 574.hdlist > table, .colist > table { border: 0; background: none; } 575.hdlist > table > tbody > tr, .colist > table > tbody > tr { background: none; } 576 577td.hdlist1, td.hdlist2 { vertical-align: top; padding: 0 0.625em; } 578 579td.hdlist1 { font-weight: bold; padding-bottom: 0.75em; } 580 581.literalblock + .colist, .listingblock + .colist { margin-top: -0.5em; } 582 583.colist > table tr > td:first-of-type { padding: 0.4em 0.75em 0 0.75em; line-height: 1; vertical-align: top; } 584.colist > table tr > td:first-of-type img { max-width: initial; } 585.colist > table tr > td:last-of-type { padding: 0.25em 0; } 586 587.thumb, .th { line-height: 0; display: inline-block; border: solid 4px #fff; -webkit-box-shadow: 0 0 0 1px #ddd; box-shadow: 0 0 0 1px #ddd; } 588 589.imageblock.left, .imageblock[style*="float: left"] { margin: 0.25em 0.625em 1.25em 0; } 590.imageblock.right, .imageblock[style*="float: right"] { margin: 0.25em 0 1.25em 0.625em; } 591.imageblock > .title { margin-bottom: 0; } 592.imageblock.thumb, .imageblock.th { border-width: 6px; } 593.imageblock.thumb > .title, .imageblock.th > .title { padding: 0 0.125em; } 594 595.image.left, .image.right { margin-top: 0.25em; margin-bottom: 0.25em; display: inline-block; line-height: 0; } 596.image.left { margin-right: 0.625em; } 597.image.right { margin-left: 0.625em; } 598 599a.image { text-decoration: none; display: inline-block; } 600a.image object { pointer-events: none; } 601 602sup.footnote, sup.footnoteref { font-size: 0.875em; position: static; vertical-align: super; } 603sup.footnote a, sup.footnoteref a { text-decoration: none; } 604sup.footnote a:active, sup.footnoteref a:active { text-decoration: underline; } 605 606#footnotes { padding-top: 0.75em; padding-bottom: 0.75em; margin-bottom: 0.625em; } 607#footnotes hr { width: 20%; min-width: 6.25em; margin: -0.25em 0 0.75em 0; border-width: 1px 0 0 0; } 608#footnotes .footnote { padding: 0 0.375em 0 0.225em; line-height: 1.3334; font-size: 0.875em; margin-left: 1.2em; margin-bottom: 0.2em; } 609#footnotes .footnote a:first-of-type { font-weight: bold; text-decoration: none; margin-left: -1.05em; } 610#footnotes .footnote:last-of-type { margin-bottom: 0; } 611#content #footnotes { margin-top: -0.625em; margin-bottom: 0; padding: 0.75em 0; } 612 613.gist .file-data > table { border: 0; background: #fff; width: 100%; margin-bottom: 0; } 614.gist .file-data > table td.line-data { width: 99%; } 615 616div.unbreakable { page-break-inside: avoid; } 617 618.big { font-size: larger; } 619 620.small { font-size: smaller; } 621 622.underline { text-decoration: underline; } 623 624.overline { text-decoration: overline; } 625 626.line-through { text-decoration: line-through; } 627 628.aqua { color: #00bfbf; } 629 630.aqua-background { background-color: #00fafa; } 631 632.black { color: black; } 633 634.black-background { background-color: black; } 635 636.blue { color: #0000bf; } 637 638.blue-background { background-color: #0000fa; } 639 640.fuchsia { color: #bf00bf; } 641 642.fuchsia-background { background-color: #fa00fa; } 643 644.gray { color: #606060; } 645 646.gray-background { background-color: #7d7d7d; } 647 648.green { color: #006000; } 649 650.green-background { background-color: #007d00; } 651 652.lime { color: #00bf00; } 653 654.lime-background { background-color: #00fa00; } 655 656.maroon { color: #600000; } 657 658.maroon-background { background-color: #7d0000; } 659 660.navy { color: #000060; } 661 662.navy-background { background-color: #00007d; } 663 664.olive { color: #606000; } 665 666.olive-background { background-color: #7d7d00; } 667 668.purple { color: #600060; } 669 670.purple-background { background-color: #7d007d; } 671 672.red { color: #bf0000; } 673 674.red-background { background-color: #fa0000; } 675 676.silver { color: #909090; } 677 678.silver-background { background-color: #bcbcbc; } 679 680.teal { color: #006060; } 681 682.teal-background { background-color: #007d7d; } 683 684.white { color: #bfbfbf; } 685 686.white-background { background-color: #fafafa; } 687 688.yellow { color: #bfbf00; } 689 690.yellow-background { background-color: #fafa00; } 691 692span.icon > .fa { cursor: default; } 693a span.icon > .fa { cursor: inherit; } 694 695.admonitionblock td.icon [class^="fa icon-"] { font-size: 2.5em; text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5); cursor: default; } 696.admonitionblock td.icon .icon-note:before { content: "\f05a"; color: #29475c; } 697.admonitionblock td.icon .icon-tip:before { content: "\f0eb"; text-shadow: 1px 1px 2px rgba(155, 155, 0, 0.8); color: #111; } 698.admonitionblock td.icon .icon-warning:before { content: "\f071"; color: #bf6900; } 699.admonitionblock td.icon .icon-caution:before { content: "\f06d"; color: #bf3400; } 700.admonitionblock td.icon .icon-important:before { content: "\f06a"; color: #bf0000; } 701 702.conum[data-value] { display: inline-block; color: #fff !important; background-color: black; -webkit-border-radius: 100px; border-radius: 100px; text-align: center; font-size: 0.75em; width: 1.67em; height: 1.67em; line-height: 1.67em; font-family: "Open Sans", "DejaVu Sans", sans-serif; font-style: normal; font-weight: bold; } 703.conum[data-value] * { color: #fff !important; } 704.conum[data-value] + b { display: none; } 705.conum[data-value]:after { content: attr(data-value); } 706pre .conum[data-value] { position: relative; top: -0.125em; } 707 708b.conum * { color: inherit !important; } 709 710.conum:not([data-value]):empty { display: none; } 711 712h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6 { border-bottom: 1px solid #ddd; } 713 714.sect1 { padding-bottom: 0; } 715 716#toctitle { color: #00406F; font-weight: normal; margin-top: 1.5em; } 717 718.sidebarblock { border-color: #aaa; } 719 720code { -webkit-border-radius: 4px; border-radius: 4px; } 721 722p.tableblock.header { color: #6d6e71; } 723 724.literalblock pre, .listingblock pre { background: #eee; } 725 726/* From https://github.com/KhronosGroup/Vulkan-Docs/pull/901 */ 727a code { color: inherit; } 728 729/* From https://github.com/KhronosGroup/Vulkan-Docs/pull/1157 */ 730/* Make VUID anchor handles*/ 731li > p > a[id^="VUID-"] { visibility: hidden; position: absolute; z-index: 1001; width: 2.2ex; margin-left: -2.2ex; display: block; text-decoration: none !important; text-align: center; font-weight: normal; } 732 733li > p > a[id^="VUID-"]:before { content: "\00A7"; font-size: 1em; display: block; padding-top: 0em; background: #fff; } 734 735li > p:hover > a[id^="VUID-"], li > p > a[id^="VUID-"]:hover { visibility: visible; } 736 737li > p > a[id^="VUID-"].link { color: black; text-decoration: none; } 738 739/* TODO: not quite sure what these two do */ 740li > p > a[id^="VUID-"].link:hover { color: black; } 741 742.vuid { color: #4d4d4d; font-family: monospace; } 743 744</style> 745<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> 746<style> 747pre.rouge table td { padding: 5px; } 748pre.rouge table pre { margin: 0; } 749pre.rouge .cm { 750 color: #999988; 751 font-style: italic; 752} 753pre.rouge .cp { 754 color: #999999; 755 font-weight: bold; 756} 757pre.rouge .c1 { 758 color: #999988; 759 font-style: italic; 760} 761pre.rouge .cs { 762 color: #999999; 763 font-weight: bold; 764 font-style: italic; 765} 766pre.rouge .c, pre.rouge .ch, pre.rouge .cd, pre.rouge .cpf { 767 color: #999988; 768 font-style: italic; 769} 770pre.rouge .err { 771 color: #a61717; 772 background-color: #e3d2d2; 773} 774pre.rouge .gd { 775 color: #000000; 776 background-color: #ffdddd; 777} 778pre.rouge .ge { 779 color: #000000; 780 font-style: italic; 781} 782pre.rouge .gr { 783 color: #aa0000; 784} 785pre.rouge .gh { 786 color: #999999; 787} 788pre.rouge .gi { 789 color: #000000; 790 background-color: #ddffdd; 791} 792pre.rouge .go { 793 color: #888888; 794} 795pre.rouge .gp { 796 color: #555555; 797} 798pre.rouge .gs { 799 font-weight: bold; 800} 801pre.rouge .gu { 802 color: #aaaaaa; 803} 804pre.rouge .gt { 805 color: #aa0000; 806} 807pre.rouge .kc { 808 color: #000000; 809 font-weight: bold; 810} 811pre.rouge .kd { 812 color: #000000; 813 font-weight: bold; 814} 815pre.rouge .kn { 816 color: #000000; 817 font-weight: bold; 818} 819pre.rouge .kp { 820 color: #000000; 821 font-weight: bold; 822} 823pre.rouge .kr { 824 color: #000000; 825 font-weight: bold; 826} 827pre.rouge .kt { 828 color: #445588; 829 font-weight: bold; 830} 831pre.rouge .k, pre.rouge .kv { 832 color: #000000; 833 font-weight: bold; 834} 835pre.rouge .mf { 836 color: #009999; 837} 838pre.rouge .mh { 839 color: #009999; 840} 841pre.rouge .il { 842 color: #009999; 843} 844pre.rouge .mi { 845 color: #009999; 846} 847pre.rouge .mo { 848 color: #009999; 849} 850pre.rouge .m, pre.rouge .mb, pre.rouge .mx { 851 color: #009999; 852} 853pre.rouge .sa { 854 color: #000000; 855 font-weight: bold; 856} 857pre.rouge .sb { 858 color: #d14; 859} 860pre.rouge .sc { 861 color: #d14; 862} 863pre.rouge .sd { 864 color: #d14; 865} 866pre.rouge .s2 { 867 color: #d14; 868} 869pre.rouge .se { 870 color: #d14; 871} 872pre.rouge .sh { 873 color: #d14; 874} 875pre.rouge .si { 876 color: #d14; 877} 878pre.rouge .sx { 879 color: #d14; 880} 881pre.rouge .sr { 882 color: #009926; 883} 884pre.rouge .s1 { 885 color: #d14; 886} 887pre.rouge .ss { 888 color: #990073; 889} 890pre.rouge .s, pre.rouge .dl { 891 color: #d14; 892} 893pre.rouge .na { 894 color: #008080; 895} 896pre.rouge .bp { 897 color: #999999; 898} 899pre.rouge .nb { 900 color: #0086B3; 901} 902pre.rouge .nc { 903 color: #445588; 904 font-weight: bold; 905} 906pre.rouge .no { 907 color: #008080; 908} 909pre.rouge .nd { 910 color: #3c5d5d; 911 font-weight: bold; 912} 913pre.rouge .ni { 914 color: #800080; 915} 916pre.rouge .ne { 917 color: #990000; 918 font-weight: bold; 919} 920pre.rouge .nf, pre.rouge .fm { 921 color: #990000; 922 font-weight: bold; 923} 924pre.rouge .nl { 925 color: #990000; 926 font-weight: bold; 927} 928pre.rouge .nn { 929 color: #555555; 930} 931pre.rouge .nt { 932 color: #000080; 933} 934pre.rouge .vc { 935 color: #008080; 936} 937pre.rouge .vg { 938 color: #008080; 939} 940pre.rouge .vi { 941 color: #008080; 942} 943pre.rouge .nv, pre.rouge .vm { 944 color: #008080; 945} 946pre.rouge .ow { 947 color: #000000; 948 font-weight: bold; 949} 950pre.rouge .o { 951 color: #000000; 952 font-weight: bold; 953} 954pre.rouge .w { 955 color: #bbbbbb; 956} 957pre.rouge { 958 background-color: #f8f8f8; 959} 960</style> 961<style> 962/* Khronos overrides for Rouge 'github' theme for accessibility */ 963/* Basically everything is overridden, but it is unclear how to add a new Rouge theme */ 964/* Codelike overrides */ 965pre.rouge .cm, pre.rouge .cp, pre.rouge .c1, pre.rouge .cs, 966pre.rouge .c, pre.rouge .ch, pre.rouge .cd, pre.rouge .cpf, 967pre.rouge .gh, pre.rouge .bp { 968 color: #5f5f5f; 969} 970/* Numberlike overrides */ 971pre.rouge .mf, pre.rouge .mh, pre.rouge .il, pre.rouge .mi, 972pre.rouge .mo, pre.rouge .m, pre.rouge .mb, pre.rouge .mx { 973 color: #007f7f; 974} 975/* Namelike overrides */ 976pre.rouge .ne, pre.rouge .nf, pre.rouge .fm, pre.rouge .nl { 977 color: #5f0000; 978} 979/* Other things ANDI warns about - unsure of their purposes */ 980pre.rouge .go, pre.rouge .gu { 981 color: #727272; 982} 983pre.rouge .sr { 984 color: #008512; 985} 986pre.rouge .na, pre.rouge .nb { 987 color: #007f7f; 988} 989pre.rouge .no, pre.rouge .vc, pre.rouge .vg, pre.rouge .vi, 990pre.rouge .nv, pre.rouge .vm { 991 color: #007f7f; 992} 993pre.rouge .w { 994 color: #727272; 995} 996</style> 997 998<!-- dragged in by font-awesome css included by asciidoctor, but preloaded in this extension for convenience --> 999<link rel="preload" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/fonts/fontawesome-webfont.woff2?v=4.7.0" as="font" type="font/woff2" crossorigin=""> 1000 1001<!-- Note: Chrome needs crossorigin="" even for same-origin fonts --> 1002<link rel="preload" href="../katex/fonts/KaTeX_Main-Bold.woff2" as="font" type="font/woff2" crossorigin=""> 1003<link rel="preload" href="../katex/fonts/KaTeX_Main-Italic.woff2" as="font" type="font/woff2" crossorigin=""> 1004<link rel="preload" href="../katex/fonts/KaTeX_Main-Regular.woff2" as="font" type="font/woff2" crossorigin=""> 1005<link rel="preload" href="../katex/fonts/KaTeX_Math-Italic.woff2" as="font" type="font/woff2" crossorigin=""> 1006<link rel="preload" href="../katex/fonts/KaTeX_Size1-Regular.woff2" as="font" type="font/woff2" crossorigin=""> 1007<link rel="preload" href="../katex/fonts/KaTeX_Size2-Regular.woff2" as="font" type="font/woff2" crossorigin=""> 1008<link rel="preload" href="../katex/fonts/KaTeX_Size3-Regular.woff2" as="font" type="font/woff2" crossorigin=""> 1009<link rel="preload" href="../katex/fonts/KaTeX_Size4-Regular.woff2" as="font" type="font/woff2" crossorigin=""> 1010<link rel="preload" href="../katex/fonts/KaTeX_Typewriter-Regular.woff2" as="font" type="font/woff2" crossorigin=""><link rel="stylesheet" href="../katex/katex.min.css"> 1011<!--ChunkedSearchJSMarker--> 1012<style> 1013 #loading_msg { 1014 width: 100%; 1015 margin-left: auto; 1016 margin-right: auto; 1017 margin-top: 1ex; 1018 margin-bottom: 1ex; 1019 max-width: 62.5em; 1020 position: relative; 1021 padding-left: 1.5em; 1022 padding-right: 1.5em; 1023 } 1024 .hidden {display: none;} 1025</style> 1026<script> 1027 function hideElement(e){ 1028 e.setAttribute("hidden", ""); 1029 e.classList.add("hidden"); 1030 } 1031 1032 function unhideElement(e){ 1033 e.classList.remove("hidden"); 1034 e.removeAttribute("hidden"); 1035 } 1036 1037 function hideLoadableContent(){ 1038 unhideElement( document.getElementById("loading_msg") ); 1039 for( var loadable of document.getElementsByClassName("loadable") ) hideElement(loadable); 1040 } 1041 1042 function unhideLoadableContent(){ 1043 hideElement( document.getElementById("loading_msg") ); 1044 for( var loadable of document.getElementsByClassName("loadable") ) unhideElement(loadable); 1045 } 1046 1047 window.addEventListener("load", unhideLoadableContent); 1048</script> 1049</head> 1050<body class="book toc2 toc-left"> 1051<div id="header"> 1052<h1>Test<sup>®</sup> 1.2.3 - (with VK_KHR_copy_commands2, VK_KHR_get_physical_device_properties2)</h1> 1053<div class="details"> 1054<span id="author" class="author">The Khronos<sup>®</sup> Vulkan Working Group</span><br> 1055<span id="revnumber">version 1.2.3,</span> 1056<span id="revdate">"2100-11-22 00:33:44Z"</span> 1057<br><span id="revremark">"test build"</span> 1058</div> 1059<div id="toc" class="toc2"> 1060<div id="toctitle">Table of Contents</div> 1061<ul class="sectlevel1"> 1062<li><a href="#preamble">1. Preamble</a></li> 1063<li><a href="#lorem">2. Lorem</a> 1064<ul class="sectlevel2"> 1065<li><a href="#lorem-subchapter">2.1. Lorem Subchapter</a></li> 1066</ul> 1067</li> 1068<li><a href="#extensions">Layers & Extensions (Informative)</a> 1069<ul class="sectlevel2"> 1070<li><a href="#_extension_dependencies">Extension Dependencies</a></li> 1071</ul> 1072</li> 1073</ul> 1074</div> 1075</div> 1076<div id="loading_msg" class="hidden" hidden><p>Loading… please wait.</p></div> 1077<!--ChunkedSearchboxMarker--> 1078<div id="content" class="loadable" ><script>hideLoadableContent();</script> 1079<div id="preamble"> 1080<div class="sectionbody"> 1081<!-- toc disabled --> 1082<div style="page-break-after: always;"></div> 1083</div> 1084</div> 1085<div class="sect1"> 1086<h2 id="preamble"><a class="anchor" href="#preamble"></a>1. Preamble</h2> 1087<div class="sectionbody"> 1088<div class="paragraph"> 1089<p>Copyright 2014-2023 The Khronos Group Inc.</p> 1090</div> 1091<div class="paragraph"> 1092<p>This Specification is protected by copyright laws and contains material 1093proprietary to Khronos. Except as described by these terms, it or any 1094components may not be reproduced, republished, distributed, transmitted, 1095displayed, broadcast or otherwise exploited in any manner without the 1096express prior written permission of Khronos.</p> 1097</div> 1098<div class="paragraph"> 1099<p>Khronos grants a conditional copyright license to use and reproduce the 1100unmodified Specification for any purpose, without fee or royalty, EXCEPT no 1101licenses to any patent, trademark or other intellectual property rights are 1102granted under these terms.</p> 1103</div> 1104<div class="paragraph"> 1105<p>Khronos makes no, and expressly disclaims any, representations or 1106warranties, express or implied, regarding this Specification, including, 1107without limitation: merchantability, fitness for a particular purpose, 1108non-infringement of any intellectual property, correctness, accuracy, 1109completeness, timeliness, and reliability. Under no circumstances will 1110Khronos, or any of its Promoters, Contributors or Members, or their 1111respective partners, officers, directors, employees, agents or 1112representatives be liable for any damages, whether direct, indirect, special 1113or consequential damages for lost revenues, lost profits, or otherwise, 1114arising from or in connection with these materials.</p> 1115</div> 1116<div class="paragraph"> 1117<p>This document contains extensions which are not ratified by Khronos, and as 1118such is not a ratified Specification, though it contains text from (and is a 1119superset of) the ratified Vulkan Specification. The ratified versions 1120of 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) 1121and <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) 1122.</p> 1123</div> 1124<div class="paragraph"> 1125<p>This Specification contains substantially unmodified functionality from, and 1126is a successor to, Khronos specifications including 1127OpenGL, OpenGL ES and OpenCL.</p> 1128</div> 1129<div class="paragraph"> 1130<p>The Khronos Intellectual Property Rights Policy defines the terms 'Scope', 1131'Compliant Portion', and 'Necessary Patent Claims'.</p> 1132</div> 1133<div class="paragraph"> 1134<p>Some parts of this Specification are purely informative and so are EXCLUDED 1135the Scope of this Specification. The <a href="#introduction-conventions">[introduction-conventions]</a> section of 1136the <a href="#introduction">[introduction]</a> defines how these parts of the Specification are 1137identified.</p> 1138</div> 1139<div class="paragraph"> 1140<p>Where this Specification uses <a href="#introduction-technical-terminology">technical terminology</a>, defined in the <a href="#glossary">Glossary</a> or otherwise, 1141that refer to enabling technologies that are not expressly set forth in this 1142Specification, those enabling technologies are EXCLUDED from the Scope of 1143this Specification. For clarity, enabling technologies not disclosed with 1144particularity in this Specification (e.g. semiconductor manufacturing 1145technology, hardware architecture, processor architecture or 1146microarchitecture, memory architecture, compiler technology, object oriented 1147technology, basic operating system technology, compression technology, 1148algorithms, and so on) are NOT to be considered expressly set forth; only 1149those application program interfaces and data structures disclosed with 1150particularity are included in the Scope of this Specification.</p> 1151</div> 1152<div class="paragraph"> 1153<p>For purposes of the Khronos Intellectual Property Rights Policy as it 1154relates to the definition of Necessary Patent Claims, all recommended or 1155optional features, behaviors and functionality set forth in this 1156Specification, if implemented, are considered to be included as Compliant 1157Portions.</p> 1158</div> 1159<div class="paragraph"> 1160<p>Where this Specification identifies specific sections of external 1161references, only those specifically identified sections define 1162<a href="#introduction-normative-references">normative</a> 1163functionality. The Khronos Intellectual Property Rights Policy excludes 1164external references to materials and associated enabling technology not 1165created by Khronos from the Scope of this Specification, and any licenses 1166that may be required to implement such referenced materials and associated 1167technologies must be obtained separately and may involve royalty payments.</p> 1168</div> 1169<div class="paragraph"> 1170<p>Khronos and Vulkan are registered trademarks, and SPIR-V is a trademark of 1171The Khronos Group Inc. OpenCL is a trademark of Apple Inc., used under 1172license by Khronos. OpenGL is a registered trademark and the OpenGL ES logo 1173is a trademark of Hewlett Packard Enterprise, used under license by Khronos. 1174ASTC is a trademark of ARM Holdings PLC. All other product names, 1175trademarks, and/or company names are used solely for identification and 1176belong to their respective owners.</p> 1177</div> 1178</div> 1179</div> 1180<div class="sect1"> 1181<h2 id="lorem"><a class="anchor" href="#lorem"></a>2. Lorem</h2> 1182<div class="sectionbody"> 1183<div class="paragraph"> 1184<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor 1185incididunt ut labore et dolore magna aliqua. Congue eu consequat ac felis donec 1186et odio. Enim nec dui nunc mattis enim. Nulla facilisi etiam dignissim diam 1187quis enim lobortis scelerisque fermentum. Nam libero justo laoreet sit amet. 1188Lacus luctus accumsan tortor posuere. Ultrices tincidunt arcu non sodales. Ut 1189enim blandit volutpat maecenas volutpat blandit aliquam etiam. Sed id semper 1190risus in. Natoque penatibus et magnis dis parturient montes.</p> 1191</div> 1192<div class="paragraph"> 1193<p>Vestibulum morbi blandit cursus risus at ultrices mi tempus imperdiet. 1194Dignissim cras tincidunt lobortis feugiat vivamus at augue eget arcu. Ultricies 1195mi eget mauris pharetra. Ac turpis egestas maecenas pharetra convallis posuere 1196morbi leo urna. Cras sed felis eget velit aliquet. Sit amet mauris commodo quis 1197imperdiet. Malesuada pellentesque elit eget gravida cum sociis natoque. 1198Faucibus pulvinar elementum integer enim neque volutpat ac tincidunt vitae.</p> 1199</div> 1200<div class="sect2"> 1201<h3 id="lorem-subchapter"><a class="anchor" href="#lorem-subchapter"></a>2.1. Lorem Subchapter</h3> 1202<div class="openblock"> 1203<div class="content"> 1204<div class="paragraph"> 1205<p>Sed risus pretium quam vulputate dignissim suspendisse in est ante:</p> 1206</div> 1207<div id="vkCmdCopyBufferToImage2KHR" class="listingblock"> 1208<div class="content"> 1209<pre class="rouge highlight"><code data-lang="c++"><span class="c1">// Provided by VK_KHR_copy_commands2</span> 1210<span class="kt">void</span> <span class="nf">vkCmdCopyBufferToImage2KHR</span><span class="p">(</span> 1211 <span class="n">VkCommandBuffer</span> <span class="n">commandBuffer</span><span class="p">,</span> 1212 <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> 1213</div> 1214</div> 1215<div class="ulist"> 1216<ul> 1217<li> 1218<p><code>commandBuffer</code> Mauris commodo quis imperdiet massa tincidunt nunc pulvinar.</p> 1219</li> 1220<li> 1221<p><code>pCopyBufferToImageInfo</code> Odio morbi quis commodo odio aenean sed <a href="#VkCopyBufferToImageInfo2">VkCopyBufferToImageInfo2</a>.</p> 1222</li> 1223</ul> 1224</div> 1225<div class="paragraph"> 1226<p>Ac tortor dignissim convallis aenean et tortor. Amet porttitor eget dolor morbi 1227non arcu. Consequat interdum varius sit amet. Tempus egestas sed sed risus 1228pretium quam. Gravida in fermentum et sollicitudin ac orci phasellus egestas. 1229Nulla facilisi etiam dignissim diam quis enim lobortis scelerisque fermentum. 1230Tempus quam pellentesque nec nam aliquam. A pellentesque sit amet porttitor 1231eget. Viverra justo nec ultrices dui sapien eget mi. Nullam vehicula ipsum a 1232arcu. Amet volutpat consequat mauris nunc congue nisi. Tincidunt arcu non 1233sodales neque.</p> 1234</div> 1235<div class="sidebarblock"> 1236<div class="content"> 1237<div class="title">Valid Usage</div> 1238<div class="ulist"> 1239<ul> 1240<li> 1241<p><a id="VUID-vkCmdCopyBufferToImage2-commandBuffer-97737" href="#VUID-vkCmdCopyBufferToImage2-commandBuffer-97737"></a> <span class="vuid">VUID-vkCmdCopyBufferToImage2-commandBuffer-97737</span><br> 1242 1243If the queue family used to create the <a href="#VkCommandPool">VkCommandPool</a> which 1244<code>commandBuffer</code> was allocated from does not support 1245<code>VK_QUEUE_GRAPHICS_BIT</code> or <code>VK_QUEUE_COMPUTE_BIT</code>, the 1246<code>bufferOffset</code> member of any element of <code>pCopyBufferToImageInfo->pRegions</code> <strong class="purple">must</strong> be a 1247multiple of <code>4</code></p> 1248</li> 1249<li> 1250<p><a id="VUID-vkCmdCopyBufferToImage2-imageOffset-97738" href="#VUID-vkCmdCopyBufferToImage2-imageOffset-97738"></a> <span class="vuid">VUID-vkCmdCopyBufferToImage2-imageOffset-97738</span><br> 1251 1252The <code>imageOffset</code> and <code>imageExtent</code> members of each element of 1253<code>pCopyBufferToImageInfo->pRegions</code> <strong class="purple">must</strong> respect the image transfer granularity requirements 1254of <code>commandBuffer</code>’s command pool’s queue family, as described in 1255<a href="#VkQueueFamilyProperties">VkQueueFamilyProperties</a></p> 1256</li> 1257<li> 1258<p><a id="VUID-vkCmdCopyBufferToImage2-commandBuffer-97739" href="#VUID-vkCmdCopyBufferToImage2-commandBuffer-97739"></a> <span class="vuid">VUID-vkCmdCopyBufferToImage2-commandBuffer-97739</span><br> 1259 1260If the queue family used to create the <a href="#VkCommandPool">VkCommandPool</a> which 1261<code>commandBuffer</code> was allocated from does not support 1262<code>VK_QUEUE_GRAPHICS_BIT</code>, for each element of <code>pCopyBufferToImageInfo->pRegions</code>, the 1263<code>aspectMask</code> member of <code>imageSubresource</code> <strong class="purple">must</strong> not be 1264<code>VK_IMAGE_ASPECT_DEPTH_BIT</code> or <code>VK_IMAGE_ASPECT_STENCIL_BIT</code></p> 1265</li> 1266</ul> 1267</div> 1268</div> 1269</div> 1270<div class="sidebarblock"> 1271<div class="content"> 1272<div class="title">Valid Usage (Implicit)</div> 1273<div class="ulist"> 1274<ul> 1275<li> 1276<p><a id="VUID-vkCmdCopyBufferToImage2-commandBuffer-parameter" href="#VUID-vkCmdCopyBufferToImage2-commandBuffer-parameter"></a> <span class="vuid">VUID-vkCmdCopyBufferToImage2-commandBuffer-parameter</span><br> 1277 <code>commandBuffer</code> <strong class="purple">must</strong> be a valid <a href="#VkCommandBuffer">VkCommandBuffer</a> handle</p> 1278</li> 1279<li> 1280<p><a id="VUID-vkCmdCopyBufferToImage2-pCopyBufferToImageInfo-parameter" href="#VUID-vkCmdCopyBufferToImage2-pCopyBufferToImageInfo-parameter"></a> <span class="vuid">VUID-vkCmdCopyBufferToImage2-pCopyBufferToImageInfo-parameter</span><br> 1281 <code>pCopyBufferToImageInfo</code> <strong class="purple">must</strong> be a valid pointer to a valid <a href="#VkCopyBufferToImageInfo2">VkCopyBufferToImageInfo2</a> structure</p> 1282</li> 1283<li> 1284<p><a id="VUID-vkCmdCopyBufferToImage2-commandBuffer-recording" href="#VUID-vkCmdCopyBufferToImage2-commandBuffer-recording"></a> <span class="vuid">VUID-vkCmdCopyBufferToImage2-commandBuffer-recording</span><br> 1285 <code>commandBuffer</code> <strong class="purple">must</strong> be in the <a href="#commandbuffers-lifecycle">recording state</a></p> 1286</li> 1287<li> 1288<p><a id="VUID-vkCmdCopyBufferToImage2-commandBuffer-cmdpool" href="#VUID-vkCmdCopyBufferToImage2-commandBuffer-cmdpool"></a> <span class="vuid">VUID-vkCmdCopyBufferToImage2-commandBuffer-cmdpool</span><br> 1289 The <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class="purple">must</strong> support transfer, graphics, or compute operations</p> 1290</li> 1291<li> 1292<p><a id="VUID-vkCmdCopyBufferToImage2-renderpass" href="#VUID-vkCmdCopyBufferToImage2-renderpass"></a> <span class="vuid">VUID-vkCmdCopyBufferToImage2-renderpass</span><br> 1293 This command <strong class="purple">must</strong> only be called outside of a render pass instance</p> 1294</li> 1295</ul> 1296</div> 1297</div> 1298</div> 1299<div class="sidebarblock"> 1300<div class="content"> 1301<div class="title">Host Synchronization</div> 1302<div class="ulist"> 1303<ul> 1304<li> 1305<p>Host access to <code>commandBuffer</code> <strong class="purple">must</strong> be externally synchronized</p> 1306</li> 1307<li> 1308<p>Host access to the <code>VkCommandPool</code> that <code>commandBuffer</code> was allocated from <strong class="purple">must</strong> be externally synchronized</p> 1309</li> 1310</ul> 1311</div> 1312</div> 1313</div> 1314<div class="sidebarblock"> 1315<div class="content"> 1316<div class="title">Command Properties</div> 1317<table class="tableblock frame-all grid-all stretch"> 1318<colgroup> 1319<col style="width: 25%;"> 1320<col style="width: 25%;"> 1321<col style="width: 25%;"> 1322<col style="width: 25%;"> 1323</colgroup> 1324<thead> 1325<tr> 1326<th class="tableblock halign-left valign-top"><a href="#VkCommandBufferLevel">Command Buffer Levels</a></th> 1327<th class="tableblock halign-left valign-top"><a href="#vkCmdBeginRenderPass">Render Pass Scope</a></th> 1328<th class="tableblock halign-left valign-top"><a href="#VkQueueFlagBits">Supported Queue Types</a></th> 1329<th class="tableblock halign-left valign-top"><a href="#fundamentals-queueoperation-command-types">Command Type</a></th> 1330</tr> 1331</thead> 1332<tbody> 1333<tr> 1334<td class="tableblock halign-left valign-top"><p class="tableblock">Primary<br> 1335Secondary</p></td> 1336<td class="tableblock halign-left valign-top"><p class="tableblock">Outside</p></td> 1337<td class="tableblock halign-left valign-top"><p class="tableblock">Transfer<br> 1338Graphics<br> 1339Compute</p></td> 1340<td class="tableblock halign-left valign-top"><p class="tableblock">Action</p></td> 1341</tr> 1342</tbody> 1343</table> 1344</div> 1345</div> 1346</div> 1347</div> 1348<div class="openblock"> 1349<div class="content"> 1350<div class="paragraph"> 1351<p>Sed risus pretium quam vulputate dignissim suspendisse in est ante <code>VkCopyBufferToImageInfo2</code>:</p> 1352</div> 1353<div id="VkCopyBufferToImageInfo2" class="listingblock"> 1354<div class="content"> 1355<pre class="rouge highlight"><code data-lang="c++"><span class="k">typedef</span> <span class="k">struct</span> <span class="nc">VkCopyBufferToImageInfo2</span> <span class="p">{</span> 1356 <span class="n">VkStructureType</span> <span class="n">sType</span><span class="p">;</span> 1357 <span class="k">const</span> <span class="kt">void</span><span class="o">*</span> <span class="n">pNext</span><span class="p">;</span> 1358 <span class="n">VkBuffer</span> <span class="n">srcBuffer</span><span class="p">;</span> 1359 <span class="n">VkImage</span> <span class="n">dstImage</span><span class="p">;</span> 1360 <span class="n">VkImageLayout</span> <span class="n">dstImageLayout</span><span class="p">;</span> 1361 <span class="kt">uint32_t</span> <span class="n">regionCount</span><span class="p">;</span> 1362 <span class="k">const</span> <span class="n">VkBufferImageCopy2</span><span class="o">*</span> <span class="n">pRegions</span><span class="p">;</span> 1363<span class="p">}</span> <span class="n">VkCopyBufferToImageInfo2</span><span class="p">;</span></code></pre> 1364</div> 1365</div> 1366<div class="paragraph"> 1367<p>or the equivalent</p> 1368</div> 1369<div id="VkCopyBufferToImageInfo2KHR" class="listingblock"> 1370<div class="content"> 1371<pre class="rouge highlight"><code data-lang="c++"><span class="c1">// Provided by VK_KHR_copy_commands2</span> 1372<span class="k">typedef</span> <span class="n">VkCopyBufferToImageInfo2</span> <span class="n">VkCopyBufferToImageInfo2KHR</span><span class="p">;</span></code></pre> 1373</div> 1374</div> 1375<div class="ulist"> 1376<ul> 1377<li> 1378<p><code>sType</code> Natoque penatibus et magnis dis parturient montes nascetur.</p> 1379</li> 1380<li> 1381<p><code>pNext</code> Iaculis eu non diam phasellus vestibulum.</p> 1382</li> 1383<li> 1384<p><code>srcBuffer</code> Consequat nisl vel pretium lectus quam.</p> 1385</li> 1386<li> 1387<p><code>dstImage</code> Euismod in pellentesque massa placerat duis ultricies lacus sed turpis.</p> 1388</li> 1389<li> 1390<p><code>dstImageLayout</code> Ullamcorper eget nulla facilisi etiam dignissim diam quis enim.</p> 1391</li> 1392<li> 1393<p><code>regionCount</code> Vel facilisis volutpat est velit egestas dui.</p> 1394</li> 1395<li> 1396<p><code>pRegions</code> Consequat id porta nibh venenatis cras sed felis.</p> 1397</li> 1398</ul> 1399</div> 1400<div class="sidebarblock"> 1401<div class="content"> 1402<div class="title">Valid Usage</div> 1403<div class="ulist"> 1404<ul> 1405<li> 1406<p><a id="VUID-VkCopyBufferToImageInfo2-pRegions-94565" href="#VUID-VkCopyBufferToImageInfo2-pRegions-94565"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-pRegions-94565</span><br> 1407 1408Id velit ut tortor pretium viverra suspendisse potenti <code>pRegions</code> 1409<code>imageSubresource</code> eu facilisis sed <strong class="purple">must</strong> odio morbi quis commodo 1410<code>dstImage</code></p> 1411</li> 1412</ul> 1413</div> 1414<div class="ulist"> 1415<ul> 1416<li> 1417<p><a id="VUID-VkCopyBufferToImageInfo2-dstImage-97965" href="#VUID-VkCopyBufferToImageInfo2-dstImage-97965"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-dstImage-97965</span><br> 1418 1419If <code>dstImage</code> is non-sparse then it <strong class="purple">must</strong> be bound completely 1420and contiguously to a single <code>VkDeviceMemory</code> object</p> 1421</li> 1422<li> 1423<p><a id="VUID-VkCopyBufferToImageInfo2-imageSubresource-97967" href="#VUID-VkCopyBufferToImageInfo2-imageSubresource-97967"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-imageSubresource-97967</span><br> 1424 1425The <code>imageSubresource.mipLevel</code> member of each element of 1426<code>pRegions</code> <strong class="purple">must</strong> be less than the <code>mipLevels</code> specified in 1427<a href="#VkImageCreateInfo">VkImageCreateInfo</a> when <code>dstImage</code> was created</p> 1428</li> 1429<li> 1430<p><a id="VUID-VkCopyBufferToImageInfo2-imageSubresource-97968" href="#VUID-VkCopyBufferToImageInfo2-imageSubresource-97968"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-imageSubresource-97968</span><br> 1431 1432The <span class="eq"><code>imageSubresource.baseArrayLayer</code> + 1433<code>imageSubresource.layerCount</code></span> of each element of <code>pRegions</code> 1434<strong class="purple">must</strong> be less than or equal to the <code>arrayLayers</code> specified in 1435<a href="#VkImageCreateInfo">VkImageCreateInfo</a> when <code>dstImage</code> was created</p> 1436</li> 1437</ul> 1438</div> 1439<div class="ulist"> 1440<ul> 1441<li> 1442<p><a id="VUID-VkCopyBufferToImageInfo2-bufferRowLength-99101" href="#VUID-VkCopyBufferToImageInfo2-bufferRowLength-99101"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-bufferRowLength-99101</span><br> 1443 1444<code>bufferRowLength</code> <strong class="purple">must</strong> be <code>0</code>, or greater than or equal to the 1445<code>width</code> member of <code>imageExtent</code></p> 1446</li> 1447<li> 1448<p><a id="VUID-VkCopyBufferToImageInfo2-bufferImageHeight-99102" href="#VUID-VkCopyBufferToImageInfo2-bufferImageHeight-99102"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-bufferImageHeight-99102</span><br> 1449 1450<code>bufferImageHeight</code> <strong class="purple">must</strong> be <code>0</code>, or greater than or equal to the 1451<code>height</code> member of <code>imageExtent</code></p> 1452</li> 1453<li> 1454<p><a id="VUID-VkCopyBufferToImageInfo2-aspectMask-99103" href="#VUID-VkCopyBufferToImageInfo2-aspectMask-99103"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-aspectMask-99103</span><br> 1455 1456The <code>aspectMask</code> member of <code>imageSubresource</code> <strong class="purple">must</strong> only have a 1457single bit set</p> 1458</li> 1459<li> 1460<p><a id="VUID-VkCopyBufferToImageInfo2-imageExtent-96659" href="#VUID-VkCopyBufferToImageInfo2-imageExtent-96659"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-imageExtent-96659</span><br> 1461 1462<code>imageExtent.width</code> <strong class="purple">must</strong> not be 0</p> 1463</li> 1464<li> 1465<p><a id="VUID-VkCopyBufferToImageInfo2-imageExtent-96660" href="#VUID-VkCopyBufferToImageInfo2-imageExtent-96660"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-imageExtent-96660</span><br> 1466 1467<code>imageExtent.height</code> <strong class="purple">must</strong> not be 0</p> 1468</li> 1469<li> 1470<p><a id="VUID-VkCopyBufferToImageInfo2-imageExtent-96661" href="#VUID-VkCopyBufferToImageInfo2-imageExtent-96661"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-imageExtent-96661</span><br> 1471 1472<code>imageExtent.depth</code> <strong class="purple">must</strong> not be 0</p> 1473</li> 1474<li> 1475<p><a id="VUID-VkCopyBufferToImageInfo2-pRegions-96223" href="#VUID-VkCopyBufferToImageInfo2-pRegions-96223"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-pRegions-96223</span><br> 1476 1477Id leo in vitae turpis massa sed elementum 1478<code>imageOffset.x</code> and <span class="eq">(<code>imageExtent.width</code> + 1479<code>imageOffset.x</code>)</span> <strong class="purple">must</strong> gravida dictum fusce ut placerat orci nulla 1480pellentesque dignissim enim <code>imageSubresource</code> of <code>dstImage</code></p> 1481</li> 1482</ul> 1483</div> 1484</div> 1485</div> 1486<div class="sidebarblock"> 1487<div class="content"> 1488<div class="title">Valid Usage (Implicit)</div> 1489<div class="ulist"> 1490<ul> 1491<li> 1492<p><a id="VUID-VkCopyBufferToImageInfo2-sType-sType" href="#VUID-VkCopyBufferToImageInfo2-sType-sType"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-sType-sType</span><br> 1493 <code>sType</code> <strong class="purple">must</strong> be <code>VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2</code></p> 1494</li> 1495<li> 1496<p><a id="VUID-VkCopyBufferToImageInfo2-pNext-pNext" href="#VUID-VkCopyBufferToImageInfo2-pNext-pNext"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-pNext-pNext</span><br> 1497 <code>pNext</code> <strong class="purple">must</strong> be <code>NULL</code></p> 1498</li> 1499<li> 1500<p><a id="VUID-VkCopyBufferToImageInfo2-srcBuffer-parameter" href="#VUID-VkCopyBufferToImageInfo2-srcBuffer-parameter"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-srcBuffer-parameter</span><br> 1501 <code>srcBuffer</code> <strong class="purple">must</strong> be a valid <a href="#VkBuffer">VkBuffer</a> handle</p> 1502</li> 1503<li> 1504<p><a id="VUID-VkCopyBufferToImageInfo2-dstImage-parameter" href="#VUID-VkCopyBufferToImageInfo2-dstImage-parameter"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-dstImage-parameter</span><br> 1505 <code>dstImage</code> <strong class="purple">must</strong> be a valid <a href="#VkImage">VkImage</a> handle</p> 1506</li> 1507<li> 1508<p><a id="VUID-VkCopyBufferToImageInfo2-dstImageLayout-parameter" href="#VUID-VkCopyBufferToImageInfo2-dstImageLayout-parameter"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-dstImageLayout-parameter</span><br> 1509 <code>dstImageLayout</code> <strong class="purple">must</strong> be a valid <a href="#VkImageLayout">VkImageLayout</a> value</p> 1510</li> 1511<li> 1512<p><a id="VUID-VkCopyBufferToImageInfo2-pRegions-parameter" href="#VUID-VkCopyBufferToImageInfo2-pRegions-parameter"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-pRegions-parameter</span><br> 1513 <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> 1514</li> 1515<li> 1516<p><a id="VUID-VkCopyBufferToImageInfo2-regionCount-arraylength" href="#VUID-VkCopyBufferToImageInfo2-regionCount-arraylength"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-regionCount-arraylength</span><br> 1517 <code>regionCount</code> <strong class="purple">must</strong> be greater than <code>0</code></p> 1518</li> 1519<li> 1520<p><a id="VUID-VkCopyBufferToImageInfo2-commonparent" href="#VUID-VkCopyBufferToImageInfo2-commonparent"></a> <span class="vuid">VUID-VkCopyBufferToImageInfo2-commonparent</span><br> 1521 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> 1522</li> 1523</ul> 1524</div> 1525</div> 1526</div> 1527</div> 1528</div> 1529<div class="openblock"> 1530<div class="content"> 1531<div class="paragraph"> 1532<p>Gravida dictum fusce ut placerat orci nulla pellentesque dignissim enim <a href="#vkCmdCopyBufferToImage2KHR">vkCmdCopyBufferToImage2KHR</a>:</p> 1533</div> 1534<div id="VkBufferImageCopy2" class="listingblock"> 1535<div class="content"> 1536<pre class="rouge highlight"><code data-lang="c++"><span class="k">typedef</span> <span class="k">struct</span> <span class="nc">VkBufferImageCopy2</span> <span class="p">{</span> 1537 <span class="n">VkStructureType</span> <span class="n">sType</span><span class="p">;</span> 1538 <span class="k">const</span> <span class="kt">void</span><span class="o">*</span> <span class="n">pNext</span><span class="p">;</span> 1539 <span class="n">VkDeviceSize</span> <span class="n">bufferOffset</span><span class="p">;</span> 1540 <span class="kt">uint32_t</span> <span class="n">bufferRowLength</span><span class="p">;</span> 1541 <span class="kt">uint32_t</span> <span class="n">bufferImageHeight</span><span class="p">;</span> 1542 <span class="n">VkImageSubresourceLayers</span> <span class="n">imageSubresource</span><span class="p">;</span> 1543 <span class="n">VkOffset3D</span> <span class="n">imageOffset</span><span class="p">;</span> 1544 <span class="n">VkExtent3D</span> <span class="n">imageExtent</span><span class="p">;</span> 1545<span class="p">}</span> <span class="n">VkBufferImageCopy2</span><span class="p">;</span></code></pre> 1546</div> 1547</div> 1548<div class="paragraph"> 1549<p>or the equivalent</p> 1550</div> 1551<div id="VkBufferImageCopy2KHR" class="listingblock"> 1552<div class="content"> 1553<pre class="rouge highlight"><code data-lang="c++"><span class="c1">// Provided by VK_KHR_copy_commands2</span> 1554<span class="k">typedef</span> <span class="n">VkBufferImageCopy2</span> <span class="n">VkBufferImageCopy2KHR</span><span class="p">;</span></code></pre> 1555</div> 1556</div> 1557<div class="ulist"> 1558<ul> 1559<li> 1560<p><code>sType</code> Tristique senectus et netus et malesuada.</p> 1561</li> 1562<li> 1563<p><code>pNext</code> Tempor commodo ullamcorper a lacus vestibulum sed arcu.</p> 1564</li> 1565<li> 1566<p><code>bufferOffset</code> Tellus in metus vulputate eu scelerisque. Lectus sit amet est placerat in.</p> 1567</li> 1568<li> 1569<p><code>bufferRowLength</code> and <code>bufferImageHeight</code> Quam adipiscing vitae 1570proin sagittis. Mattis pellentesque id nibh tortor id aliquet lectus proin 1571nibh <code>imageExtent</code>.</p> 1572</li> 1573<li> 1574<p><code>imageSubresource</code> Sociis natoque penatibus et magnis dis parturient montes nascetur.</p> 1575</li> 1576<li> 1577<p><code>imageOffset</code> Lobortis mattis aliquam faucibus purus in massa tempor nec.</p> 1578</li> 1579<li> 1580<p><code>imageExtent</code> Ut ornare lectus sit amet est placerat in.</p> 1581</li> 1582</ul> 1583</div> 1584<div class="paragraph"> 1585<p>Integer quis auctor elit sed vulputate mi sit amet mauris. Ultrices sagittis 1586orci a scelerisque purus semper eget duis.</p> 1587</div> 1588<div class="sidebarblock"> 1589<div class="content"> 1590<div class="title">Valid Usage</div> 1591<div class="ulist"> 1592<ul> 1593<li> 1594<p><a id="VUID-VkBufferImageCopy2-bufferRowLength-99101" href="#VUID-VkBufferImageCopy2-bufferRowLength-99101"></a> <span class="vuid">VUID-VkBufferImageCopy2-bufferRowLength-99101</span><br> 1595 1596<code>bufferRowLength</code> <strong class="purple">must</strong> be <code>0</code>, or greater than or equal to the 1597<code>width</code> member of <code>imageExtent</code></p> 1598</li> 1599<li> 1600<p><a id="VUID-VkBufferImageCopy2-bufferImageHeight-99102" href="#VUID-VkBufferImageCopy2-bufferImageHeight-99102"></a> <span class="vuid">VUID-VkBufferImageCopy2-bufferImageHeight-99102</span><br> 1601 1602<code>bufferImageHeight</code> <strong class="purple">must</strong> be <code>0</code>, or greater than or equal to the 1603<code>height</code> member of <code>imageExtent</code></p> 1604</li> 1605<li> 1606<p><a id="VUID-VkBufferImageCopy2-aspectMask-99103" href="#VUID-VkBufferImageCopy2-aspectMask-99103"></a> <span class="vuid">VUID-VkBufferImageCopy2-aspectMask-99103</span><br> 1607 1608The <code>aspectMask</code> member of <code>imageSubresource</code> <strong class="purple">must</strong> only have a 1609single bit set</p> 1610</li> 1611<li> 1612<p><a id="VUID-VkBufferImageCopy2-imageExtent-96659" href="#VUID-VkBufferImageCopy2-imageExtent-96659"></a> <span class="vuid">VUID-VkBufferImageCopy2-imageExtent-96659</span><br> 1613 1614<code>imageExtent.width</code> <strong class="purple">must</strong> not be 0</p> 1615</li> 1616<li> 1617<p><a id="VUID-VkBufferImageCopy2-imageExtent-96660" href="#VUID-VkBufferImageCopy2-imageExtent-96660"></a> <span class="vuid">VUID-VkBufferImageCopy2-imageExtent-96660</span><br> 1618 1619<code>imageExtent.height</code> <strong class="purple">must</strong> not be 0</p> 1620</li> 1621<li> 1622<p><a id="VUID-VkBufferImageCopy2-imageExtent-96661" href="#VUID-VkBufferImageCopy2-imageExtent-96661"></a> <span class="vuid">VUID-VkBufferImageCopy2-imageExtent-96661</span><br> 1623 1624<code>imageExtent.depth</code> <strong class="purple">must</strong> not be 0</p> 1625</li> 1626</ul> 1627</div> 1628</div> 1629</div> 1630<div class="sidebarblock"> 1631<div class="content"> 1632<div class="title">Valid Usage (Implicit)</div> 1633<div class="ulist"> 1634<ul> 1635<li> 1636<p><a id="VUID-VkBufferImageCopy2-sType-sType" href="#VUID-VkBufferImageCopy2-sType-sType"></a> <span class="vuid">VUID-VkBufferImageCopy2-sType-sType</span><br> 1637 <code>sType</code> <strong class="purple">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2</code></p> 1638</li> 1639<li> 1640<p><a id="VUID-VkBufferImageCopy2-pNext-pNext" href="#VUID-VkBufferImageCopy2-pNext-pNext"></a> <span class="vuid">VUID-VkBufferImageCopy2-pNext-pNext</span><br> 1641 <code>pNext</code> <strong class="purple">must</strong> be <code>NULL</code></p> 1642</li> 1643<li> 1644<p><a id="VUID-VkBufferImageCopy2-imageSubresource-parameter" href="#VUID-VkBufferImageCopy2-imageSubresource-parameter"></a> <span class="vuid">VUID-VkBufferImageCopy2-imageSubresource-parameter</span><br> 1645 <code>imageSubresource</code> <strong class="purple">must</strong> be a valid <a href="#VkImageSubresourceLayers">VkImageSubresourceLayers</a> structure</p> 1646</li> 1647</ul> 1648</div> 1649</div> 1650</div> 1651</div> 1652</div> 1653</div> 1654</div> 1655</div> 1656<div class="sect1"> 1657<h2 id="extensions"><a class="anchor" href="#extensions"></a>Layers & Extensions (Informative)</h2> 1658<div class="sectionbody"> 1659<div class="paragraph"> 1660<p>Cursus euismod quis viverra nibh cras pulvinar.</p> 1661</div> 1662<div class="sect2"> 1663<h3 id="_extension_dependencies"><a class="anchor" href="#_extension_dependencies"></a>Extension Dependencies</h3> 1664<div class="paragraph"> 1665<p>Id diam vel quam elementum</p> 1666</div> 1667</div> 1668</div> 1669</div> 1670</div> 1671<div id="footer"> 1672<div id="footer-text"> 1673Version 1.2.3<br> 1674</div> 1675</div> 1676 1677 1678</body> 1679</html>