[{"data":1,"prerenderedAt":655},["ShallowReactive",2],{"MycbqAC1bb":3},{"title":4,"description":5,"parent":6,"type":7,"xrefs":8,"body":9,"_type":654,"_id":4},"vkCmdCopyBufferToImage2","Copy data from a buffer into an image","VK_VERSION_1_3","protos",[],{"type":10,"children":11,"toc":652},"root",[12,20,216,251,280,468,600,646],{"type":13,"tag":14,"props":15,"children":16},"element","p",{},[17],{"type":18,"value":19},"text","To copy data from a buffer object to an image 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 vkCmdCopyBufferToImage2KHR(\n VkCommandBuffer commandBuffer,\n const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);\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}," vkCmdCopyBufferToImage2KHR",{"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}," VkCopyBufferToImageInfo2",{"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}," pCopyBufferToImageInfo",{"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_buffer_to_image2_khr(\n command_buffer: vk::CommandBuffer,\n p_copy_buffer_to_image_info: *const vk::CopyBufferToImageInfo2,\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_buffer_to_image2_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_buffer_to_image_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},"CopyBufferToImageInfo2",{"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},"pCopyBufferToImageInfo",{"type":18,"value":241}," is a pointer to a\n",{"type":13,"tag":243,"props":244,"children":246},"a",{"href":245},"/man/VkCopyBufferToImageInfo2",[247],{"type":18,"value":248},"VkCopyBufferToImageInfo2",{"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/vkCmdCopyBufferToImage",[260],{"type":18,"value":261},"vkCmdCopyBufferToImage",{"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,403],{"type":13,"tag":286,"props":287,"children":289},"validity-field",{"name":288},"VUID-vkCmdCopyBufferToImage2-commandBuffer-07737",[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},"pCopyBufferToImageInfo→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-vkCmdCopyBufferToImage2-imageOffset-07738",[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":286,"props":404,"children":406},{"name":405},"VUID-vkCmdCopyBufferToImage2-commandBuffer-07739",[407],{"type":13,"tag":14,"props":408,"children":409},{},[410,411,415,416,421,422,427,429,434,435,441,443,449,450,453,455,461,462],{"type":18,"value":294},{"type":13,"tag":243,"props":412,"children":413},{"href":297},[414],{"type":18,"value":300},{"type":18,"value":302},{"type":13,"tag":34,"props":417,"children":419},{"className":418},[],[420],{"type":18,"value":75},{"type":18,"value":309},{"type":13,"tag":34,"props":423,"children":425},{"className":424},[],[426],{"type":18,"value":315},{"type":18,"value":428},", for each element of ",{"type":13,"tag":34,"props":430,"children":432},{"className":431},[],[433],{"type":18,"value":339},{"type":18,"value":325},{"type":13,"tag":34,"props":436,"children":438},{"className":437},[],[439],{"type":18,"value":440},"aspectMask",{"type":18,"value":442}," member of ",{"type":13,"tag":34,"props":444,"children":446},{"className":445},[],[447],{"type":18,"value":448},"imageSubresource",{"type":18,"value":341},{"type":13,"tag":343,"props":451,"children":452},{"type":345},[],{"type":18,"value":454}," not be\n",{"type":13,"tag":34,"props":456,"children":458},{"className":457},[],[459],{"type":18,"value":460},"VK_IMAGE_ASPECT_DEPTH_BIT",{"type":18,"value":317},{"type":13,"tag":34,"props":463,"children":465},{"className":464},[],[466],{"type":18,"value":467},"VK_IMAGE_ASPECT_STENCIL_BIT",{"type":13,"tag":281,"props":469,"children":471},{"name":470},"Valid Usage (Implicit)",[472,498,522,546,573,587],{"type":13,"tag":286,"props":473,"children":475},{"name":474},"VUID-vkCmdCopyBufferToImage2-commandBuffer-parameter",[476],{"type":13,"tag":14,"props":477,"children":478},{},[479,484,485,488,490,496],{"type":13,"tag":34,"props":480,"children":482},{"className":481},[],[483],{"type":18,"value":75},{"type":18,"value":341},{"type":13,"tag":343,"props":486,"children":487},{"type":345},[],{"type":18,"value":489}," be a valid ",{"type":13,"tag":243,"props":491,"children":493},{"href":492},"/man/VkCommandBuffer",[494],{"type":18,"value":495},"VkCommandBuffer",{"type":18,"value":497}," handle",{"type":13,"tag":286,"props":499,"children":501},{"name":500},"VUID-vkCmdCopyBufferToImage2-pCopyBufferToImageInfo-parameter",[502],{"type":13,"tag":14,"props":503,"children":504},{},[505,510,511,514,516,520],{"type":13,"tag":34,"props":506,"children":508},{"className":507},[],[509],{"type":18,"value":239},{"type":18,"value":341},{"type":13,"tag":343,"props":512,"children":513},{"type":345},[],{"type":18,"value":515}," be a valid pointer to a valid ",{"type":13,"tag":243,"props":517,"children":518},{"href":245},[519],{"type":18,"value":248},{"type":18,"value":521}," structure",{"type":13,"tag":286,"props":523,"children":525},{"name":524},"VUID-vkCmdCopyBufferToImage2-commandBuffer-recording",[526],{"type":13,"tag":14,"props":527,"children":528},{},[529,534,535,538,540],{"type":13,"tag":34,"props":530,"children":532},{"className":531},[],[533],{"type":18,"value":75},{"type":18,"value":341},{"type":13,"tag":343,"props":536,"children":537},{"type":345},[],{"type":18,"value":539}," be in the ",{"type":13,"tag":243,"props":541,"children":543},{"href":542},"/chapters/commandbuffers#commandbuffers-lifecycle",[544],{"type":18,"value":545},"recording state",{"type":13,"tag":286,"props":547,"children":549},{"name":548},"VUID-vkCmdCopyBufferToImage2-commandBuffer-cmdpool",[550],{"type":13,"tag":14,"props":551,"children":552},{},[553,554,559,561,566,568,571],{"type":18,"value":363},{"type":13,"tag":34,"props":555,"children":557},{"className":556},[],[558],{"type":18,"value":300},{"type":18,"value":560}," that ",{"type":13,"tag":34,"props":562,"children":564},{"className":563},[],[565],{"type":18,"value":75},{"type":18,"value":567}," was allocated from ",{"type":13,"tag":343,"props":569,"children":570},{"type":345},[],{"type":18,"value":572}," support transfer, graphics, or compute operations",{"type":13,"tag":286,"props":574,"children":576},{"name":575},"VUID-vkCmdCopyBufferToImage2-renderpass",[577],{"type":13,"tag":14,"props":578,"children":579},{},[580,582,585],{"type":18,"value":581},"This command ",{"type":13,"tag":343,"props":583,"children":584},{"type":345},[],{"type":18,"value":586}," only be called outside of a render pass instance",{"type":13,"tag":286,"props":588,"children":590},{"name":589},"VUID-vkCmdCopyBufferToImage2-videocoding",[591],{"type":13,"tag":14,"props":592,"children":593},{},[594,595,598],{"type":18,"value":581},{"type":13,"tag":343,"props":596,"children":597},{"type":345},[],{"type":18,"value":599}," only be called outside of a video coding scope",{"type":13,"tag":601,"props":602,"children":604},"validity-box",{"name":603},"Host Synchronization",[605],{"type":13,"tag":217,"props":606,"children":607},{},[608,624],{"type":13,"tag":221,"props":609,"children":610},{},[611,613,618,619,622],{"type":18,"value":612},"Host access to ",{"type":13,"tag":34,"props":614,"children":616},{"className":615},[],[617],{"type":18,"value":75},{"type":18,"value":341},{"type":13,"tag":343,"props":620,"children":621},{"type":345},[],{"type":18,"value":623}," be externally synchronized",{"type":13,"tag":221,"props":625,"children":626},{},[627,629,634,635,640,641,644],{"type":18,"value":628},"Host access to the ",{"type":13,"tag":34,"props":630,"children":632},{"className":631},[],[633],{"type":18,"value":300},{"type":18,"value":560},{"type":13,"tag":34,"props":636,"children":638},{"className":637},[],[639],{"type":18,"value":75},{"type":18,"value":567},{"type":13,"tag":343,"props":642,"children":643},{"type":345},[],{"type":18,"value":645}," be externally synchronized\n::",{"type":13,"tag":647,"props":648,"children":649},"style",{},[650],{"type":18,"value":651},"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":653},[],"markdown",1725732598918]