[{"data":1,"prerenderedAt":538},["ShallowReactive",2],{"$f-opvP8JnzMPYPJiTees5rMH-Z0zzoRhFRjgzGDU1CC0":3},{"title":4,"description":5,"parent":6,"cmd_buf_level":7,"render_pass_scope":10,"supported_queue_types":11,"tasks":14,"type":16,"xrefs":17,"body":18,"_type":537,"_id":4},"vkCmdPushDataEXT","Update the values of push data","VK_EXT_descriptor_heap",[8,9],"primary","secondary","both",[12,13],"VK_QUEUE_GRAPHICS_BIT","VK_QUEUE_COMPUTE_BIT",[15],"state","protos",[],{"type":19,"children":20,"toc":535},"root",[21,29,225,260,280,308,345,484,529],{"type":22,"tag":23,"props":24,"children":25},"element","p",{},[26],{"type":27,"value":28},"text","To update push data when using descriptor heaps, call:",{"type":22,"tag":30,"props":31,"children":32},"code-group",{},[33,119],{"type":22,"tag":34,"props":35,"children":41},"pre",{"className":36,"code":37,"filename":38,"language":39,"meta":40,"style":40},"language-c shiki shiki-themes github-light-default github-dark-default","void vkCmdPushDataEXT(\n VkCommandBuffer commandBuffer,\n const VkPushDataInfoEXT* pPushDataInfo);\n","C","c","",[42],{"type":22,"tag":43,"props":44,"children":45},"code",{"__ignoreMap":40},[46,70,90],{"type":22,"tag":47,"props":48,"children":51},"span",{"class":49,"line":50},"line",1,[52,58,64],{"type":22,"tag":47,"props":53,"children":55},{"style":54},"--shiki-default:#CF222E;--shiki-dark:#FF7B72",[56],{"type":27,"value":57},"void",{"type":22,"tag":47,"props":59,"children":61},{"style":60},"--shiki-default:#8250DF;--shiki-dark:#D2A8FF",[62],{"type":27,"value":63}," vkCmdPushDataEXT",{"type":22,"tag":47,"props":65,"children":67},{"style":66},"--shiki-default:#1F2328;--shiki-dark:#E6EDF3",[68],{"type":27,"value":69},"(\n",{"type":22,"tag":47,"props":71,"children":73},{"class":49,"line":72},2,[74,79,85],{"type":22,"tag":47,"props":75,"children":76},{"style":66},[77],{"type":27,"value":78}," VkCommandBuffer ",{"type":22,"tag":47,"props":80,"children":82},{"style":81},"--shiki-default:#953800;--shiki-dark:#FFA657",[83],{"type":27,"value":84},"commandBuffer",{"type":22,"tag":47,"props":86,"children":87},{"style":66},[88],{"type":27,"value":89},",\n",{"type":22,"tag":47,"props":91,"children":93},{"class":49,"line":92},3,[94,99,104,109,114],{"type":22,"tag":47,"props":95,"children":96},{"style":54},[97],{"type":27,"value":98}," const",{"type":22,"tag":47,"props":100,"children":101},{"style":66},[102],{"type":27,"value":103}," VkPushDataInfoEXT",{"type":22,"tag":47,"props":105,"children":106},{"style":54},[107],{"type":27,"value":108},"*",{"type":22,"tag":47,"props":110,"children":111},{"style":81},[112],{"type":27,"value":113}," pPushDataInfo",{"type":22,"tag":47,"props":115,"children":116},{"style":66},[117],{"type":27,"value":118},");\n",{"type":22,"tag":34,"props":120,"children":125},{"className":121,"code":122,"filename":123,"language":124,"meta":40,"style":40},"language-rs shiki shiki-themes github-light-default github-dark-default","pub fn cmd_push_data_ext(\n command_buffer: vk::CommandBuffer,\n p_push_data_info: *const vk::PushDataInfoEXT,\n);\n","Rust","rs",[126],{"type":22,"tag":43,"props":127,"children":128},{"__ignoreMap":40},[129,151,183,217],{"type":22,"tag":47,"props":130,"children":131},{"class":49,"line":50},[132,137,142,147],{"type":22,"tag":47,"props":133,"children":134},{"style":54},[135],{"type":27,"value":136},"pub",{"type":22,"tag":47,"props":138,"children":139},{"style":54},[140],{"type":27,"value":141}," fn",{"type":22,"tag":47,"props":143,"children":144},{"style":60},[145],{"type":27,"value":146}," cmd_push_data_ext",{"type":22,"tag":47,"props":148,"children":149},{"style":66},[150],{"type":27,"value":69},{"type":22,"tag":47,"props":152,"children":153},{"class":49,"line":72},[154,159,164,169,174,179],{"type":22,"tag":47,"props":155,"children":156},{"style":66},[157],{"type":27,"value":158}," command_buffer",{"type":22,"tag":47,"props":160,"children":161},{"style":54},[162],{"type":27,"value":163},":",{"type":22,"tag":47,"props":165,"children":166},{"style":81},[167],{"type":27,"value":168}," vk",{"type":22,"tag":47,"props":170,"children":171},{"style":54},[172],{"type":27,"value":173},"::",{"type":22,"tag":47,"props":175,"children":176},{"style":81},[177],{"type":27,"value":178},"CommandBuffer",{"type":22,"tag":47,"props":180,"children":181},{"style":66},[182],{"type":27,"value":89},{"type":22,"tag":47,"props":184,"children":185},{"class":49,"line":92},[186,191,195,200,204,208,213],{"type":22,"tag":47,"props":187,"children":188},{"style":66},[189],{"type":27,"value":190}," p_push_data_info",{"type":22,"tag":47,"props":192,"children":193},{"style":54},[194],{"type":27,"value":163},{"type":22,"tag":47,"props":196,"children":197},{"style":54},[198],{"type":27,"value":199}," *const",{"type":22,"tag":47,"props":201,"children":202},{"style":81},[203],{"type":27,"value":168},{"type":22,"tag":47,"props":205,"children":206},{"style":54},[207],{"type":27,"value":173},{"type":22,"tag":47,"props":209,"children":210},{"style":81},[211],{"type":27,"value":212},"PushDataInfoEXT",{"type":22,"tag":47,"props":214,"children":215},{"style":66},[216],{"type":27,"value":89},{"type":22,"tag":47,"props":218,"children":220},{"class":49,"line":219},4,[221],{"type":22,"tag":47,"props":222,"children":223},{"style":66},[224],{"type":27,"value":118},{"type":22,"tag":226,"props":227,"children":228},"ul",{},[229,240],{"type":22,"tag":230,"props":231,"children":232},"li",{},[233,238],{"type":22,"tag":43,"props":234,"children":236},{"className":235},[],[237],{"type":27,"value":84},{"type":27,"value":239}," is the command buffer in which the push data update\nwill be recorded.",{"type":22,"tag":230,"props":241,"children":242},{},[243,249,251,258],{"type":22,"tag":43,"props":244,"children":246},{"className":245},[],[247],{"type":27,"value":248},"pPushDataInfo",{"type":27,"value":250}," is a pointer to a ",{"type":22,"tag":252,"props":253,"children":255},"a",{"href":254},"/man/VkPushDataInfoEXT",[256],{"type":27,"value":257},"VkPushDataInfoEXT",{"type":27,"value":259}," structure.",{"type":22,"tag":23,"props":261,"children":262},{},[263,265,270,272,278],{"type":27,"value":264},"When ",{"type":22,"tag":43,"props":266,"children":268},{"className":267},[],[269],{"type":27,"value":4},{"type":27,"value":271}," is recorded, it\n",{"type":22,"tag":252,"props":273,"children":275},{"href":274},"/chapters/descriptorheaps#descriptorheaps-invalidate-sets",[276],{"type":27,"value":277},"immediately invalidates all non-heap\ndescriptor state",{"type":27,"value":279},".\nSimilarly, recording any non-heap descriptor state commands immediately\ninvalidates state set by this command.",{"type":22,"tag":23,"props":281,"children":282},{},[283,285,291,293,299,300,306],{"type":27,"value":284},"All push data is available to all shaders using the existing\n",{"type":22,"tag":43,"props":286,"children":288},{"className":287},[],[289],{"type":27,"value":290},"PushConstant",{"type":27,"value":292}," ",{"type":22,"tag":43,"props":294,"children":296},{"className":295},[],[297],{"type":27,"value":298},"Storage",{"type":27,"value":292},{"type":22,"tag":43,"props":301,"children":303},{"className":302},[],[304],{"type":27,"value":305},"Class",{"type":27,"value":307},".",{"type":22,"tag":309,"props":310,"children":311},"note",{},[312],{"type":22,"tag":23,"props":313,"children":314},{},[315,317,327,329,335,337,343],{"type":27,"value":316},"Device addresses in push data are intended as the fast path for\nshader-constant data that does not fit into push data directly.\nIn order to maximize performance of constant data inputs, addresses should\nbe aligned to ",{"type":22,"tag":252,"props":318,"children":320},{"href":319},"/man/VkPhysicalDeviceLimits#limits-minUniformBufferOffsetAlignment",[321],{"type":22,"tag":43,"props":322,"children":324},{"className":323},[],[325],{"type":27,"value":326},"minUniformBufferOffsetAlignment",{"type":27,"value":328},", and decorated with ",{"type":22,"tag":43,"props":330,"children":332},{"className":331},[],[333],{"type":27,"value":334},"Alignment",{"type":27,"value":336},"\nand ",{"type":22,"tag":43,"props":338,"children":340},{"className":339},[],[341],{"type":27,"value":342},"NonWritable",{"type":27,"value":344}," in the shader when using physical pointers.",{"type":22,"tag":346,"props":347,"children":349},"validity-group",{"name":348},"Valid Usage (Implicit)",[350,379,403,427,470],{"type":22,"tag":351,"props":352,"children":354},"validity-field",{"name":353},"VUID-vkCmdPushDataEXT-commandBuffer-parameter",[355],{"type":22,"tag":23,"props":356,"children":357},{},[358,363,364,369,371,377],{"type":22,"tag":43,"props":359,"children":361},{"className":360},[],[362],{"type":27,"value":84},{"type":27,"value":292},{"type":22,"tag":365,"props":366,"children":368},"normative",{"type":367},"must",[],{"type":27,"value":370}," be a valid ",{"type":22,"tag":252,"props":372,"children":374},{"href":373},"/man/VkCommandBuffer",[375],{"type":27,"value":376},"VkCommandBuffer",{"type":27,"value":378}," handle",{"type":22,"tag":351,"props":380,"children":382},{"name":381},"VUID-vkCmdPushDataEXT-pPushDataInfo-parameter",[383],{"type":22,"tag":23,"props":384,"children":385},{},[386,391,392,395,397,401],{"type":22,"tag":43,"props":387,"children":389},{"className":388},[],[390],{"type":27,"value":248},{"type":27,"value":292},{"type":22,"tag":365,"props":393,"children":394},{"type":367},[],{"type":27,"value":396}," be a valid pointer to a valid ",{"type":22,"tag":252,"props":398,"children":399},{"href":254},[400],{"type":27,"value":257},{"type":27,"value":402}," structure",{"type":22,"tag":351,"props":404,"children":406},{"name":405},"VUID-vkCmdPushDataEXT-commandBuffer-recording",[407],{"type":22,"tag":23,"props":408,"children":409},{},[410,415,416,419,421],{"type":22,"tag":43,"props":411,"children":413},{"className":412},[],[414],{"type":27,"value":84},{"type":27,"value":292},{"type":22,"tag":365,"props":417,"children":418},{"type":367},[],{"type":27,"value":420}," be in the ",{"type":22,"tag":252,"props":422,"children":424},{"href":423},"/chapters/commandbuffers#commandbuffers-lifecycle",[425],{"type":27,"value":426},"recording state",{"type":22,"tag":351,"props":428,"children":430},{"name":429},"VUID-vkCmdPushDataEXT-commandBuffer-cmdpool",[431],{"type":22,"tag":23,"props":432,"children":433},{},[434,436,442,444,449,451,454,456,461,463,468],{"type":27,"value":435},"The ",{"type":22,"tag":43,"props":437,"children":439},{"className":438},[],[440],{"type":27,"value":441},"VkCommandPool",{"type":27,"value":443}," that ",{"type":22,"tag":43,"props":445,"children":447},{"className":446},[],[448],{"type":27,"value":84},{"type":27,"value":450}," was allocated from ",{"type":22,"tag":365,"props":452,"children":453},{"type":367},[],{"type":27,"value":455}," support ",{"type":22,"tag":43,"props":457,"children":459},{"className":458},[],[460],{"type":27,"value":13},{"type":27,"value":462},", or ",{"type":22,"tag":43,"props":464,"children":466},{"className":465},[],[467],{"type":27,"value":12},{"type":27,"value":469}," operations",{"type":22,"tag":351,"props":471,"children":473},{"name":472},"VUID-vkCmdPushDataEXT-videocoding",[474],{"type":22,"tag":23,"props":475,"children":476},{},[477,479,482],{"type":27,"value":478},"This command ",{"type":22,"tag":365,"props":480,"children":481},{"type":367},[],{"type":27,"value":483}," only be called outside of a video coding scope",{"type":22,"tag":485,"props":486,"children":488},"validity-box",{"name":487},"Host Synchronization",[489],{"type":22,"tag":226,"props":490,"children":491},{},[492,508],{"type":22,"tag":230,"props":493,"children":494},{},[495,497,502,503,506],{"type":27,"value":496},"Host access to ",{"type":22,"tag":43,"props":498,"children":500},{"className":499},[],[501],{"type":27,"value":84},{"type":27,"value":292},{"type":22,"tag":365,"props":504,"children":505},{"type":367},[],{"type":27,"value":507}," be externally synchronized",{"type":22,"tag":230,"props":509,"children":510},{},[511,513,518,519,524,525,528],{"type":27,"value":512},"Host access to the ",{"type":22,"tag":43,"props":514,"children":516},{"className":515},[],[517],{"type":27,"value":441},{"type":27,"value":443},{"type":22,"tag":43,"props":520,"children":522},{"className":521},[],[523],{"type":27,"value":84},{"type":27,"value":450},{"type":22,"tag":365,"props":526,"children":527},{"type":367},[],{"type":27,"value":507},{"type":22,"tag":530,"props":531,"children":532},"style",{},[533],{"type":27,"value":534},"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":40,"searchDepth":72,"depth":72,"links":536},[],"markdown",1773054799115]