[{"data":1,"prerenderedAt":1536},["ShallowReactive",2],{"LWVZkM8CSU":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":1535,"_id":4},"vkCmdSetDescriptorBufferOffsetsEXT","Setting descriptor buffer offsets in a command buffer","VK_EXT_descriptor_buffer",[8,9],"primary","secondary","both",[12,13],"graphics","compute",[15],"state","protos",[],{"type":19,"children":20,"toc":1533},"root",[21,29,441,566,669,700,759,779,788,801,817,847,1224,1481,1527],{"type":22,"tag":23,"props":24,"children":25},"element","p",{},[26],{"type":27,"value":28},"text","To set descriptor buffer offsets in a command buffer, call:",{"type":22,"tag":30,"props":31,"children":32},"code-group",{},[33,212],{"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 vkCmdSetDescriptorBufferOffsetsEXT(\n VkCommandBuffer commandBuffer,\n VkPipelineBindPoint pipelineBindPoint,\n VkPipelineLayout layout,\n uint32_t firstSet,\n uint32_t setCount,\n const uint32_t* pBufferIndices,\n const VkDeviceSize* pOffsets);\n","C","c","",[42],{"type":22,"tag":43,"props":44,"children":45},"code",{"__ignoreMap":40},[46,70,90,108,126,144,161,184],{"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}," vkCmdSetDescriptorBufferOffsetsEXT",{"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],{"type":22,"tag":47,"props":95,"children":96},{"style":66},[97],{"type":27,"value":98}," VkPipelineBindPoint ",{"type":22,"tag":47,"props":100,"children":101},{"style":81},[102],{"type":27,"value":103},"pipelineBindPoint",{"type":22,"tag":47,"props":105,"children":106},{"style":66},[107],{"type":27,"value":89},{"type":22,"tag":47,"props":109,"children":111},{"class":49,"line":110},4,[112,117,122],{"type":22,"tag":47,"props":113,"children":114},{"style":66},[115],{"type":27,"value":116}," VkPipelineLayout ",{"type":22,"tag":47,"props":118,"children":119},{"style":81},[120],{"type":27,"value":121},"layout",{"type":22,"tag":47,"props":123,"children":124},{"style":66},[125],{"type":27,"value":89},{"type":22,"tag":47,"props":127,"children":129},{"class":49,"line":128},5,[130,135,140],{"type":22,"tag":47,"props":131,"children":132},{"style":54},[133],{"type":27,"value":134}," uint32_t",{"type":22,"tag":47,"props":136,"children":137},{"style":81},[138],{"type":27,"value":139}," firstSet",{"type":22,"tag":47,"props":141,"children":142},{"style":66},[143],{"type":27,"value":89},{"type":22,"tag":47,"props":145,"children":147},{"class":49,"line":146},6,[148,152,157],{"type":22,"tag":47,"props":149,"children":150},{"style":54},[151],{"type":27,"value":134},{"type":22,"tag":47,"props":153,"children":154},{"style":81},[155],{"type":27,"value":156}," setCount",{"type":22,"tag":47,"props":158,"children":159},{"style":66},[160],{"type":27,"value":89},{"type":22,"tag":47,"props":162,"children":164},{"class":49,"line":163},7,[165,170,175,180],{"type":22,"tag":47,"props":166,"children":167},{"style":54},[168],{"type":27,"value":169}," const",{"type":22,"tag":47,"props":171,"children":172},{"style":54},[173],{"type":27,"value":174}," uint32_t*",{"type":22,"tag":47,"props":176,"children":177},{"style":81},[178],{"type":27,"value":179}," pBufferIndices",{"type":22,"tag":47,"props":181,"children":182},{"style":66},[183],{"type":27,"value":89},{"type":22,"tag":47,"props":185,"children":187},{"class":49,"line":186},8,[188,192,197,202,207],{"type":22,"tag":47,"props":189,"children":190},{"style":54},[191],{"type":27,"value":169},{"type":22,"tag":47,"props":193,"children":194},{"style":66},[195],{"type":27,"value":196}," VkDeviceSize",{"type":22,"tag":47,"props":198,"children":199},{"style":54},[200],{"type":27,"value":201},"*",{"type":22,"tag":47,"props":203,"children":204},{"style":81},[205],{"type":27,"value":206}," pOffsets",{"type":22,"tag":47,"props":208,"children":209},{"style":66},[210],{"type":27,"value":211},");\n",{"type":22,"tag":34,"props":213,"children":218},{"className":214,"code":215,"filename":216,"language":217,"meta":40,"style":40},"language-rs shiki shiki-themes github-light-default github-dark-default","pub fn cmd_set_descriptor_buffer_offsets_ext(\n command_buffer: vk::CommandBuffer,\n pipeline_bind_point: vk::PipelineBindPoint,\n layout: vk::PipelineLayout,\n first_set: u32,\n set_count: u32,\n p_buffer_indices: *const u32,\n p_offsets: *const vk::DeviceSize,\n);\n","Rust","rs",[219],{"type":22,"tag":43,"props":220,"children":221},{"__ignoreMap":40},[222,244,276,305,334,355,375,400,433],{"type":22,"tag":47,"props":223,"children":224},{"class":49,"line":50},[225,230,235,240],{"type":22,"tag":47,"props":226,"children":227},{"style":54},[228],{"type":27,"value":229},"pub",{"type":22,"tag":47,"props":231,"children":232},{"style":54},[233],{"type":27,"value":234}," fn",{"type":22,"tag":47,"props":236,"children":237},{"style":60},[238],{"type":27,"value":239}," cmd_set_descriptor_buffer_offsets_ext",{"type":22,"tag":47,"props":241,"children":242},{"style":66},[243],{"type":27,"value":69},{"type":22,"tag":47,"props":245,"children":246},{"class":49,"line":72},[247,252,257,262,267,272],{"type":22,"tag":47,"props":248,"children":249},{"style":66},[250],{"type":27,"value":251}," command_buffer",{"type":22,"tag":47,"props":253,"children":254},{"style":54},[255],{"type":27,"value":256},":",{"type":22,"tag":47,"props":258,"children":259},{"style":81},[260],{"type":27,"value":261}," vk",{"type":22,"tag":47,"props":263,"children":264},{"style":54},[265],{"type":27,"value":266},"::",{"type":22,"tag":47,"props":268,"children":269},{"style":81},[270],{"type":27,"value":271},"CommandBuffer",{"type":22,"tag":47,"props":273,"children":274},{"style":66},[275],{"type":27,"value":89},{"type":22,"tag":47,"props":277,"children":278},{"class":49,"line":92},[279,284,288,292,296,301],{"type":22,"tag":47,"props":280,"children":281},{"style":66},[282],{"type":27,"value":283}," pipeline_bind_point",{"type":22,"tag":47,"props":285,"children":286},{"style":54},[287],{"type":27,"value":256},{"type":22,"tag":47,"props":289,"children":290},{"style":81},[291],{"type":27,"value":261},{"type":22,"tag":47,"props":293,"children":294},{"style":54},[295],{"type":27,"value":266},{"type":22,"tag":47,"props":297,"children":298},{"style":81},[299],{"type":27,"value":300},"PipelineBindPoint",{"type":22,"tag":47,"props":302,"children":303},{"style":66},[304],{"type":27,"value":89},{"type":22,"tag":47,"props":306,"children":307},{"class":49,"line":110},[308,313,317,321,325,330],{"type":22,"tag":47,"props":309,"children":310},{"style":66},[311],{"type":27,"value":312}," layout",{"type":22,"tag":47,"props":314,"children":315},{"style":54},[316],{"type":27,"value":256},{"type":22,"tag":47,"props":318,"children":319},{"style":81},[320],{"type":27,"value":261},{"type":22,"tag":47,"props":322,"children":323},{"style":54},[324],{"type":27,"value":266},{"type":22,"tag":47,"props":326,"children":327},{"style":81},[328],{"type":27,"value":329},"PipelineLayout",{"type":22,"tag":47,"props":331,"children":332},{"style":66},[333],{"type":27,"value":89},{"type":22,"tag":47,"props":335,"children":336},{"class":49,"line":128},[337,342,346,351],{"type":22,"tag":47,"props":338,"children":339},{"style":66},[340],{"type":27,"value":341}," first_set",{"type":22,"tag":47,"props":343,"children":344},{"style":54},[345],{"type":27,"value":256},{"type":22,"tag":47,"props":347,"children":348},{"style":81},[349],{"type":27,"value":350}," u32",{"type":22,"tag":47,"props":352,"children":353},{"style":66},[354],{"type":27,"value":89},{"type":22,"tag":47,"props":356,"children":357},{"class":49,"line":146},[358,363,367,371],{"type":22,"tag":47,"props":359,"children":360},{"style":66},[361],{"type":27,"value":362}," set_count",{"type":22,"tag":47,"props":364,"children":365},{"style":54},[366],{"type":27,"value":256},{"type":22,"tag":47,"props":368,"children":369},{"style":81},[370],{"type":27,"value":350},{"type":22,"tag":47,"props":372,"children":373},{"style":66},[374],{"type":27,"value":89},{"type":22,"tag":47,"props":376,"children":377},{"class":49,"line":163},[378,383,387,392,396],{"type":22,"tag":47,"props":379,"children":380},{"style":66},[381],{"type":27,"value":382}," p_buffer_indices",{"type":22,"tag":47,"props":384,"children":385},{"style":54},[386],{"type":27,"value":256},{"type":22,"tag":47,"props":388,"children":389},{"style":54},[390],{"type":27,"value":391}," *const",{"type":22,"tag":47,"props":393,"children":394},{"style":81},[395],{"type":27,"value":350},{"type":22,"tag":47,"props":397,"children":398},{"style":66},[399],{"type":27,"value":89},{"type":22,"tag":47,"props":401,"children":402},{"class":49,"line":186},[403,408,412,416,420,424,429],{"type":22,"tag":47,"props":404,"children":405},{"style":66},[406],{"type":27,"value":407}," p_offsets",{"type":22,"tag":47,"props":409,"children":410},{"style":54},[411],{"type":27,"value":256},{"type":22,"tag":47,"props":413,"children":414},{"style":54},[415],{"type":27,"value":391},{"type":22,"tag":47,"props":417,"children":418},{"style":81},[419],{"type":27,"value":261},{"type":22,"tag":47,"props":421,"children":422},{"style":54},[423],{"type":27,"value":266},{"type":22,"tag":47,"props":425,"children":426},{"style":81},[427],{"type":27,"value":428},"DeviceSize",{"type":22,"tag":47,"props":430,"children":431},{"style":66},[432],{"type":27,"value":89},{"type":22,"tag":47,"props":434,"children":436},{"class":49,"line":435},9,[437],{"type":22,"tag":47,"props":438,"children":439},{"style":66},[440],{"type":27,"value":211},{"type":22,"tag":442,"props":443,"children":444},"ul",{},[445,456,475,492,503,530,548],{"type":22,"tag":446,"props":447,"children":448},"li",{},[449,454],{"type":22,"tag":43,"props":450,"children":452},{"className":451},[],[453],{"type":27,"value":84},{"type":27,"value":455}," is the command buffer in which the descriptor buffer\noffsets will be set.",{"type":22,"tag":446,"props":457,"children":458},{},[459,464,466,473],{"type":22,"tag":43,"props":460,"children":462},{"className":461},[],[463],{"type":27,"value":103},{"type":27,"value":465}," is a ",{"type":22,"tag":467,"props":468,"children":470},"a",{"href":469},"/man/VkPipelineBindPoint",[471],{"type":27,"value":472},"VkPipelineBindPoint",{"type":27,"value":474}," indicating the\ntype of the pipeline that will use the descriptors.",{"type":22,"tag":446,"props":476,"children":477},{},[478,483,484,490],{"type":22,"tag":43,"props":479,"children":481},{"className":480},[],[482],{"type":27,"value":121},{"type":27,"value":465},{"type":22,"tag":467,"props":485,"children":487},{"href":486},"/man/VkPipelineLayout",[488],{"type":27,"value":489},"VkPipelineLayout",{"type":27,"value":491}," object used to program the\nbindings.",{"type":22,"tag":446,"props":493,"children":494},{},[495,501],{"type":22,"tag":43,"props":496,"children":498},{"className":497},[],[499],{"type":27,"value":500},"firstSet",{"type":27,"value":502}," is the number of the first set to be bound.",{"type":22,"tag":446,"props":504,"children":505},{},[506,512,514,520,522,528],{"type":22,"tag":43,"props":507,"children":509},{"className":508},[],[510],{"type":27,"value":511},"setCount",{"type":27,"value":513}," is the number of elements in the ",{"type":22,"tag":43,"props":515,"children":517},{"className":516},[],[518],{"type":27,"value":519},"pBufferIndices",{"type":27,"value":521}," and\n",{"type":22,"tag":43,"props":523,"children":525},{"className":524},[],[526],{"type":27,"value":527},"pOffsets",{"type":27,"value":529}," arrays.",{"type":22,"tag":446,"props":531,"children":532},{},[533,538,540,546],{"type":22,"tag":43,"props":534,"children":536},{"className":535},[],[537],{"type":27,"value":519},{"type":27,"value":539}," is a pointer to an array of indices into the\ndescriptor buffer binding points set by\n",{"type":22,"tag":467,"props":541,"children":543},{"href":542},"/man/vkCmdBindDescriptorBuffersEXT",[544],{"type":27,"value":545},"vkCmdBindDescriptorBuffersEXT",{"type":27,"value":547},".",{"type":22,"tag":446,"props":549,"children":550},{},[551,556,558,564],{"type":22,"tag":43,"props":552,"children":554},{"className":553},[],[555],{"type":27,"value":527},{"type":27,"value":557}," is a pointer to an array of ",{"type":22,"tag":467,"props":559,"children":561},{"href":560},"/man/VkDeviceSize",[562],{"type":27,"value":563},"VkDeviceSize",{"type":27,"value":565}," offsets\nto apply to the bound descriptor buffers.",{"type":22,"tag":23,"props":567,"children":568},{},[569,574,576,581,583,587,589,594,596,601,603,609,611,617,619,624,626,631,633,638,640,645,647,653,655,660,662,668],{"type":22,"tag":43,"props":570,"children":572},{"className":571},[],[573],{"type":27,"value":4},{"type":27,"value":575}," binds ",{"type":22,"tag":43,"props":577,"children":579},{"className":578},[],[580],{"type":27,"value":511},{"type":27,"value":582}," pairs of\ndescriptor buffers, specified by indices into the binding points bound using\n",{"type":22,"tag":467,"props":584,"children":585},{"href":542},[586],{"type":27,"value":545},{"type":27,"value":588},", and buffer offsets to set numbers\n[",{"type":22,"tag":43,"props":590,"children":592},{"className":591},[],[593],{"type":27,"value":500},{"type":27,"value":595},"..",{"type":22,"tag":43,"props":597,"children":599},{"className":598},[],[600],{"type":27,"value":500},{"type":27,"value":602},"+",{"type":22,"tag":43,"props":604,"children":606},{"className":605},[],[607],{"type":27,"value":608},"descriptorSetCount",{"type":27,"value":610},"-1] for subsequent\n",{"type":22,"tag":467,"props":612,"children":614},{"href":613},"/man/vkCmdBindPipeline#pipelines-bindpoint-commands",[615],{"type":27,"value":616},"bound pipeline commands",{"type":27,"value":618}," set by\n",{"type":22,"tag":43,"props":620,"children":622},{"className":621},[],[623],{"type":27,"value":103},{"type":27,"value":625},".\nSet [",{"type":22,"tag":43,"props":627,"children":629},{"className":628},[],[630],{"type":27,"value":500},{"type":27,"value":632}," + i] is bound to the descriptor buffer at binding\n",{"type":22,"tag":43,"props":634,"children":636},{"className":635},[],[637],{"type":27,"value":519},{"type":27,"value":639},"[i] at an offset of ",{"type":22,"tag":43,"props":641,"children":643},{"className":642},[],[644],{"type":27,"value":527},{"type":27,"value":646},"[i].\nAny bindings that were previously applied via these sets, or calls to\n",{"type":22,"tag":467,"props":648,"children":650},{"href":649},"/man/vkCmdBindDescriptorSets",[651],{"type":27,"value":652},"vkCmdBindDescriptorSets",{"type":27,"value":654},", are no longer valid.\nOther sets will also be invalidated upon calling this command if\n",{"type":22,"tag":43,"props":656,"children":658},{"className":657},[],[659],{"type":27,"value":121},{"type":27,"value":661}," differs from the pipeline layout used to bind those other sets,\nas described in ",{"type":22,"tag":467,"props":663,"children":665},{"href":664},"/chapters/descriptorsets#descriptorsets-compatibility",[666],{"type":27,"value":667},"Pipeline Layout\nCompatibility",{"type":27,"value":547},{"type":22,"tag":23,"props":670,"children":671},{},[672,674,679,681,687,689,693,695,698],{"type":27,"value":673},"After binding descriptors, applications ",{"type":22,"tag":675,"props":676,"children":678},"normative",{"type":677},"can",[],{"type":27,"value":680}," modify descriptor memory either\nby performing writes on the host or with device commands.\nWhen descriptor memory is updated with device commands, visibility for the\nshader stage accessing a descriptor is ensured with the\n",{"type":22,"tag":43,"props":682,"children":684},{"className":683},[],[685],{"type":27,"value":686},"VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT",{"type":27,"value":688}," access flag.\nImplementations ",{"type":22,"tag":675,"props":690,"children":692},{"type":691},"must",[],{"type":27,"value":694}," not access resources referenced by these descriptors\nunless they are dynamically accessed by shaders.\nDescriptors bound with this call ",{"type":22,"tag":675,"props":696,"children":697},{"type":677},[],{"type":27,"value":699}," be undefined: if they are not\ndynamically accessed by shaders.",{"type":22,"tag":23,"props":701,"children":702},{},[703,705,709,711,717,719,724,726,732,734,739,740,745,747,752,754,757],{"type":27,"value":704},"Implementations ",{"type":22,"tag":675,"props":706,"children":708},{"type":707},"may",[],{"type":27,"value":710}," read descriptor data for any statically accessed\ndescriptor if the ",{"type":22,"tag":43,"props":712,"children":714},{"className":713},[],[715],{"type":27,"value":716},"binding",{"type":27,"value":718}," in ",{"type":22,"tag":43,"props":720,"children":722},{"className":721},[],[723],{"type":27,"value":121},{"type":27,"value":725}," is not declared with the\n",{"type":22,"tag":43,"props":727,"children":729},{"className":728},[],[730],{"type":27,"value":731},"VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT",{"type":27,"value":733}," flag.\nIf the ",{"type":22,"tag":43,"props":735,"children":737},{"className":736},[],[738],{"type":27,"value":716},{"type":27,"value":718},{"type":22,"tag":43,"props":741,"children":743},{"className":742},[],[744],{"type":27,"value":121},{"type":27,"value":746}," is declared with\n",{"type":22,"tag":43,"props":748,"children":750},{"className":749},[],[751],{"type":27,"value":731},{"type":27,"value":753},", implementations\n",{"type":22,"tag":675,"props":755,"children":756},{"type":691},[],{"type":27,"value":758}," not read descriptor data that is not dynamically accessed.",{"type":22,"tag":23,"props":760,"children":761},{},[762,764,767,769,772,774,777],{"type":27,"value":763},"Applications ",{"type":22,"tag":675,"props":765,"children":766},{"type":691},[],{"type":27,"value":768}," ensure that any descriptor which the implementation ",{"type":22,"tag":675,"props":770,"children":771},{"type":707},[],{"type":27,"value":773},"\nread ",{"type":22,"tag":675,"props":775,"children":776},{"type":691},[],{"type":27,"value":778}," be in-bounds of the underlying descriptor buffer binding.",{"type":22,"tag":780,"props":781,"children":782},"note",{},[783],{"type":22,"tag":23,"props":784,"children":785},{},[786],{"type":27,"value":787},"Applications can freely decide how large a variable descriptor buffer\nbinding is, so it may not be safe to read such descriptor payloads\nstatically.\nThe intention of these rules is to allow implementations to speculatively\nprefetch descriptor payloads where feasible.",{"type":22,"tag":23,"props":789,"children":790},{},[791,793,799],{"type":27,"value":792},"Dynamically accessing a resource through descriptor data from an unbound\nregion of a ",{"type":22,"tag":467,"props":794,"children":796},{"href":795},"/chapters/sparsememory#sparsememory-partially-resident-buffers",[797],{"type":27,"value":798},"sparse\npartially-resident buffer",{"type":27,"value":800}," will result in invalid descriptor data being\nread, and therefore undefined: behavior.",{"type":22,"tag":780,"props":802,"children":803},{},[804],{"type":22,"tag":23,"props":805,"children":806},{},[807,809,815],{"type":27,"value":808},"For descriptors written by the host, visibility is implied through the\nautomatic visibility operation on queue submit, and there is no need to\nconsider ",{"type":22,"tag":43,"props":810,"children":812},{"className":811},[],[813],{"type":27,"value":814},"VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT",{"type":27,"value":816},".\nExplicit synchronization for descriptors is only required when descriptors\nare updated on the device.",{"type":22,"tag":780,"props":818,"children":819},{},[820],{"type":22,"tag":23,"props":821,"children":822},{},[823,825,831,832,838,839,845],{"type":27,"value":824},"The requirements above imply that all descriptor bindings have been defined\nwith the equivalent of ",{"type":22,"tag":43,"props":826,"children":828},{"className":827},[],[829],{"type":27,"value":830},"VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT",{"type":27,"value":89},{"type":22,"tag":43,"props":833,"children":835},{"className":834},[],[836],{"type":27,"value":837},"VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT",{"type":27,"value":521},{"type":22,"tag":43,"props":840,"children":842},{"className":841},[],[843],{"type":27,"value":844},"VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT",{"type":27,"value":846},", but enabling those features\nis not required to get this behavior.",{"type":22,"tag":848,"props":849,"children":851},"validity-group",{"name":850},"Valid Usage",[852,887,926,963,999,1030,1059,1108,1166,1191],{"type":22,"tag":853,"props":854,"children":856},"validity-field",{"name":855},"VUID-vkCmdSetDescriptorBufferOffsetsEXT-pOffsets-08061",[857],{"type":22,"tag":23,"props":858,"children":859},{},[860,862,867,869,872,874,880,881],{"type":27,"value":861},"The offsets in ",{"type":22,"tag":43,"props":863,"children":865},{"className":864},[],[866],{"type":27,"value":527},{"type":27,"value":868}," ",{"type":22,"tag":675,"props":870,"children":871},{"type":691},[],{"type":27,"value":873}," be aligned to\n",{"type":22,"tag":467,"props":875,"children":877},{"href":876},"/man/VkPhysicalDeviceDescriptorBufferPropertiesEXT",[878],{"type":27,"value":879},"VkPhysicalDeviceDescriptorBufferPropertiesEXT",{"type":27,"value":266},{"type":22,"tag":43,"props":882,"children":884},{"className":883},[],[885],{"type":27,"value":886},"descriptorBufferOffsetAlignment",{"type":22,"tag":853,"props":888,"children":890},{"name":889},"VUID-vkCmdSetDescriptorBufferOffsetsEXT-pOffsets-08063",[891],{"type":22,"tag":23,"props":892,"children":893},{},[894,895,900,901,904,906,911,913,918,920],{"type":27,"value":861},{"type":22,"tag":43,"props":896,"children":898},{"className":897},[],[899],{"type":27,"value":527},{"type":27,"value":868},{"type":22,"tag":675,"props":902,"children":903},{"type":691},[],{"type":27,"value":905}," be small enough such that any\ndescriptor binding referenced by ",{"type":22,"tag":43,"props":907,"children":909},{"className":908},[],[910],{"type":27,"value":121},{"type":27,"value":912},"\nwithout the ",{"type":22,"tag":43,"props":914,"children":916},{"className":915},[],[917],{"type":27,"value":731},{"type":27,"value":919},"\nflag\ncomputes a valid address inside the underlying ",{"type":22,"tag":467,"props":921,"children":923},{"href":922},"/man/VkBuffer",[924],{"type":27,"value":925},"VkBuffer",{"type":22,"tag":853,"props":927,"children":929},{"name":928},"VUID-vkCmdSetDescriptorBufferOffsetsEXT-pOffsets-08126",[930],{"type":22,"tag":23,"props":931,"children":932},{},[933,934,939,940,943,945,948,950,954,955,961],{"type":27,"value":861},{"type":22,"tag":43,"props":935,"children":937},{"className":936},[],[938],{"type":27,"value":527},{"type":27,"value":868},{"type":22,"tag":675,"props":941,"children":942},{"type":691},[],{"type":27,"value":944}," be small enough such that any\nlocation accessed by a shader as a sampler descriptor ",{"type":22,"tag":675,"props":946,"children":947},{"type":691},[],{"type":27,"value":949}," be within\n",{"type":22,"tag":467,"props":951,"children":952},{"href":876},[953],{"type":27,"value":879},{"type":27,"value":266},{"type":22,"tag":43,"props":956,"children":958},{"className":957},[],[959],{"type":27,"value":960},"maxSamplerDescriptorBufferRange",{"type":27,"value":962},"\nof the sampler descriptor buffer binding",{"type":22,"tag":853,"props":964,"children":966},{"name":965},"VUID-vkCmdSetDescriptorBufferOffsetsEXT-pOffsets-08127",[967],{"type":22,"tag":23,"props":968,"children":969},{},[970,971,976,977,980,982,985,986,990,991,997],{"type":27,"value":861},{"type":22,"tag":43,"props":972,"children":974},{"className":973},[],[975],{"type":27,"value":527},{"type":27,"value":868},{"type":22,"tag":675,"props":978,"children":979},{"type":691},[],{"type":27,"value":981}," be small enough such that any\nlocation accessed by a shader as a resource descriptor ",{"type":22,"tag":675,"props":983,"children":984},{"type":691},[],{"type":27,"value":949},{"type":22,"tag":467,"props":987,"children":988},{"href":876},[989],{"type":27,"value":879},{"type":27,"value":266},{"type":22,"tag":43,"props":992,"children":994},{"className":993},[],[995],{"type":27,"value":996},"maxResourceDescriptorBufferRange",{"type":27,"value":998},"\nof the resource descriptor buffer binding",{"type":22,"tag":853,"props":1000,"children":1002},{"name":1001},"VUID-vkCmdSetDescriptorBufferOffsetsEXT-pBufferIndices-08064",[1003],{"type":22,"tag":23,"props":1004,"children":1005},{},[1006,1008,1013,1014,1017,1019,1023,1024],{"type":27,"value":1007},"Each element of ",{"type":22,"tag":43,"props":1009,"children":1011},{"className":1010},[],[1012],{"type":27,"value":519},{"type":27,"value":868},{"type":22,"tag":675,"props":1015,"children":1016},{"type":691},[],{"type":27,"value":1018}," be less than\n",{"type":22,"tag":467,"props":1020,"children":1021},{"href":876},[1022],{"type":27,"value":879},{"type":27,"value":266},{"type":22,"tag":43,"props":1025,"children":1027},{"className":1026},[],[1028],{"type":27,"value":1029},"maxDescriptorBufferBindings",{"type":22,"tag":853,"props":1031,"children":1033},{"name":1032},"VUID-vkCmdSetDescriptorBufferOffsetsEXT-pBufferIndices-08065",[1034],{"type":22,"tag":23,"props":1035,"children":1036},{},[1037,1038,1043,1044,1047,1049,1053,1054],{"type":27,"value":1007},{"type":22,"tag":43,"props":1039,"children":1041},{"className":1040},[],[1042],{"type":27,"value":519},{"type":27,"value":868},{"type":22,"tag":675,"props":1045,"children":1046},{"type":691},[],{"type":27,"value":1048}," reference a valid descriptor\nbuffer binding set by a previous call to\n",{"type":22,"tag":467,"props":1050,"children":1051},{"href":542},[1052],{"type":27,"value":545},{"type":27,"value":718},{"type":22,"tag":43,"props":1055,"children":1057},{"className":1056},[],[1058],{"type":27,"value":84},{"type":22,"tag":853,"props":1060,"children":1062},{"name":1061},"VUID-vkCmdSetDescriptorBufferOffsetsEXT-firstSet-08066",[1063],{"type":22,"tag":23,"props":1064,"children":1065},{},[1066,1068,1073,1075,1080,1081,1084,1086,1092,1093,1099,1101,1106],{"type":27,"value":1067},"The sum of ",{"type":22,"tag":43,"props":1069,"children":1071},{"className":1070},[],[1072],{"type":27,"value":500},{"type":27,"value":1074}," and ",{"type":22,"tag":43,"props":1076,"children":1078},{"className":1077},[],[1079],{"type":27,"value":511},{"type":27,"value":868},{"type":22,"tag":675,"props":1082,"children":1083},{"type":691},[],{"type":27,"value":1085}," be less than or equal\nto ",{"type":22,"tag":467,"props":1087,"children":1089},{"href":1088},"/man/VkPipelineLayoutCreateInfo",[1090],{"type":27,"value":1091},"VkPipelineLayoutCreateInfo",{"type":27,"value":266},{"type":22,"tag":43,"props":1094,"children":1096},{"className":1095},[],[1097],{"type":27,"value":1098},"setLayoutCount",{"type":27,"value":1100}," provided when\n",{"type":22,"tag":43,"props":1102,"children":1104},{"className":1103},[],[1105],{"type":27,"value":121},{"type":27,"value":1107}," was created",{"type":22,"tag":853,"props":1109,"children":1111},{"name":1110},"VUID-vkCmdSetDescriptorBufferOffsetsEXT-firstSet-09006",[1112],{"type":22,"tag":23,"props":1113,"children":1114},{},[1115,1117,1123,1125,1130,1132,1137,1139,1144,1146,1151,1153,1156,1158,1164],{"type":27,"value":1116},"The ",{"type":22,"tag":467,"props":1118,"children":1120},{"href":1119},"/man/VkDescriptorSetLayout",[1121],{"type":27,"value":1122},"VkDescriptorSetLayout",{"type":27,"value":1124}," for each set from ",{"type":22,"tag":43,"props":1126,"children":1128},{"className":1127},[],[1129],{"type":27,"value":500},{"type":27,"value":1131}," to\n",{"type":22,"tag":43,"props":1133,"children":1135},{"className":1134},[],[1136],{"type":27,"value":500},{"type":27,"value":1138}," + ",{"type":22,"tag":43,"props":1140,"children":1142},{"className":1141},[],[1143],{"type":27,"value":511},{"type":27,"value":1145}," when ",{"type":22,"tag":43,"props":1147,"children":1149},{"className":1148},[],[1150],{"type":27,"value":121},{"type":27,"value":1152}," was created\n",{"type":22,"tag":675,"props":1154,"children":1155},{"type":691},[],{"type":27,"value":1157}," have been created with the\n",{"type":22,"tag":43,"props":1159,"children":1161},{"className":1160},[],[1162],{"type":27,"value":1163},"VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT",{"type":27,"value":1165}," bit set",{"type":22,"tag":853,"props":1167,"children":1169},{"name":1168},"VUID-vkCmdSetDescriptorBufferOffsetsEXT-None-08060",[1170],{"type":22,"tag":23,"props":1171,"children":1172},{},[1173,1174,1184,1186,1189],{"type":27,"value":1116},{"type":22,"tag":467,"props":1175,"children":1177},{"href":1176},"/man/VkPhysicalDeviceDescriptorBufferFeaturesEXT#features-descriptorBuffer",[1178],{"type":22,"tag":43,"props":1179,"children":1181},{"className":1180},[],[1182],{"type":27,"value":1183},"descriptorBuffer",{"type":27,"value":1185}," feature ",{"type":22,"tag":675,"props":1187,"children":1188},{"type":691},[],{"type":27,"value":1190},"\nbe enabled",{"type":22,"tag":853,"props":1192,"children":1194},{"name":1193},"VUID-vkCmdSetDescriptorBufferOffsetsEXT-pipelineBindPoint-08067",[1195],{"type":22,"tag":23,"props":1196,"children":1197},{},[1198,1203,1204,1207,1209,1214,1216,1222],{"type":22,"tag":43,"props":1199,"children":1201},{"className":1200},[],[1202],{"type":27,"value":103},{"type":27,"value":868},{"type":22,"tag":675,"props":1205,"children":1206},{"type":691},[],{"type":27,"value":1208}," be supported by the ",{"type":22,"tag":43,"props":1210,"children":1212},{"className":1211},[],[1213],{"type":27,"value":84},{"type":27,"value":1215},"’s\nparent ",{"type":22,"tag":43,"props":1217,"children":1219},{"className":1218},[],[1220],{"type":27,"value":1221},"VkCommandPool",{"type":27,"value":1223},"’s queue family",{"type":22,"tag":848,"props":1225,"children":1227},{"name":1226},"Valid Usage (Implicit)",[1228,1254,1277,1299,1331,1359,1383,1410,1424,1448],{"type":22,"tag":853,"props":1229,"children":1231},{"name":1230},"VUID-vkCmdSetDescriptorBufferOffsetsEXT-commandBuffer-parameter",[1232],{"type":22,"tag":23,"props":1233,"children":1234},{},[1235,1240,1241,1244,1246,1252],{"type":22,"tag":43,"props":1236,"children":1238},{"className":1237},[],[1239],{"type":27,"value":84},{"type":27,"value":868},{"type":22,"tag":675,"props":1242,"children":1243},{"type":691},[],{"type":27,"value":1245}," be a valid ",{"type":22,"tag":467,"props":1247,"children":1249},{"href":1248},"/man/VkCommandBuffer",[1250],{"type":27,"value":1251},"VkCommandBuffer",{"type":27,"value":1253}," handle",{"type":22,"tag":853,"props":1255,"children":1257},{"name":1256},"VUID-vkCmdSetDescriptorBufferOffsetsEXT-pipelineBindPoint-parameter",[1258],{"type":22,"tag":23,"props":1259,"children":1260},{},[1261,1266,1267,1270,1271,1275],{"type":22,"tag":43,"props":1262,"children":1264},{"className":1263},[],[1265],{"type":27,"value":103},{"type":27,"value":868},{"type":22,"tag":675,"props":1268,"children":1269},{"type":691},[],{"type":27,"value":1245},{"type":22,"tag":467,"props":1272,"children":1273},{"href":469},[1274],{"type":27,"value":472},{"type":27,"value":1276}," value",{"type":22,"tag":853,"props":1278,"children":1280},{"name":1279},"VUID-vkCmdSetDescriptorBufferOffsetsEXT-layout-parameter",[1281],{"type":22,"tag":23,"props":1282,"children":1283},{},[1284,1289,1290,1293,1294,1298],{"type":22,"tag":43,"props":1285,"children":1287},{"className":1286},[],[1288],{"type":27,"value":121},{"type":27,"value":868},{"type":22,"tag":675,"props":1291,"children":1292},{"type":691},[],{"type":27,"value":1245},{"type":22,"tag":467,"props":1295,"children":1296},{"href":486},[1297],{"type":27,"value":489},{"type":27,"value":1253},{"type":22,"tag":853,"props":1300,"children":1302},{"name":1301},"VUID-vkCmdSetDescriptorBufferOffsetsEXT-pBufferIndices-parameter",[1303],{"type":22,"tag":23,"props":1304,"children":1305},{},[1306,1311,1312,1315,1317,1322,1323,1329],{"type":22,"tag":43,"props":1307,"children":1309},{"className":1308},[],[1310],{"type":27,"value":519},{"type":27,"value":868},{"type":22,"tag":675,"props":1313,"children":1314},{"type":691},[],{"type":27,"value":1316}," be a valid pointer to an array of ",{"type":22,"tag":43,"props":1318,"children":1320},{"className":1319},[],[1321],{"type":27,"value":511},{"type":27,"value":868},{"type":22,"tag":43,"props":1324,"children":1326},{"className":1325},[],[1327],{"type":27,"value":1328},"uint32_t",{"type":27,"value":1330}," values",{"type":22,"tag":853,"props":1332,"children":1334},{"name":1333},"VUID-vkCmdSetDescriptorBufferOffsetsEXT-pOffsets-parameter",[1335],{"type":22,"tag":23,"props":1336,"children":1337},{},[1338,1343,1344,1347,1348,1353,1354,1358],{"type":22,"tag":43,"props":1339,"children":1341},{"className":1340},[],[1342],{"type":27,"value":527},{"type":27,"value":868},{"type":22,"tag":675,"props":1345,"children":1346},{"type":691},[],{"type":27,"value":1316},{"type":22,"tag":43,"props":1349,"children":1351},{"className":1350},[],[1352],{"type":27,"value":511},{"type":27,"value":868},{"type":22,"tag":467,"props":1355,"children":1356},{"href":560},[1357],{"type":27,"value":563},{"type":27,"value":1330},{"type":22,"tag":853,"props":1360,"children":1362},{"name":1361},"VUID-vkCmdSetDescriptorBufferOffsetsEXT-commandBuffer-recording",[1363],{"type":22,"tag":23,"props":1364,"children":1365},{},[1366,1371,1372,1375,1377],{"type":22,"tag":43,"props":1367,"children":1369},{"className":1368},[],[1370],{"type":27,"value":84},{"type":27,"value":868},{"type":22,"tag":675,"props":1373,"children":1374},{"type":691},[],{"type":27,"value":1376}," be in the ",{"type":22,"tag":467,"props":1378,"children":1380},{"href":1379},"/chapters/commandbuffers#commandbuffers-lifecycle",[1381],{"type":27,"value":1382},"recording state",{"type":22,"tag":853,"props":1384,"children":1386},{"name":1385},"VUID-vkCmdSetDescriptorBufferOffsetsEXT-commandBuffer-cmdpool",[1387],{"type":22,"tag":23,"props":1388,"children":1389},{},[1390,1391,1396,1398,1403,1405,1408],{"type":27,"value":1116},{"type":22,"tag":43,"props":1392,"children":1394},{"className":1393},[],[1395],{"type":27,"value":1221},{"type":27,"value":1397}," that ",{"type":22,"tag":43,"props":1399,"children":1401},{"className":1400},[],[1402],{"type":27,"value":84},{"type":27,"value":1404}," was allocated from ",{"type":22,"tag":675,"props":1406,"children":1407},{"type":691},[],{"type":27,"value":1409}," support graphics, or compute operations",{"type":22,"tag":853,"props":1411,"children":1413},{"name":1412},"VUID-vkCmdSetDescriptorBufferOffsetsEXT-videocoding",[1414],{"type":22,"tag":23,"props":1415,"children":1416},{},[1417,1419,1422],{"type":27,"value":1418},"This command ",{"type":22,"tag":675,"props":1420,"children":1421},{"type":691},[],{"type":27,"value":1423}," only be called outside of a video coding scope",{"type":22,"tag":853,"props":1425,"children":1427},{"name":1426},"VUID-vkCmdSetDescriptorBufferOffsetsEXT-setCount-arraylength",[1428],{"type":22,"tag":23,"props":1429,"children":1430},{},[1431,1436,1437,1440,1442],{"type":22,"tag":43,"props":1432,"children":1434},{"className":1433},[],[1435],{"type":27,"value":511},{"type":27,"value":868},{"type":22,"tag":675,"props":1438,"children":1439},{"type":691},[],{"type":27,"value":1441}," be greater than ",{"type":22,"tag":43,"props":1443,"children":1445},{"className":1444},[],[1446],{"type":27,"value":1447},"0",{"type":22,"tag":853,"props":1449,"children":1451},{"name":1450},"VUID-vkCmdSetDescriptorBufferOffsetsEXT-commonparent",[1452],{"type":22,"tag":23,"props":1453,"children":1454},{},[1455,1457,1462,1464,1469,1470,1473,1475],{"type":27,"value":1456},"Both of ",{"type":22,"tag":43,"props":1458,"children":1460},{"className":1459},[],[1461],{"type":27,"value":84},{"type":27,"value":1463},", and ",{"type":22,"tag":43,"props":1465,"children":1467},{"className":1466},[],[1468],{"type":27,"value":121},{"type":27,"value":868},{"type":22,"tag":675,"props":1471,"children":1472},{"type":691},[],{"type":27,"value":1474}," have been created, allocated, or retrieved from the same ",{"type":22,"tag":467,"props":1476,"children":1478},{"href":1477},"/man/VkDevice",[1479],{"type":27,"value":1480},"VkDevice",{"type":22,"tag":1482,"props":1483,"children":1485},"validity-box",{"name":1484},"Host Synchronization",[1486],{"type":22,"tag":442,"props":1487,"children":1488},{},[1489,1505],{"type":22,"tag":446,"props":1490,"children":1491},{},[1492,1494,1499,1500,1503],{"type":27,"value":1493},"Host access to ",{"type":22,"tag":43,"props":1495,"children":1497},{"className":1496},[],[1498],{"type":27,"value":84},{"type":27,"value":868},{"type":22,"tag":675,"props":1501,"children":1502},{"type":691},[],{"type":27,"value":1504}," be externally synchronized",{"type":22,"tag":446,"props":1506,"children":1507},{},[1508,1510,1515,1516,1521,1522,1525],{"type":27,"value":1509},"Host access to the ",{"type":22,"tag":43,"props":1511,"children":1513},{"className":1512},[],[1514],{"type":27,"value":1221},{"type":27,"value":1397},{"type":22,"tag":43,"props":1517,"children":1519},{"className":1518},[],[1520],{"type":27,"value":84},{"type":27,"value":1404},{"type":22,"tag":675,"props":1523,"children":1524},{"type":691},[],{"type":27,"value":1526}," be externally synchronized\n::",{"type":22,"tag":1528,"props":1529,"children":1530},"style",{},[1531],{"type":27,"value":1532},"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":1534},[],"markdown",1725732608730]