[{"data":1,"prerenderedAt":528},["ShallowReactive",2],{"OdXQBnO2mK":3},{"title":4,"description":5,"parent":6,"type":7,"xrefs":8,"body":9,"_type":527,"_id":4},"VkBufferOpaqueCaptureAddressCreateInfo","Request a specific address for a buffer","VK_VERSION_1_2","structs",[],{"type":10,"children":11,"toc":525},"root",[12,52,259,264,329,382,394,420,432,450,487,519],{"type":13,"tag":14,"props":15,"children":16},"element","p",{},[17,20,26,28,35,37,43,45,50],{"type":18,"value":19},"text","To request a specific device address for a buffer, add a\n",{"type":13,"tag":21,"props":22,"children":24},"a",{"href":23},"/man/VkBufferOpaqueCaptureAddressCreateInfo",[25],{"type":18,"value":4},{"type":18,"value":27}," structure to the ",{"type":13,"tag":29,"props":30,"children":32},"code",{"className":31},[],[33],{"type":18,"value":34},"pNext",{"type":18,"value":36},"\nchain of the ",{"type":13,"tag":21,"props":38,"children":40},{"href":39},"/man/VkBufferCreateInfo",[41],{"type":18,"value":42},"VkBufferCreateInfo",{"type":18,"value":44}," structure.\nThe ",{"type":13,"tag":29,"props":46,"children":48},{"className":47},[],[49],{"type":18,"value":4},{"type":18,"value":51}," structure is defined as:",{"type":13,"tag":53,"props":54,"children":55},"code-group",{},[56,142],{"type":13,"tag":57,"props":58,"children":64},"pre",{"className":59,"code":60,"filename":61,"language":62,"meta":63,"style":63},"language-c shiki shiki-themes github-light-default github-dark-default","typedef struct VkBufferOpaqueCaptureAddressCreateInfo {\n VkStructureType sType;\n const void* pNext;\n uint64_t opaqueCaptureAddress;\n} VkBufferOpaqueCaptureAddressCreateInfo;\n","C","c","",[65],{"type":13,"tag":29,"props":66,"children":67},{"__ignoreMap":63},[68,91,100,119,133],{"type":13,"tag":69,"props":70,"children":73},"span",{"class":71,"line":72},"line",1,[74,80,85],{"type":13,"tag":69,"props":75,"children":77},{"style":76},"--shiki-default:#CF222E;--shiki-dark:#FF7B72",[78],{"type":18,"value":79},"typedef",{"type":13,"tag":69,"props":81,"children":82},{"style":76},[83],{"type":18,"value":84}," struct",{"type":13,"tag":69,"props":86,"children":88},{"style":87},"--shiki-default:#1F2328;--shiki-dark:#E6EDF3",[89],{"type":18,"value":90}," VkBufferOpaqueCaptureAddressCreateInfo {\n",{"type":13,"tag":69,"props":92,"children":94},{"class":71,"line":93},2,[95],{"type":13,"tag":69,"props":96,"children":97},{"style":87},[98],{"type":18,"value":99}," VkStructureType sType;\n",{"type":13,"tag":69,"props":101,"children":103},{"class":71,"line":102},3,[104,109,114],{"type":13,"tag":69,"props":105,"children":106},{"style":76},[107],{"type":18,"value":108}," const",{"type":13,"tag":69,"props":110,"children":111},{"style":76},[112],{"type":18,"value":113}," void*",{"type":13,"tag":69,"props":115,"children":116},{"style":87},[117],{"type":18,"value":118}," pNext;\n",{"type":13,"tag":69,"props":120,"children":122},{"class":71,"line":121},4,[123,128],{"type":13,"tag":69,"props":124,"children":125},{"style":76},[126],{"type":18,"value":127}," uint64_t",{"type":13,"tag":69,"props":129,"children":130},{"style":87},[131],{"type":18,"value":132}," opaqueCaptureAddress;\n",{"type":13,"tag":69,"props":134,"children":136},{"class":71,"line":135},5,[137],{"type":13,"tag":69,"props":138,"children":139},{"style":87},[140],{"type":18,"value":141},"} VkBufferOpaqueCaptureAddressCreateInfo;\n",{"type":13,"tag":57,"props":143,"children":148},{"className":144,"code":145,"filename":146,"language":147,"meta":63,"style":63},"language-rs shiki shiki-themes github-light-default github-dark-default","pub struct BufferOpaqueCaptureAddressCreateInfo {\n s_type: vk::StructureType,\n p_next: *const c_void,\n opaque_capture_address: u64,\n}\n","Rust","rs",[149],{"type":13,"tag":29,"props":150,"children":151},{"__ignoreMap":63},[152,175,208,230,251],{"type":13,"tag":69,"props":153,"children":154},{"class":71,"line":72},[155,160,164,170],{"type":13,"tag":69,"props":156,"children":157},{"style":76},[158],{"type":18,"value":159},"pub",{"type":13,"tag":69,"props":161,"children":162},{"style":76},[163],{"type":18,"value":84},{"type":13,"tag":69,"props":165,"children":167},{"style":166},"--shiki-default:#953800;--shiki-dark:#FFA657",[168],{"type":18,"value":169}," BufferOpaqueCaptureAddressCreateInfo",{"type":13,"tag":69,"props":171,"children":172},{"style":87},[173],{"type":18,"value":174}," {\n",{"type":13,"tag":69,"props":176,"children":177},{"class":71,"line":93},[178,183,188,193,198,203],{"type":13,"tag":69,"props":179,"children":180},{"style":87},[181],{"type":18,"value":182}," s_type",{"type":13,"tag":69,"props":184,"children":185},{"style":76},[186],{"type":18,"value":187},":",{"type":13,"tag":69,"props":189,"children":190},{"style":166},[191],{"type":18,"value":192}," vk",{"type":13,"tag":69,"props":194,"children":195},{"style":76},[196],{"type":18,"value":197},"::",{"type":13,"tag":69,"props":199,"children":200},{"style":166},[201],{"type":18,"value":202},"StructureType",{"type":13,"tag":69,"props":204,"children":205},{"style":87},[206],{"type":18,"value":207},",\n",{"type":13,"tag":69,"props":209,"children":210},{"class":71,"line":102},[211,216,220,225],{"type":13,"tag":69,"props":212,"children":213},{"style":87},[214],{"type":18,"value":215}," p_next",{"type":13,"tag":69,"props":217,"children":218},{"style":76},[219],{"type":18,"value":187},{"type":13,"tag":69,"props":221,"children":222},{"style":76},[223],{"type":18,"value":224}," *const",{"type":13,"tag":69,"props":226,"children":227},{"style":87},[228],{"type":18,"value":229}," c_void,\n",{"type":13,"tag":69,"props":231,"children":232},{"class":71,"line":121},[233,238,242,247],{"type":13,"tag":69,"props":234,"children":235},{"style":87},[236],{"type":18,"value":237}," opaque_capture_address",{"type":13,"tag":69,"props":239,"children":240},{"style":76},[241],{"type":18,"value":187},{"type":13,"tag":69,"props":243,"children":244},{"style":166},[245],{"type":18,"value":246}," u64",{"type":13,"tag":69,"props":248,"children":249},{"style":87},[250],{"type":18,"value":207},{"type":13,"tag":69,"props":252,"children":253},{"class":71,"line":135},[254],{"type":13,"tag":69,"props":255,"children":256},{"style":87},[257],{"type":18,"value":258},"}\n",{"type":13,"tag":14,"props":260,"children":261},{},[262],{"type":18,"value":263},"or the equivalent",{"type":13,"tag":53,"props":265,"children":266},{},[267,286],{"type":13,"tag":57,"props":268,"children":270},{"className":59,"code":269,"filename":61,"language":62,"meta":63,"style":63},"typedef VkBufferOpaqueCaptureAddressCreateInfo VkBufferOpaqueCaptureAddressCreateInfoKHR;\n",[271],{"type":13,"tag":29,"props":272,"children":273},{"__ignoreMap":63},[274],{"type":13,"tag":69,"props":275,"children":276},{"class":71,"line":72},[277,281],{"type":13,"tag":69,"props":278,"children":279},{"style":76},[280],{"type":18,"value":79},{"type":13,"tag":69,"props":282,"children":283},{"style":87},[284],{"type":18,"value":285}," VkBufferOpaqueCaptureAddressCreateInfo VkBufferOpaqueCaptureAddressCreateInfoKHR;\n",{"type":13,"tag":57,"props":287,"children":289},{"className":144,"code":288,"filename":146,"language":147,"meta":63,"style":63},"type BufferOpaqueCaptureAddressCreateInfoKHR = vk::BufferOpaqueCaptureAddressCreateInfo;\n",[290],{"type":13,"tag":29,"props":291,"children":292},{"__ignoreMap":63},[293],{"type":13,"tag":69,"props":294,"children":295},{"class":71,"line":72},[296,301,306,311,315,319,324],{"type":13,"tag":69,"props":297,"children":298},{"style":76},[299],{"type":18,"value":300},"type",{"type":13,"tag":69,"props":302,"children":303},{"style":166},[304],{"type":18,"value":305}," BufferOpaqueCaptureAddressCreateInfoKHR",{"type":13,"tag":69,"props":307,"children":308},{"style":76},[309],{"type":18,"value":310}," =",{"type":13,"tag":69,"props":312,"children":313},{"style":166},[314],{"type":18,"value":192},{"type":13,"tag":69,"props":316,"children":317},{"style":76},[318],{"type":18,"value":197},{"type":13,"tag":69,"props":320,"children":321},{"style":166},[322],{"type":18,"value":323},"BufferOpaqueCaptureAddressCreateInfo",{"type":13,"tag":69,"props":325,"children":326},{"style":87},[327],{"type":18,"value":328},";\n",{"type":13,"tag":330,"props":331,"children":332},"ul",{},[333,353,371],{"type":13,"tag":334,"props":335,"children":336},"li",{},[337,343,345,351],{"type":13,"tag":29,"props":338,"children":340},{"className":339},[],[341],{"type":18,"value":342},"sType",{"type":18,"value":344}," is a ",{"type":13,"tag":21,"props":346,"children":348},{"href":347},"/man/VkStructureType",[349],{"type":18,"value":350},"VkStructureType",{"type":18,"value":352}," value identifying this structure.",{"type":13,"tag":334,"props":354,"children":355},{},[356,361,363,369],{"type":13,"tag":29,"props":357,"children":359},{"className":358},[],[360],{"type":18,"value":34},{"type":18,"value":362}," is ",{"type":13,"tag":29,"props":364,"children":366},{"className":365},[],[367],{"type":18,"value":368},"NULL",{"type":18,"value":370}," or a pointer to a structure extending this\nstructure.",{"type":13,"tag":334,"props":372,"children":373},{},[374,380],{"type":13,"tag":29,"props":375,"children":377},{"className":376},[],[378],{"type":18,"value":379},"opaqueCaptureAddress",{"type":18,"value":381}," is the opaque capture address requested for\nthe buffer.",{"type":13,"tag":14,"props":383,"children":384},{},[385,387,392],{"type":18,"value":386},"If ",{"type":13,"tag":29,"props":388,"children":390},{"className":389},[],[391],{"type":18,"value":379},{"type":18,"value":393}," is zero, no specific address is requested.",{"type":13,"tag":14,"props":395,"children":396},{},[397,398,403,405,410,412,418],{"type":18,"value":386},{"type":13,"tag":29,"props":399,"children":401},{"className":400},[],[402],{"type":18,"value":379},{"type":18,"value":404}," is not zero, then it ",{"type":13,"tag":406,"props":407,"children":409},"normative",{"type":408},"should",[],{"type":18,"value":411}," be an address\nretrieved from ",{"type":13,"tag":21,"props":413,"children":415},{"href":414},"/man/vkGetBufferOpaqueCaptureAddress",[416],{"type":18,"value":417},"vkGetBufferOpaqueCaptureAddress",{"type":18,"value":419}," for an identically\ncreated buffer on the same implementation.",{"type":13,"tag":14,"props":421,"children":422},{},[423,425,430],{"type":18,"value":424},"If this structure is not present, it is as if ",{"type":13,"tag":29,"props":426,"children":428},{"className":427},[],[429],{"type":18,"value":379},{"type":18,"value":431}," is\nzero.",{"type":13,"tag":14,"props":433,"children":434},{},[435,437,440,442,448],{"type":18,"value":436},"Apps ",{"type":13,"tag":406,"props":438,"children":439},{"type":408},[],{"type":18,"value":441}," avoid creating buffers with app-provided addresses and\nimplementation-provided addresses in the same process, to reduce the\nlikelihood of ",{"type":13,"tag":29,"props":443,"children":445},{"className":444},[],[446],{"type":18,"value":447},"VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS",{"type":18,"value":449}," errors.",{"type":13,"tag":451,"props":452,"children":453},"note",{},[454,475],{"type":13,"tag":14,"props":455,"children":456},{},[457,459,465,467,473],{"type":18,"value":458},"The expected usage for this is that a trace capture/replay tool will add the\n",{"type":13,"tag":29,"props":460,"children":462},{"className":461},[],[463],{"type":18,"value":464},"VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT",{"type":18,"value":466}," flag to all buffers\nthat use ",{"type":13,"tag":29,"props":468,"children":470},{"className":469},[],[471],{"type":18,"value":472},"VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT",{"type":18,"value":474},", and during capture\nwill save the queried opaque device addresses in the trace.\nDuring replay, the buffers will be created specifying the original address\nso any address values stored in the trace data will remain valid.",{"type":13,"tag":14,"props":476,"children":477},{},[478,480,485],{"type":18,"value":479},"Implementations are expected to separate such buffers in the GPU address\nspace so normal allocations will avoid using these addresses.\nApps/tools should avoid mixing app-provided and implementation-provided\naddresses for buffers created with\n",{"type":13,"tag":29,"props":481,"children":483},{"className":482},[],[484],{"type":18,"value":464},{"type":18,"value":486},", to avoid address\nspace allocation conflicts.",{"type":13,"tag":488,"props":489,"children":491},"validity-group",{"name":490},"Valid Usage (Implicit)",[492],{"type":13,"tag":493,"props":494,"children":496},"validity-field",{"name":495},"VUID-VkBufferOpaqueCaptureAddressCreateInfo-sType-sType",[497],{"type":13,"tag":14,"props":498,"children":499},{},[500,505,507,511,513],{"type":13,"tag":29,"props":501,"children":503},{"className":502},[],[504],{"type":18,"value":342},{"type":18,"value":506}," ",{"type":13,"tag":406,"props":508,"children":510},{"type":509},"must",[],{"type":18,"value":512}," be ",{"type":13,"tag":29,"props":514,"children":516},{"className":515},[],[517],{"type":18,"value":518},"VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO",{"type":13,"tag":520,"props":521,"children":522},"style",{},[523],{"type":18,"value":524},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":63,"searchDepth":93,"depth":93,"links":526},[],"markdown",1725732541369]