[{"data":1,"prerenderedAt":1653},["ShallowReactive",2],{"$f4umTuBdM-qHPA3d0ZQxKhtmCe6C-_qP-je8v63Krw2g":3},{"title":4,"description":5,"parent":6,"extendedby":7,"type":9,"xrefs":10,"body":11,"_type":1652,"_id":4},"VkBufferMemoryBarrier","Structure specifying a buffer memory barrier","VK_VERSION_1_0",[8],"VkExternalMemoryAcquireUnmodifiedEXT","structs",[],{"type":12,"children":13,"toc":1650},"root",[14,30,495,691,755,816,861,866,916,958,1534,1644],{"type":15,"tag":16,"props":17,"children":18},"element","p",{},[19,22,28],{"type":20,"value":21},"text","The ",{"type":15,"tag":23,"props":24,"children":26},"code",{"className":25},[],[27],{"type":20,"value":4},{"type":20,"value":29}," structure is defined as:",{"type":15,"tag":31,"props":32,"children":33},"code-group",{},[34,178],{"type":15,"tag":35,"props":36,"children":42},"pre",{"className":37,"code":38,"filename":39,"language":40,"meta":41,"style":41},"language-c shiki shiki-themes github-light-default github-dark-default","typedef struct VkBufferMemoryBarrier {\n VkStructureType sType;\n const void* pNext;\n VkAccessFlags srcAccessMask;\n VkAccessFlags dstAccessMask;\n uint32_t srcQueueFamilyIndex;\n uint32_t dstQueueFamilyIndex;\n VkBuffer buffer;\n VkDeviceSize offset;\n VkDeviceSize size;\n} VkBufferMemoryBarrier;\n","C","c","",[43],{"type":15,"tag":23,"props":44,"children":45},{"__ignoreMap":41},[46,69,78,97,106,115,129,142,151,160,169],{"type":15,"tag":47,"props":48,"children":51},"span",{"class":49,"line":50},"line",1,[52,58,63],{"type":15,"tag":47,"props":53,"children":55},{"style":54},"--shiki-default:#CF222E;--shiki-dark:#FF7B72",[56],{"type":20,"value":57},"typedef",{"type":15,"tag":47,"props":59,"children":60},{"style":54},[61],{"type":20,"value":62}," struct",{"type":15,"tag":47,"props":64,"children":66},{"style":65},"--shiki-default:#1F2328;--shiki-dark:#E6EDF3",[67],{"type":20,"value":68}," VkBufferMemoryBarrier {\n",{"type":15,"tag":47,"props":70,"children":72},{"class":49,"line":71},2,[73],{"type":15,"tag":47,"props":74,"children":75},{"style":65},[76],{"type":20,"value":77}," VkStructureType sType;\n",{"type":15,"tag":47,"props":79,"children":81},{"class":49,"line":80},3,[82,87,92],{"type":15,"tag":47,"props":83,"children":84},{"style":54},[85],{"type":20,"value":86}," const",{"type":15,"tag":47,"props":88,"children":89},{"style":54},[90],{"type":20,"value":91}," void*",{"type":15,"tag":47,"props":93,"children":94},{"style":65},[95],{"type":20,"value":96}," pNext;\n",{"type":15,"tag":47,"props":98,"children":100},{"class":49,"line":99},4,[101],{"type":15,"tag":47,"props":102,"children":103},{"style":65},[104],{"type":20,"value":105}," VkAccessFlags srcAccessMask;\n",{"type":15,"tag":47,"props":107,"children":109},{"class":49,"line":108},5,[110],{"type":15,"tag":47,"props":111,"children":112},{"style":65},[113],{"type":20,"value":114}," VkAccessFlags dstAccessMask;\n",{"type":15,"tag":47,"props":116,"children":118},{"class":49,"line":117},6,[119,124],{"type":15,"tag":47,"props":120,"children":121},{"style":54},[122],{"type":20,"value":123}," uint32_t",{"type":15,"tag":47,"props":125,"children":126},{"style":65},[127],{"type":20,"value":128}," srcQueueFamilyIndex;\n",{"type":15,"tag":47,"props":130,"children":132},{"class":49,"line":131},7,[133,137],{"type":15,"tag":47,"props":134,"children":135},{"style":54},[136],{"type":20,"value":123},{"type":15,"tag":47,"props":138,"children":139},{"style":65},[140],{"type":20,"value":141}," dstQueueFamilyIndex;\n",{"type":15,"tag":47,"props":143,"children":145},{"class":49,"line":144},8,[146],{"type":15,"tag":47,"props":147,"children":148},{"style":65},[149],{"type":20,"value":150}," VkBuffer buffer;\n",{"type":15,"tag":47,"props":152,"children":154},{"class":49,"line":153},9,[155],{"type":15,"tag":47,"props":156,"children":157},{"style":65},[158],{"type":20,"value":159}," VkDeviceSize offset;\n",{"type":15,"tag":47,"props":161,"children":163},{"class":49,"line":162},10,[164],{"type":15,"tag":47,"props":165,"children":166},{"style":65},[167],{"type":20,"value":168}," VkDeviceSize size;\n",{"type":15,"tag":47,"props":170,"children":172},{"class":49,"line":171},11,[173],{"type":15,"tag":47,"props":174,"children":175},{"style":65},[176],{"type":20,"value":177},"} VkBufferMemoryBarrier;\n",{"type":15,"tag":35,"props":179,"children":184},{"className":180,"code":181,"filename":182,"language":183,"meta":41,"style":41},"language-rs shiki shiki-themes github-light-default github-dark-default","pub struct BufferMemoryBarrier {\n s_type: vk::StructureType,\n p_next: *const c_void,\n src_access_mask: vk::AccessFlags, // Memory accesses from the source of the dependency to synchronize\n dst_access_mask: vk::AccessFlags, // Memory accesses from the destination of the dependency to synchronize\n src_queue_family_index: u32, // Queue family to transition ownership from\n dst_queue_family_index: u32, // Queue family to transition ownership to\n buffer: vk::Buffer, // Buffer to sync\n offset: vk::DeviceSize, // Offset within the buffer to sync\n size: vk::DeviceSize, // Amount of bytes to sync\n}\n","Rust","rs",[185],{"type":15,"tag":23,"props":186,"children":187},{"__ignoreMap":41},[188,211,244,266,302,335,361,386,420,454,487],{"type":15,"tag":47,"props":189,"children":190},{"class":49,"line":50},[191,196,200,206],{"type":15,"tag":47,"props":192,"children":193},{"style":54},[194],{"type":20,"value":195},"pub",{"type":15,"tag":47,"props":197,"children":198},{"style":54},[199],{"type":20,"value":62},{"type":15,"tag":47,"props":201,"children":203},{"style":202},"--shiki-default:#953800;--shiki-dark:#FFA657",[204],{"type":20,"value":205}," BufferMemoryBarrier",{"type":15,"tag":47,"props":207,"children":208},{"style":65},[209],{"type":20,"value":210}," {\n",{"type":15,"tag":47,"props":212,"children":213},{"class":49,"line":71},[214,219,224,229,234,239],{"type":15,"tag":47,"props":215,"children":216},{"style":65},[217],{"type":20,"value":218}," s_type",{"type":15,"tag":47,"props":220,"children":221},{"style":54},[222],{"type":20,"value":223},":",{"type":15,"tag":47,"props":225,"children":226},{"style":202},[227],{"type":20,"value":228}," vk",{"type":15,"tag":47,"props":230,"children":231},{"style":54},[232],{"type":20,"value":233},"::",{"type":15,"tag":47,"props":235,"children":236},{"style":202},[237],{"type":20,"value":238},"StructureType",{"type":15,"tag":47,"props":240,"children":241},{"style":65},[242],{"type":20,"value":243},",\n",{"type":15,"tag":47,"props":245,"children":246},{"class":49,"line":80},[247,252,256,261],{"type":15,"tag":47,"props":248,"children":249},{"style":65},[250],{"type":20,"value":251}," p_next",{"type":15,"tag":47,"props":253,"children":254},{"style":54},[255],{"type":20,"value":223},{"type":15,"tag":47,"props":257,"children":258},{"style":54},[259],{"type":20,"value":260}," *const",{"type":15,"tag":47,"props":262,"children":263},{"style":65},[264],{"type":20,"value":265}," c_void,\n",{"type":15,"tag":47,"props":267,"children":268},{"class":49,"line":99},[269,274,278,282,286,291,296],{"type":15,"tag":47,"props":270,"children":271},{"style":65},[272],{"type":20,"value":273}," src_access_mask",{"type":15,"tag":47,"props":275,"children":276},{"style":54},[277],{"type":20,"value":223},{"type":15,"tag":47,"props":279,"children":280},{"style":202},[281],{"type":20,"value":228},{"type":15,"tag":47,"props":283,"children":284},{"style":54},[285],{"type":20,"value":233},{"type":15,"tag":47,"props":287,"children":288},{"style":202},[289],{"type":20,"value":290},"AccessFlags",{"type":15,"tag":47,"props":292,"children":293},{"style":65},[294],{"type":20,"value":295},", ",{"type":15,"tag":47,"props":297,"children":299},{"style":298},"--shiki-default:#6E7781;--shiki-dark:#8B949E",[300],{"type":20,"value":301},"// Memory accesses from the source of the dependency to synchronize\n",{"type":15,"tag":47,"props":303,"children":304},{"class":49,"line":108},[305,310,314,318,322,326,330],{"type":15,"tag":47,"props":306,"children":307},{"style":65},[308],{"type":20,"value":309}," dst_access_mask",{"type":15,"tag":47,"props":311,"children":312},{"style":54},[313],{"type":20,"value":223},{"type":15,"tag":47,"props":315,"children":316},{"style":202},[317],{"type":20,"value":228},{"type":15,"tag":47,"props":319,"children":320},{"style":54},[321],{"type":20,"value":233},{"type":15,"tag":47,"props":323,"children":324},{"style":202},[325],{"type":20,"value":290},{"type":15,"tag":47,"props":327,"children":328},{"style":65},[329],{"type":20,"value":295},{"type":15,"tag":47,"props":331,"children":332},{"style":298},[333],{"type":20,"value":334},"// Memory accesses from the destination of the dependency to synchronize\n",{"type":15,"tag":47,"props":336,"children":337},{"class":49,"line":117},[338,343,347,352,356],{"type":15,"tag":47,"props":339,"children":340},{"style":65},[341],{"type":20,"value":342}," src_queue_family_index",{"type":15,"tag":47,"props":344,"children":345},{"style":54},[346],{"type":20,"value":223},{"type":15,"tag":47,"props":348,"children":349},{"style":202},[350],{"type":20,"value":351}," u32",{"type":15,"tag":47,"props":353,"children":354},{"style":65},[355],{"type":20,"value":295},{"type":15,"tag":47,"props":357,"children":358},{"style":298},[359],{"type":20,"value":360},"// Queue family to transition ownership from\n",{"type":15,"tag":47,"props":362,"children":363},{"class":49,"line":131},[364,369,373,377,381],{"type":15,"tag":47,"props":365,"children":366},{"style":65},[367],{"type":20,"value":368}," dst_queue_family_index",{"type":15,"tag":47,"props":370,"children":371},{"style":54},[372],{"type":20,"value":223},{"type":15,"tag":47,"props":374,"children":375},{"style":202},[376],{"type":20,"value":351},{"type":15,"tag":47,"props":378,"children":379},{"style":65},[380],{"type":20,"value":295},{"type":15,"tag":47,"props":382,"children":383},{"style":298},[384],{"type":20,"value":385},"// Queue family to transition ownership to\n",{"type":15,"tag":47,"props":387,"children":388},{"class":49,"line":144},[389,394,398,402,406,411,415],{"type":15,"tag":47,"props":390,"children":391},{"style":65},[392],{"type":20,"value":393}," buffer",{"type":15,"tag":47,"props":395,"children":396},{"style":54},[397],{"type":20,"value":223},{"type":15,"tag":47,"props":399,"children":400},{"style":202},[401],{"type":20,"value":228},{"type":15,"tag":47,"props":403,"children":404},{"style":54},[405],{"type":20,"value":233},{"type":15,"tag":47,"props":407,"children":408},{"style":202},[409],{"type":20,"value":410},"Buffer",{"type":15,"tag":47,"props":412,"children":413},{"style":65},[414],{"type":20,"value":295},{"type":15,"tag":47,"props":416,"children":417},{"style":298},[418],{"type":20,"value":419},"// Buffer to sync\n",{"type":15,"tag":47,"props":421,"children":422},{"class":49,"line":153},[423,428,432,436,440,445,449],{"type":15,"tag":47,"props":424,"children":425},{"style":65},[426],{"type":20,"value":427}," offset",{"type":15,"tag":47,"props":429,"children":430},{"style":54},[431],{"type":20,"value":223},{"type":15,"tag":47,"props":433,"children":434},{"style":202},[435],{"type":20,"value":228},{"type":15,"tag":47,"props":437,"children":438},{"style":54},[439],{"type":20,"value":233},{"type":15,"tag":47,"props":441,"children":442},{"style":202},[443],{"type":20,"value":444},"DeviceSize",{"type":15,"tag":47,"props":446,"children":447},{"style":65},[448],{"type":20,"value":295},{"type":15,"tag":47,"props":450,"children":451},{"style":298},[452],{"type":20,"value":453},"// Offset within the buffer to sync\n",{"type":15,"tag":47,"props":455,"children":456},{"class":49,"line":162},[457,462,466,470,474,478,482],{"type":15,"tag":47,"props":458,"children":459},{"style":65},[460],{"type":20,"value":461}," size",{"type":15,"tag":47,"props":463,"children":464},{"style":54},[465],{"type":20,"value":223},{"type":15,"tag":47,"props":467,"children":468},{"style":202},[469],{"type":20,"value":228},{"type":15,"tag":47,"props":471,"children":472},{"style":54},[473],{"type":20,"value":233},{"type":15,"tag":47,"props":475,"children":476},{"style":202},[477],{"type":20,"value":444},{"type":15,"tag":47,"props":479,"children":480},{"style":65},[481],{"type":20,"value":295},{"type":15,"tag":47,"props":483,"children":484},{"style":298},[485],{"type":20,"value":486},"// Amount of bytes to sync\n",{"type":15,"tag":47,"props":488,"children":489},{"class":49,"line":171},[490],{"type":15,"tag":47,"props":491,"children":492},{"style":65},[493],{"type":20,"value":494},"}\n",{"type":15,"tag":496,"props":497,"children":498},"ul",{},[499,520,539,566,587,605,621,632,658],{"type":15,"tag":500,"props":501,"children":502},"li",{},[503,509,511,518],{"type":15,"tag":23,"props":504,"children":506},{"className":505},[],[507],{"type":20,"value":508},"sType",{"type":20,"value":510}," is a ",{"type":15,"tag":512,"props":513,"children":515},"a",{"href":514},"/man/VkStructureType",[516],{"type":20,"value":517},"VkStructureType",{"type":20,"value":519}," value identifying this structure.",{"type":15,"tag":500,"props":521,"children":522},{},[523,529,531,537],{"type":15,"tag":23,"props":524,"children":526},{"className":525},[],[527],{"type":20,"value":528},"pNext",{"type":20,"value":530}," is ",{"type":15,"tag":23,"props":532,"children":534},{"className":533},[],[535],{"type":20,"value":536},"NULL",{"type":20,"value":538}," or a pointer to a structure extending this\nstructure.",{"type":15,"tag":500,"props":540,"children":541},{},[542,548,550,556,558,564],{"type":15,"tag":23,"props":543,"children":545},{"className":544},[],[546],{"type":20,"value":547},"srcAccessMask",{"type":20,"value":549}," is a bitmask of ",{"type":15,"tag":512,"props":551,"children":553},{"href":552},"/man/VkAccessFlagBits",[554],{"type":20,"value":555},"VkAccessFlagBits",{"type":20,"value":557}," specifying a\n",{"type":15,"tag":512,"props":559,"children":561},{"href":560},"/chapters/synchronization#synchronization-access-masks",[562],{"type":20,"value":563},"source access mask",{"type":20,"value":565},".",{"type":15,"tag":500,"props":567,"children":568},{},[569,575,576,580,581,586],{"type":15,"tag":23,"props":570,"children":572},{"className":571},[],[573],{"type":20,"value":574},"dstAccessMask",{"type":20,"value":549},{"type":15,"tag":512,"props":577,"children":578},{"href":552},[579],{"type":20,"value":555},{"type":20,"value":557},{"type":15,"tag":512,"props":582,"children":583},{"href":560},[584],{"type":20,"value":585},"destination access mask",{"type":20,"value":565},{"type":15,"tag":500,"props":588,"children":589},{},[590,596,598,604],{"type":15,"tag":23,"props":591,"children":593},{"className":592},[],[594],{"type":20,"value":595},"srcQueueFamilyIndex",{"type":20,"value":597}," is the source queue family for a\n",{"type":15,"tag":512,"props":599,"children":601},{"href":600},"/chapters/synchronization#synchronization-queue-transfers",[602],{"type":20,"value":603},"queue family ownership transfer",{"type":20,"value":565},{"type":15,"tag":500,"props":606,"children":607},{},[608,614,616,620],{"type":15,"tag":23,"props":609,"children":611},{"className":610},[],[612],{"type":20,"value":613},"dstQueueFamilyIndex",{"type":20,"value":615}," is the destination queue family for a\n",{"type":15,"tag":512,"props":617,"children":618},{"href":600},[619],{"type":20,"value":603},{"type":20,"value":565},{"type":15,"tag":500,"props":622,"children":623},{},[624,630],{"type":15,"tag":23,"props":625,"children":627},{"className":626},[],[628],{"type":20,"value":629},"buffer",{"type":20,"value":631}," is a handle to the buffer whose backing memory is affected\nby the barrier.",{"type":15,"tag":500,"props":633,"children":634},{},[635,641,643,648,650,656],{"type":15,"tag":23,"props":636,"children":638},{"className":637},[],[639],{"type":20,"value":640},"offset",{"type":20,"value":642}," is an offset in bytes into the backing memory for\n",{"type":15,"tag":23,"props":644,"children":646},{"className":645},[],[647],{"type":20,"value":629},{"type":20,"value":649},"; this is relative to the base offset as bound to the buffer\n(see ",{"type":15,"tag":512,"props":651,"children":653},{"href":652},"/man/vkBindBufferMemory",[654],{"type":20,"value":655},"vkBindBufferMemory",{"type":20,"value":657},").",{"type":15,"tag":500,"props":659,"children":660},{},[661,667,669,674,676,682,684,689],{"type":15,"tag":23,"props":662,"children":664},{"className":663},[],[665],{"type":20,"value":666},"size",{"type":20,"value":668}," is a size in bytes of the affected area of backing memory for\n",{"type":15,"tag":23,"props":670,"children":672},{"className":671},[],[673],{"type":20,"value":629},{"type":20,"value":675},", or ",{"type":15,"tag":23,"props":677,"children":679},{"className":678},[],[680],{"type":20,"value":681},"VK_WHOLE_SIZE",{"type":20,"value":683}," to use the range from ",{"type":15,"tag":23,"props":685,"children":687},{"className":686},[],[688],{"type":20,"value":640},{"type":20,"value":690},"\nto the end of the buffer.",{"type":15,"tag":16,"props":692,"children":693},{},[694,696,702,704,708,710,715,717,723,725,730,731,737,739,745,747,753],{"type":20,"value":695},"The first ",{"type":15,"tag":512,"props":697,"children":699},{"href":698},"/chapters/synchronization#synchronization-dependencies-access-scopes",[700],{"type":20,"value":701},"access scope",{"type":20,"value":703}," is\nlimited to access to memory through the specified buffer range, via access\ntypes in the ",{"type":15,"tag":512,"props":705,"children":706},{"href":560},[707],{"type":20,"value":563},{"type":20,"value":709}," specified\nby\n",{"type":15,"tag":23,"props":711,"children":713},{"className":712},[],[714],{"type":20,"value":547},{"type":20,"value":716}," and, if a ",{"type":15,"tag":512,"props":718,"children":720},{"href":719},"/man/VkMemoryBarrierAccessFlags3KHR",[721],{"type":20,"value":722},"VkMemoryBarrierAccessFlags3KHR",{"type":20,"value":724}," is passed\nin ",{"type":15,"tag":23,"props":726,"children":728},{"className":727},[],[729],{"type":20,"value":528},{"type":20,"value":295},{"type":15,"tag":23,"props":732,"children":734},{"className":733},[],[735],{"type":20,"value":736},"srcAccessMask3",{"type":20,"value":738},".\nIf the source access mask includes ",{"type":15,"tag":23,"props":740,"children":742},{"className":741},[],[743],{"type":20,"value":744},"VK_ACCESS_HOST_WRITE_BIT",{"type":20,"value":746},", a\n",{"type":15,"tag":512,"props":748,"children":750},{"href":749},"/chapters/synchronization#synchronization-dependencies-available-and-visible",[751],{"type":20,"value":752},"memory domain\noperation",{"type":20,"value":754}," is performed where available memory in the host domain is also\nmade available to the device domain.",{"type":15,"tag":16,"props":756,"children":757},{},[758,760,764,765,769,771,776,777,781,782,787,788,794,796,801,803,809,810,814],{"type":20,"value":759},"The second ",{"type":15,"tag":512,"props":761,"children":762},{"href":698},[763],{"type":20,"value":701},{"type":20,"value":703},{"type":15,"tag":512,"props":766,"children":767},{"href":560},[768],{"type":20,"value":585},{"type":20,"value":770},"\nspecified by\n",{"type":15,"tag":23,"props":772,"children":774},{"className":773},[],[775],{"type":20,"value":574},{"type":20,"value":716},{"type":15,"tag":512,"props":778,"children":779},{"href":719},[780],{"type":20,"value":722},{"type":20,"value":724},{"type":15,"tag":23,"props":783,"children":785},{"className":784},[],[786],{"type":20,"value":528},{"type":20,"value":295},{"type":15,"tag":23,"props":789,"children":791},{"className":790},[],[792],{"type":20,"value":793},"dstAccessMask3",{"type":20,"value":795},".\nIf the destination access mask includes ",{"type":15,"tag":23,"props":797,"children":799},{"className":798},[],[800],{"type":20,"value":744},{"type":20,"value":802}," or\n",{"type":15,"tag":23,"props":804,"children":806},{"className":805},[],[807],{"type":20,"value":808},"VK_ACCESS_HOST_READ_BIT",{"type":20,"value":746},{"type":15,"tag":512,"props":811,"children":812},{"href":749},[813],{"type":20,"value":752},{"type":20,"value":815}," is performed where available memory in the device domain is also\nmade available to the host domain.",{"type":15,"tag":817,"props":818,"children":819},"note",{},[820,849],{"type":15,"tag":16,"props":821,"children":822},{},[823,825,831,833,839,841,847],{"type":20,"value":824},"Host writes to device memory that was allocated without\n",{"type":15,"tag":23,"props":826,"children":828},{"className":827},[],[829],{"type":20,"value":830},"VK_MEMORY_PROPERTY_HOST_COHERENT_BIT",{"type":20,"value":832}," have to be flushed with\n",{"type":15,"tag":512,"props":834,"children":836},{"href":835},"/man/vkFlushMappedMemoryRanges",[837],{"type":20,"value":838},"vkFlushMappedMemoryRanges",{"type":20,"value":840}," before they can be accessed safely on the\ndevice.\nSimilarly, device writes to such memory have to be invalidated with\n",{"type":15,"tag":512,"props":842,"children":844},{"href":843},"/man/vkInvalidateMappedMemoryRanges",[845],{"type":20,"value":846},"vkInvalidateMappedMemoryRanges",{"type":20,"value":848}," before they can be accessed safely on\nthe host.",{"type":15,"tag":16,"props":850,"children":851},{},[852,854,859],{"type":20,"value":853},"Memory allocated with ",{"type":15,"tag":23,"props":855,"children":857},{"className":856},[],[858],{"type":20,"value":830},{"type":20,"value":860}," does not\nneed to have these additional operations performed.",{"type":15,"tag":862,"props":863,"children":865},"anchor",{"id":864},"buffer-memory-barrier-ownership-transfer",[],{"type":15,"tag":16,"props":867,"children":868},{},[869,871,876,878,883,885,890,892,898,900,906,908,914],{"type":20,"value":870},"If ",{"type":15,"tag":23,"props":872,"children":874},{"className":873},[],[875],{"type":20,"value":595},{"type":20,"value":877}," is not equal to ",{"type":15,"tag":23,"props":879,"children":881},{"className":880},[],[882],{"type":20,"value":613},{"type":20,"value":884},", and\n",{"type":15,"tag":23,"props":886,"children":888},{"className":887},[],[889],{"type":20,"value":595},{"type":20,"value":891}," is equal to the current queue family, then the\nmemory barrier defines a ",{"type":15,"tag":512,"props":893,"children":895},{"href":894},"/chapters/synchronization#synchronization-queue-transfers-release",[896],{"type":20,"value":897},"queue\nfamily release operation",{"type":20,"value":899}," for the specified buffer range, and\nif ",{"type":15,"tag":23,"props":901,"children":903},{"className":902},[],[904],{"type":20,"value":905},"dependencyFlags",{"type":20,"value":907}," did not include\n",{"type":15,"tag":23,"props":909,"children":911},{"className":910},[],[912],{"type":20,"value":913},"VK_DEPENDENCY_QUEUE_FAMILY_OWNERSHIP_TRANSFER_USE_ALL_STAGES_BIT_KHR",{"type":20,"value":915},",\nthe second synchronization scope of the calling command does not apply to\nthis operation.",{"type":15,"tag":16,"props":917,"children":918},{},[919,920,925,926,931,932,937,938,944,945,950,951,956],{"type":20,"value":870},{"type":15,"tag":23,"props":921,"children":923},{"className":922},[],[924],{"type":20,"value":613},{"type":20,"value":877},{"type":15,"tag":23,"props":927,"children":929},{"className":928},[],[930],{"type":20,"value":595},{"type":20,"value":884},{"type":15,"tag":23,"props":933,"children":935},{"className":934},[],[936],{"type":20,"value":613},{"type":20,"value":891},{"type":15,"tag":512,"props":939,"children":941},{"href":940},"/chapters/synchronization#synchronization-queue-transfers-acquire",[942],{"type":20,"value":943},"queue\nfamily acquire operation",{"type":20,"value":899},{"type":15,"tag":23,"props":946,"children":948},{"className":947},[],[949],{"type":20,"value":905},{"type":20,"value":907},{"type":15,"tag":23,"props":952,"children":954},{"className":953},[],[955],{"type":20,"value":913},{"type":20,"value":957},",\nthe first synchronization scope of the calling command does not apply to\nthis operation.",{"type":15,"tag":959,"props":960,"children":962},"validity-group",{"name":961},"Valid Usage",[963,990,1027,1070,1098,1161,1215,1271,1315,1346,1374,1433,1484],{"type":15,"tag":964,"props":965,"children":967},"validity-field",{"name":966},"VUID-VkBufferMemoryBarrier-offset-01187",[968],{"type":15,"tag":16,"props":969,"children":970},{},[971,976,978,983,985],{"type":15,"tag":23,"props":972,"children":974},{"className":973},[],[975],{"type":20,"value":640},{"type":20,"value":977}," ",{"type":15,"tag":979,"props":980,"children":982},"normative",{"type":981},"must",[],{"type":20,"value":984}," be less than the size of ",{"type":15,"tag":23,"props":986,"children":988},{"className":987},[],[989],{"type":20,"value":629},{"type":15,"tag":964,"props":991,"children":993},{"name":992},"VUID-VkBufferMemoryBarrier-size-01188",[994],{"type":15,"tag":16,"props":995,"children":996},{},[997,998,1003,1004,1009,1010,1015,1016,1019,1021],{"type":20,"value":870},{"type":15,"tag":23,"props":999,"children":1001},{"className":1000},[],[1002],{"type":20,"value":666},{"type":20,"value":877},{"type":15,"tag":23,"props":1005,"children":1007},{"className":1006},[],[1008],{"type":20,"value":681},{"type":20,"value":295},{"type":15,"tag":23,"props":1011,"children":1013},{"className":1012},[],[1014],{"type":20,"value":666},{"type":20,"value":977},{"type":15,"tag":979,"props":1017,"children":1018},{"type":981},[],{"type":20,"value":1020}," be\ngreater than ",{"type":15,"tag":23,"props":1022,"children":1024},{"className":1023},[],[1025],{"type":20,"value":1026},"0",{"type":15,"tag":964,"props":1028,"children":1030},{"name":1029},"VUID-VkBufferMemoryBarrier-size-01189",[1031],{"type":15,"tag":16,"props":1032,"children":1033},{},[1034,1035,1040,1041,1046,1047,1052,1053,1056,1058,1063,1065],{"type":20,"value":870},{"type":15,"tag":23,"props":1036,"children":1038},{"className":1037},[],[1039],{"type":20,"value":666},{"type":20,"value":877},{"type":15,"tag":23,"props":1042,"children":1044},{"className":1043},[],[1045],{"type":20,"value":681},{"type":20,"value":295},{"type":15,"tag":23,"props":1048,"children":1050},{"className":1049},[],[1051],{"type":20,"value":666},{"type":20,"value":977},{"type":15,"tag":979,"props":1054,"children":1055},{"type":981},[],{"type":20,"value":1057}," be\nless than or equal to than the size of ",{"type":15,"tag":23,"props":1059,"children":1061},{"className":1060},[],[1062],{"type":20,"value":629},{"type":20,"value":1064}," minus ",{"type":15,"tag":23,"props":1066,"children":1068},{"className":1067},[],[1069],{"type":20,"value":640},{"type":15,"tag":964,"props":1071,"children":1073},{"name":1072},"VUID-VkBufferMemoryBarrier-buffer-01931",[1074],{"type":15,"tag":16,"props":1075,"children":1076},{},[1077,1078,1083,1085,1088,1090,1096],{"type":20,"value":870},{"type":15,"tag":23,"props":1079,"children":1081},{"className":1080},[],[1082],{"type":20,"value":629},{"type":20,"value":1084}," is non-sparse then it ",{"type":15,"tag":979,"props":1086,"children":1087},{"type":981},[],{"type":20,"value":1089}," be bound completely and\ncontiguously to a single ",{"type":15,"tag":23,"props":1091,"children":1093},{"className":1092},[],[1094],{"type":20,"value":1095},"VkDeviceMemory",{"type":20,"value":1097}," object",{"type":15,"tag":964,"props":1099,"children":1101},{"name":1100},"VUID-VkBufferMemoryBarrier-buffer-09095",[1102],{"type":15,"tag":16,"props":1103,"children":1104},{},[1105,1106,1111,1113,1119,1121,1126,1128,1133,1135,1140,1141,1144,1146,1152,1153,1159],{"type":20,"value":870},{"type":15,"tag":23,"props":1107,"children":1109},{"className":1108},[],[1110],{"type":20,"value":629},{"type":20,"value":1112}," was created with a sharing mode of\n",{"type":15,"tag":23,"props":1114,"children":1116},{"className":1115},[],[1117],{"type":20,"value":1118},"VK_SHARING_MODE_EXCLUSIVE",{"type":20,"value":1120},", and ",{"type":15,"tag":23,"props":1122,"children":1124},{"className":1123},[],[1125],{"type":20,"value":595},{"type":20,"value":1127}," and\n",{"type":15,"tag":23,"props":1129,"children":1131},{"className":1130},[],[1132],{"type":20,"value":613},{"type":20,"value":1134}," are not equal, ",{"type":15,"tag":23,"props":1136,"children":1138},{"className":1137},[],[1139],{"type":20,"value":595},{"type":20,"value":977},{"type":15,"tag":979,"props":1142,"children":1143},{"type":981},[],{"type":20,"value":1145},"\nbe\n",{"type":15,"tag":23,"props":1147,"children":1149},{"className":1148},[],[1150],{"type":20,"value":1151},"VK_QUEUE_FAMILY_EXTERNAL",{"type":20,"value":243},{"type":15,"tag":23,"props":1154,"children":1156},{"className":1155},[],[1157],{"type":20,"value":1158},"VK_QUEUE_FAMILY_FOREIGN_EXT",{"type":20,"value":1160},",\nor\na valid queue family",{"type":15,"tag":964,"props":1162,"children":1164},{"name":1163},"VUID-VkBufferMemoryBarrier-buffer-09096",[1165],{"type":15,"tag":16,"props":1166,"children":1167},{},[1168,1169,1174,1175,1180,1181,1186,1187,1192,1193,1198,1199,1202,1203,1208,1209,1214],{"type":20,"value":870},{"type":15,"tag":23,"props":1170,"children":1172},{"className":1171},[],[1173],{"type":20,"value":629},{"type":20,"value":1112},{"type":15,"tag":23,"props":1176,"children":1178},{"className":1177},[],[1179],{"type":20,"value":1118},{"type":20,"value":1120},{"type":15,"tag":23,"props":1182,"children":1184},{"className":1183},[],[1185],{"type":20,"value":595},{"type":20,"value":1127},{"type":15,"tag":23,"props":1188,"children":1190},{"className":1189},[],[1191],{"type":20,"value":613},{"type":20,"value":1134},{"type":15,"tag":23,"props":1194,"children":1196},{"className":1195},[],[1197],{"type":20,"value":613},{"type":20,"value":977},{"type":15,"tag":979,"props":1200,"children":1201},{"type":981},[],{"type":20,"value":1145},{"type":15,"tag":23,"props":1204,"children":1206},{"className":1205},[],[1207],{"type":20,"value":1151},{"type":20,"value":243},{"type":15,"tag":23,"props":1210,"children":1212},{"className":1211},[],[1213],{"type":20,"value":1158},{"type":20,"value":1160},{"type":15,"tag":964,"props":1216,"children":1218},{"name":1217},"VUID-VkBufferMemoryBarrier-None-09097",[1219],{"type":15,"tag":16,"props":1220,"children":1221},{},[1222,1224,1230,1232,1238,1239,1245,1247,1253,1255,1260,1261,1264,1266],{"type":20,"value":1223},"If the ",{"type":15,"tag":512,"props":1225,"children":1227},{"href":1226},"/extensions/VK_KHR_external_memory",[1228],{"type":20,"value":1229},"VK_KHR_external_memory",{"type":20,"value":1231}," extension is not enabled,\nand the value of ",{"type":15,"tag":512,"props":1233,"children":1235},{"href":1234},"/man/VkApplicationInfo",[1236],{"type":20,"value":1237},"VkApplicationInfo",{"type":20,"value":233},{"type":15,"tag":23,"props":1240,"children":1242},{"className":1241},[],[1243],{"type":20,"value":1244},"apiVersion",{"type":20,"value":1246}," used to create the ",{"type":15,"tag":512,"props":1248,"children":1250},{"href":1249},"/man/VkInstance",[1251],{"type":20,"value":1252},"VkInstance",{"type":20,"value":1254}," is not greater than or equal to Version 1.1, ",{"type":15,"tag":23,"props":1256,"children":1258},{"className":1257},[],[1259],{"type":20,"value":595},{"type":20,"value":977},{"type":15,"tag":979,"props":1262,"children":1263},{"type":981},[],{"type":20,"value":1265}," not be ",{"type":15,"tag":23,"props":1267,"children":1269},{"className":1268},[],[1270],{"type":20,"value":1151},{"type":15,"tag":964,"props":1272,"children":1274},{"name":1273},"VUID-VkBufferMemoryBarrier-None-09098",[1275],{"type":15,"tag":16,"props":1276,"children":1277},{},[1278,1279,1283,1284,1288,1289,1294,1295,1299,1300,1305,1306,1309,1310],{"type":20,"value":1223},{"type":15,"tag":512,"props":1280,"children":1281},{"href":1226},[1282],{"type":20,"value":1229},{"type":20,"value":1231},{"type":15,"tag":512,"props":1285,"children":1286},{"href":1234},[1287],{"type":20,"value":1237},{"type":20,"value":233},{"type":15,"tag":23,"props":1290,"children":1292},{"className":1291},[],[1293],{"type":20,"value":1244},{"type":20,"value":1246},{"type":15,"tag":512,"props":1296,"children":1297},{"href":1249},[1298],{"type":20,"value":1252},{"type":20,"value":1254},{"type":15,"tag":23,"props":1301,"children":1303},{"className":1302},[],[1304],{"type":20,"value":613},{"type":20,"value":977},{"type":15,"tag":979,"props":1307,"children":1308},{"type":981},[],{"type":20,"value":1265},{"type":15,"tag":23,"props":1311,"children":1313},{"className":1312},[],[1314],{"type":20,"value":1151},{"type":15,"tag":964,"props":1316,"children":1318},{"name":1317},"VUID-VkBufferMemoryBarrier-srcQueueFamilyIndex-09099",[1319],{"type":15,"tag":16,"props":1320,"children":1321},{},[1322,1323,1329,1331,1336,1337,1340,1341],{"type":20,"value":1223},{"type":15,"tag":512,"props":1324,"children":1326},{"href":1325},"/extensions/VK_EXT_queue_family_foreign",[1327],{"type":20,"value":1328},"VK_EXT_queue_family_foreign",{"type":20,"value":1330}," extension is not enabled\n",{"type":15,"tag":23,"props":1332,"children":1334},{"className":1333},[],[1335],{"type":20,"value":595},{"type":20,"value":977},{"type":15,"tag":979,"props":1338,"children":1339},{"type":981},[],{"type":20,"value":1265},{"type":15,"tag":23,"props":1342,"children":1344},{"className":1343},[],[1345],{"type":20,"value":1158},{"type":15,"tag":964,"props":1347,"children":1349},{"name":1348},"VUID-VkBufferMemoryBarrier-dstQueueFamilyIndex-09100",[1350],{"type":15,"tag":16,"props":1351,"children":1352},{},[1353,1354,1358,1359,1364,1365,1368,1369],{"type":20,"value":1223},{"type":15,"tag":512,"props":1355,"children":1356},{"href":1325},[1357],{"type":20,"value":1328},{"type":20,"value":1330},{"type":15,"tag":23,"props":1360,"children":1362},{"className":1361},[],[1363],{"type":20,"value":613},{"type":20,"value":977},{"type":15,"tag":979,"props":1366,"children":1367},{"type":981},[],{"type":20,"value":1265},{"type":15,"tag":23,"props":1370,"children":1372},{"className":1371},[],[1373],{"type":20,"value":1158},{"type":15,"tag":964,"props":1375,"children":1377},{"name":1376},"VUID-VkBufferMemoryBarrier-None-09049",[1378],{"type":15,"tag":16,"props":1379,"children":1380},{},[1381,1383,1393,1395,1400,1401,1407,1409,1414,1416,1421,1422,1425,1427],{"type":20,"value":1382},"If\nthe ",{"type":15,"tag":512,"props":1384,"children":1386},{"href":1385},"/man/VkPhysicalDeviceVulkan13Features#features-synchronization2",[1387],{"type":15,"tag":23,"props":1388,"children":1390},{"className":1389},[],[1391],{"type":20,"value":1392},"synchronization2",{"type":20,"value":1394}," feature is not\nenabled, and\n",{"type":15,"tag":23,"props":1396,"children":1398},{"className":1397},[],[1399],{"type":20,"value":629},{"type":20,"value":1112},{"type":15,"tag":23,"props":1402,"children":1404},{"className":1403},[],[1405],{"type":20,"value":1406},"VK_SHARING_MODE_CONCURRENT",{"type":20,"value":1408},", at least one of\n",{"type":15,"tag":23,"props":1410,"children":1412},{"className":1411},[],[1413],{"type":20,"value":595},{"type":20,"value":1415}," and ",{"type":15,"tag":23,"props":1417,"children":1419},{"className":1418},[],[1420],{"type":20,"value":613},{"type":20,"value":977},{"type":15,"tag":979,"props":1423,"children":1424},{"type":981},[],{"type":20,"value":1426}," be\n",{"type":15,"tag":23,"props":1428,"children":1430},{"className":1429},[],[1431],{"type":20,"value":1432},"VK_QUEUE_FAMILY_IGNORED",{"type":15,"tag":964,"props":1434,"children":1436},{"name":1435},"VUID-VkBufferMemoryBarrier-None-09050",[1437],{"type":15,"tag":16,"props":1438,"children":1439},{},[1440,1441,1449,1450,1455,1456,1461,1462,1467,1468,1471,1472,1477,1479],{"type":20,"value":1382},{"type":15,"tag":512,"props":1442,"children":1443},{"href":1385},[1444],{"type":15,"tag":23,"props":1445,"children":1447},{"className":1446},[],[1448],{"type":20,"value":1392},{"type":20,"value":1394},{"type":15,"tag":23,"props":1451,"children":1453},{"className":1452},[],[1454],{"type":20,"value":629},{"type":20,"value":1112},{"type":15,"tag":23,"props":1457,"children":1459},{"className":1458},[],[1460],{"type":20,"value":1406},{"type":20,"value":295},{"type":15,"tag":23,"props":1463,"children":1465},{"className":1464},[],[1466],{"type":20,"value":595},{"type":20,"value":977},{"type":15,"tag":979,"props":1469,"children":1470},{"type":981},[],{"type":20,"value":1426},{"type":15,"tag":23,"props":1473,"children":1475},{"className":1474},[],[1476],{"type":20,"value":1432},{"type":20,"value":1478},"\nor ",{"type":15,"tag":23,"props":1480,"children":1482},{"className":1481},[],[1483],{"type":20,"value":1151},{"type":15,"tag":964,"props":1485,"children":1487},{"name":1486},"VUID-VkBufferMemoryBarrier-None-09051",[1488],{"type":15,"tag":16,"props":1489,"children":1490},{},[1491,1492,1500,1501,1506,1507,1512,1513,1518,1519,1522,1523,1528,1529],{"type":20,"value":1382},{"type":15,"tag":512,"props":1493,"children":1494},{"href":1385},[1495],{"type":15,"tag":23,"props":1496,"children":1498},{"className":1497},[],[1499],{"type":20,"value":1392},{"type":20,"value":1394},{"type":15,"tag":23,"props":1502,"children":1504},{"className":1503},[],[1505],{"type":20,"value":629},{"type":20,"value":1112},{"type":15,"tag":23,"props":1508,"children":1510},{"className":1509},[],[1511],{"type":20,"value":1406},{"type":20,"value":295},{"type":15,"tag":23,"props":1514,"children":1516},{"className":1515},[],[1517],{"type":20,"value":613},{"type":20,"value":977},{"type":15,"tag":979,"props":1520,"children":1521},{"type":981},[],{"type":20,"value":1426},{"type":15,"tag":23,"props":1524,"children":1526},{"className":1525},[],[1527],{"type":20,"value":1432},{"type":20,"value":1478},{"type":15,"tag":23,"props":1530,"children":1532},{"className":1531},[],[1533],{"type":20,"value":1151},{"type":15,"tag":959,"props":1535,"children":1537},{"name":1536},"Valid Usage (Implicit)",[1538,1562,1591,1618],{"type":15,"tag":964,"props":1539,"children":1541},{"name":1540},"VUID-VkBufferMemoryBarrier-sType-sType",[1542],{"type":15,"tag":16,"props":1543,"children":1544},{},[1545,1550,1551,1554,1556],{"type":15,"tag":23,"props":1546,"children":1548},{"className":1547},[],[1549],{"type":20,"value":508},{"type":20,"value":977},{"type":15,"tag":979,"props":1552,"children":1553},{"type":981},[],{"type":20,"value":1555}," be ",{"type":15,"tag":23,"props":1557,"children":1559},{"className":1558},[],[1560],{"type":20,"value":1561},"VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER",{"type":15,"tag":964,"props":1563,"children":1565},{"name":1564},"VUID-VkBufferMemoryBarrier-pNext-pNext",[1566],{"type":15,"tag":16,"props":1567,"children":1568},{},[1569,1574,1575,1578,1579,1584,1586],{"type":15,"tag":23,"props":1570,"children":1572},{"className":1571},[],[1573],{"type":20,"value":528},{"type":20,"value":977},{"type":15,"tag":979,"props":1576,"children":1577},{"type":981},[],{"type":20,"value":1555},{"type":15,"tag":23,"props":1580,"children":1582},{"className":1581},[],[1583],{"type":20,"value":536},{"type":20,"value":1585}," or a pointer to a valid instance of ",{"type":15,"tag":512,"props":1587,"children":1589},{"href":1588},"/man/VkExternalMemoryAcquireUnmodifiedEXT",[1590],{"type":20,"value":8},{"type":15,"tag":964,"props":1592,"children":1594},{"name":1593},"VUID-VkBufferMemoryBarrier-sType-unique",[1595],{"type":15,"tag":16,"props":1596,"children":1597},{},[1598,1599,1604,1606,1611,1613,1616],{"type":20,"value":21},{"type":15,"tag":23,"props":1600,"children":1602},{"className":1601},[],[1603],{"type":20,"value":508},{"type":20,"value":1605}," value of each structure in the ",{"type":15,"tag":23,"props":1607,"children":1609},{"className":1608},[],[1610],{"type":20,"value":528},{"type":20,"value":1612}," chain ",{"type":15,"tag":979,"props":1614,"children":1615},{"type":981},[],{"type":20,"value":1617}," be unique",{"type":15,"tag":964,"props":1619,"children":1621},{"name":1620},"VUID-VkBufferMemoryBarrier-buffer-parameter",[1622],{"type":15,"tag":16,"props":1623,"children":1624},{},[1625,1630,1631,1634,1636,1642],{"type":15,"tag":23,"props":1626,"children":1628},{"className":1627},[],[1629],{"type":20,"value":629},{"type":20,"value":977},{"type":15,"tag":979,"props":1632,"children":1633},{"type":981},[],{"type":20,"value":1635}," be a valid ",{"type":15,"tag":512,"props":1637,"children":1639},{"href":1638},"/man/VkBuffer",[1640],{"type":20,"value":1641},"VkBuffer",{"type":20,"value":1643}," handle",{"type":15,"tag":1645,"props":1646,"children":1647},"style",{},[1648],{"type":20,"value":1649},"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":41,"searchDepth":71,"depth":71,"links":1651},[],"markdown",1777629586987]