[{"data":1,"prerenderedAt":590},["ShallowReactive",2],{"cAdfeX2bUI":3},{"title":4,"description":5,"parent":6,"type":7,"xrefs":8,"body":9,"_type":589,"_id":4},"vkCmdCopyImageToBuffer2","Copy image data into a buffer","VK_VERSION_1_3","protos",[],{"type":10,"children":11,"toc":587},"root",[12,20,216,251,280,403,535,581],{"type":13,"tag":14,"props":15,"children":16},"element","p",{},[17],{"type":18,"value":19},"text","To copy data from an image object to a buffer object, call:",{"type":13,"tag":21,"props":22,"children":23},"code-group",{},[24,110],{"type":13,"tag":25,"props":26,"children":32},"pre",{"className":27,"code":28,"filename":29,"language":30,"meta":31,"style":31},"language-c shiki shiki-themes github-light-default github-dark-default","void vkCmdCopyImageToBuffer2KHR(\n VkCommandBuffer commandBuffer,\n const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);\n","C","c","",[33],{"type":13,"tag":34,"props":35,"children":36},"code",{"__ignoreMap":31},[37,61,81],{"type":13,"tag":38,"props":39,"children":42},"span",{"class":40,"line":41},"line",1,[43,49,55],{"type":13,"tag":38,"props":44,"children":46},{"style":45},"--shiki-default:#CF222E;--shiki-dark:#FF7B72",[47],{"type":18,"value":48},"void",{"type":13,"tag":38,"props":50,"children":52},{"style":51},"--shiki-default:#8250DF;--shiki-dark:#D2A8FF",[53],{"type":18,"value":54}," vkCmdCopyImageToBuffer2KHR",{"type":13,"tag":38,"props":56,"children":58},{"style":57},"--shiki-default:#1F2328;--shiki-dark:#E6EDF3",[59],{"type":18,"value":60},"(\n",{"type":13,"tag":38,"props":62,"children":64},{"class":40,"line":63},2,[65,70,76],{"type":13,"tag":38,"props":66,"children":67},{"style":57},[68],{"type":18,"value":69}," VkCommandBuffer ",{"type":13,"tag":38,"props":71,"children":73},{"style":72},"--shiki-default:#953800;--shiki-dark:#FFA657",[74],{"type":18,"value":75},"commandBuffer",{"type":13,"tag":38,"props":77,"children":78},{"style":57},[79],{"type":18,"value":80},",\n",{"type":13,"tag":38,"props":82,"children":84},{"class":40,"line":83},3,[85,90,95,100,105],{"type":13,"tag":38,"props":86,"children":87},{"style":45},[88],{"type":18,"value":89}," const",{"type":13,"tag":38,"props":91,"children":92},{"style":57},[93],{"type":18,"value":94}," VkCopyImageToBufferInfo2",{"type":13,"tag":38,"props":96,"children":97},{"style":45},[98],{"type":18,"value":99},"*",{"type":13,"tag":38,"props":101,"children":102},{"style":72},[103],{"type":18,"value":104}," pCopyImageToBufferInfo",{"type":13,"tag":38,"props":106,"children":107},{"style":57},[108],{"type":18,"value":109},");\n",{"type":13,"tag":25,"props":111,"children":116},{"className":112,"code":113,"filename":114,"language":115,"meta":31,"style":31},"language-rs shiki shiki-themes github-light-default github-dark-default","pub fn cmd_copy_image_to_buffer2_khr(\n command_buffer: vk::CommandBuffer,\n p_copy_image_to_buffer_info: *const vk::CopyImageToBufferInfo2,\n);\n","Rust","rs",[117],{"type":13,"tag":34,"props":118,"children":119},{"__ignoreMap":31},[120,142,174,208],{"type":13,"tag":38,"props":121,"children":122},{"class":40,"line":41},[123,128,133,138],{"type":13,"tag":38,"props":124,"children":125},{"style":45},[126],{"type":18,"value":127},"pub",{"type":13,"tag":38,"props":129,"children":130},{"style":45},[131],{"type":18,"value":132}," fn",{"type":13,"tag":38,"props":134,"children":135},{"style":51},[136],{"type":18,"value":137}," cmd_copy_image_to_buffer2_khr",{"type":13,"tag":38,"props":139,"children":140},{"style":57},[141],{"type":18,"value":60},{"type":13,"tag":38,"props":143,"children":144},{"class":40,"line":63},[145,150,155,160,165,170],{"type":13,"tag":38,"props":146,"children":147},{"style":57},[148],{"type":18,"value":149}," command_buffer",{"type":13,"tag":38,"props":151,"children":152},{"style":45},[153],{"type":18,"value":154},":",{"type":13,"tag":38,"props":156,"children":157},{"style":72},[158],{"type":18,"value":159}," vk",{"type":13,"tag":38,"props":161,"children":162},{"style":45},[163],{"type":18,"value":164},"::",{"type":13,"tag":38,"props":166,"children":167},{"style":72},[168],{"type":18,"value":169},"CommandBuffer",{"type":13,"tag":38,"props":171,"children":172},{"style":57},[173],{"type":18,"value":80},{"type":13,"tag":38,"props":175,"children":176},{"class":40,"line":83},[177,182,186,191,195,199,204],{"type":13,"tag":38,"props":178,"children":179},{"style":57},[180],{"type":18,"value":181}," p_copy_image_to_buffer_info",{"type":13,"tag":38,"props":183,"children":184},{"style":45},[185],{"type":18,"value":154},{"type":13,"tag":38,"props":187,"children":188},{"style":45},[189],{"type":18,"value":190}," *const",{"type":13,"tag":38,"props":192,"children":193},{"style":72},[194],{"type":18,"value":159},{"type":13,"tag":38,"props":196,"children":197},{"style":45},[198],{"type":18,"value":164},{"type":13,"tag":38,"props":200,"children":201},{"style":72},[202],{"type":18,"value":203},"CopyImageToBufferInfo2",{"type":13,"tag":38,"props":205,"children":206},{"style":57},[207],{"type":18,"value":80},{"type":13,"tag":38,"props":209,"children":211},{"class":40,"line":210},4,[212],{"type":13,"tag":38,"props":213,"children":214},{"style":57},[215],{"type":18,"value":109},{"type":13,"tag":217,"props":218,"children":219},"ul",{},[220,231],{"type":13,"tag":221,"props":222,"children":223},"li",{},[224,229],{"type":13,"tag":34,"props":225,"children":227},{"className":226},[],[228],{"type":18,"value":75},{"type":18,"value":230}," is the command buffer into which the command will be\nrecorded.",{"type":13,"tag":221,"props":232,"children":233},{},[234,240,242,249],{"type":13,"tag":34,"props":235,"children":237},{"className":236},[],[238],{"type":18,"value":239},"pCopyImageToBufferInfo",{"type":18,"value":241}," is a pointer to a\n",{"type":13,"tag":243,"props":244,"children":246},"a",{"href":245},"/man/VkCopyImageToBufferInfo2",[247],{"type":18,"value":248},"VkCopyImageToBufferInfo2",{"type":18,"value":250}," structure describing the copy parameters.",{"type":13,"tag":14,"props":252,"children":253},{},[254,256,262,264,270,272,278],{"type":18,"value":255},"This command is functionally identical to ",{"type":13,"tag":243,"props":257,"children":259},{"href":258},"/man/vkCmdCopyImageToBuffer",[260],{"type":18,"value":261},"vkCmdCopyImageToBuffer",{"type":18,"value":263},", but\nincludes extensible sub-structures that include ",{"type":13,"tag":34,"props":265,"children":267},{"className":266},[],[268],{"type":18,"value":269},"sType",{"type":18,"value":271}," and ",{"type":13,"tag":34,"props":273,"children":275},{"className":274},[],[276],{"type":18,"value":277},"pNext",{"type":18,"value":279},"\nparameters, allowing them to be more easily extended.",{"type":13,"tag":281,"props":282,"children":284},"validity-group",{"name":283},"Valid Usage",[285,355],{"type":13,"tag":286,"props":287,"children":289},"validity-field",{"name":288},"VUID-vkCmdCopyImageToBuffer2-commandBuffer-07746",[290],{"type":13,"tag":14,"props":291,"children":292},{},[293,295,301,303,308,310,316,318,324,326,332,334,340,342,347,349],{"type":18,"value":294},"If the queue family used to create the ",{"type":13,"tag":243,"props":296,"children":298},{"href":297},"/man/VkCommandPool",[299],{"type":18,"value":300},"VkCommandPool",{"type":18,"value":302}," which\n",{"type":13,"tag":34,"props":304,"children":306},{"className":305},[],[307],{"type":18,"value":75},{"type":18,"value":309}," was allocated from does not support\n",{"type":13,"tag":34,"props":311,"children":313},{"className":312},[],[314],{"type":18,"value":315},"VK_QUEUE_GRAPHICS_BIT",{"type":18,"value":317}," or ",{"type":13,"tag":34,"props":319,"children":321},{"className":320},[],[322],{"type":18,"value":323},"VK_QUEUE_COMPUTE_BIT",{"type":18,"value":325},", the\n",{"type":13,"tag":34,"props":327,"children":329},{"className":328},[],[330],{"type":18,"value":331},"bufferOffset",{"type":18,"value":333}," member of any element of ",{"type":13,"tag":34,"props":335,"children":337},{"className":336},[],[338],{"type":18,"value":339},"pCopyImageToBufferInfo→pRegions",{"type":18,"value":341}," ",{"type":13,"tag":343,"props":344,"children":346},"normative",{"type":345},"must",[],{"type":18,"value":348}," be a\nmultiple of ",{"type":13,"tag":34,"props":350,"children":352},{"className":351},[],[353],{"type":18,"value":354},"4",{"type":13,"tag":286,"props":356,"children":358},{"name":357},"VUID-vkCmdCopyImageToBuffer2-imageOffset-07747",[359],{"type":13,"tag":14,"props":360,"children":361},{},[362,364,370,371,377,379,384,385,388,390,395,397],{"type":18,"value":363},"The ",{"type":13,"tag":34,"props":365,"children":367},{"className":366},[],[368],{"type":18,"value":369},"imageOffset",{"type":18,"value":271},{"type":13,"tag":34,"props":372,"children":374},{"className":373},[],[375],{"type":18,"value":376},"imageExtent",{"type":18,"value":378}," members of each element of\n",{"type":13,"tag":34,"props":380,"children":382},{"className":381},[],[383],{"type":18,"value":339},{"type":18,"value":341},{"type":13,"tag":343,"props":386,"children":387},{"type":345},[],{"type":18,"value":389}," respect the image transfer granularity requirements\nof ",{"type":13,"tag":34,"props":391,"children":393},{"className":392},[],[394],{"type":18,"value":75},{"type":18,"value":396},"’s command pool’s queue family, as described in\n",{"type":13,"tag":243,"props":398,"children":400},{"href":399},"/man/VkQueueFamilyProperties",[401],{"type":18,"value":402},"VkQueueFamilyProperties",{"type":13,"tag":281,"props":404,"children":406},{"name":405},"Valid Usage (Implicit)",[407,433,457,481,508,522],{"type":13,"tag":286,"props":408,"children":410},{"name":409},"VUID-vkCmdCopyImageToBuffer2-commandBuffer-parameter",[411],{"type":13,"tag":14,"props":412,"children":413},{},[414,419,420,423,425,431],{"type":13,"tag":34,"props":415,"children":417},{"className":416},[],[418],{"type":18,"value":75},{"type":18,"value":341},{"type":13,"tag":343,"props":421,"children":422},{"type":345},[],{"type":18,"value":424}," be a valid ",{"type":13,"tag":243,"props":426,"children":428},{"href":427},"/man/VkCommandBuffer",[429],{"type":18,"value":430},"VkCommandBuffer",{"type":18,"value":432}," handle",{"type":13,"tag":286,"props":434,"children":436},{"name":435},"VUID-vkCmdCopyImageToBuffer2-pCopyImageToBufferInfo-parameter",[437],{"type":13,"tag":14,"props":438,"children":439},{},[440,445,446,449,451,455],{"type":13,"tag":34,"props":441,"children":443},{"className":442},[],[444],{"type":18,"value":239},{"type":18,"value":341},{"type":13,"tag":343,"props":447,"children":448},{"type":345},[],{"type":18,"value":450}," be a valid pointer to a valid ",{"type":13,"tag":243,"props":452,"children":453},{"href":245},[454],{"type":18,"value":248},{"type":18,"value":456}," structure",{"type":13,"tag":286,"props":458,"children":460},{"name":459},"VUID-vkCmdCopyImageToBuffer2-commandBuffer-recording",[461],{"type":13,"tag":14,"props":462,"children":463},{},[464,469,470,473,475],{"type":13,"tag":34,"props":465,"children":467},{"className":466},[],[468],{"type":18,"value":75},{"type":18,"value":341},{"type":13,"tag":343,"props":471,"children":472},{"type":345},[],{"type":18,"value":474}," be in the ",{"type":13,"tag":243,"props":476,"children":478},{"href":477},"/chapters/commandbuffers#commandbuffers-lifecycle",[479],{"type":18,"value":480},"recording state",{"type":13,"tag":286,"props":482,"children":484},{"name":483},"VUID-vkCmdCopyImageToBuffer2-commandBuffer-cmdpool",[485],{"type":13,"tag":14,"props":486,"children":487},{},[488,489,494,496,501,503,506],{"type":18,"value":363},{"type":13,"tag":34,"props":490,"children":492},{"className":491},[],[493],{"type":18,"value":300},{"type":18,"value":495}," that ",{"type":13,"tag":34,"props":497,"children":499},{"className":498},[],[500],{"type":18,"value":75},{"type":18,"value":502}," was allocated from ",{"type":13,"tag":343,"props":504,"children":505},{"type":345},[],{"type":18,"value":507}," support transfer, graphics, or compute operations",{"type":13,"tag":286,"props":509,"children":511},{"name":510},"VUID-vkCmdCopyImageToBuffer2-renderpass",[512],{"type":13,"tag":14,"props":513,"children":514},{},[515,517,520],{"type":18,"value":516},"This command ",{"type":13,"tag":343,"props":518,"children":519},{"type":345},[],{"type":18,"value":521}," only be called outside of a render pass instance",{"type":13,"tag":286,"props":523,"children":525},{"name":524},"VUID-vkCmdCopyImageToBuffer2-videocoding",[526],{"type":13,"tag":14,"props":527,"children":528},{},[529,530,533],{"type":18,"value":516},{"type":13,"tag":343,"props":531,"children":532},{"type":345},[],{"type":18,"value":534}," only be called outside of a video coding scope",{"type":13,"tag":536,"props":537,"children":539},"validity-box",{"name":538},"Host Synchronization",[540],{"type":13,"tag":217,"props":541,"children":542},{},[543,559],{"type":13,"tag":221,"props":544,"children":545},{},[546,548,553,554,557],{"type":18,"value":547},"Host access to ",{"type":13,"tag":34,"props":549,"children":551},{"className":550},[],[552],{"type":18,"value":75},{"type":18,"value":341},{"type":13,"tag":343,"props":555,"children":556},{"type":345},[],{"type":18,"value":558}," be externally synchronized",{"type":13,"tag":221,"props":560,"children":561},{},[562,564,569,570,575,576,579],{"type":18,"value":563},"Host access to the ",{"type":13,"tag":34,"props":565,"children":567},{"className":566},[],[568],{"type":18,"value":300},{"type":18,"value":495},{"type":13,"tag":34,"props":571,"children":573},{"className":572},[],[574],{"type":18,"value":75},{"type":18,"value":502},{"type":13,"tag":343,"props":577,"children":578},{"type":345},[],{"type":18,"value":580}," be externally synchronized\n::",{"type":13,"tag":582,"props":583,"children":584},"style",{},[585],{"type":18,"value":586},"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":31,"searchDepth":63,"depth":63,"links":588},[],"markdown",1725732599036]