[{"data":1,"prerenderedAt":622},["ShallowReactive",2],{"t9KxgWRHgu":3},{"title":4,"description":5,"parent":6,"type":7,"xrefs":8,"body":9,"_type":621,"_id":4},"VkExternalMemoryAcquireUnmodifiedEXT","Structure specifying that external memory has remained unmodified since releasing ownership","VK_EXT_external_memory_acquire_unmodified","structs",[],{"type":10,"children":11,"toc":619},"root",[12,64,76,286,371,425,457,469,531,585,613],{"type":13,"tag":14,"props":15,"children":16},"element","p",{},[17,20,26,28,33,35,39,41,47,49,56,58,62],{"type":18,"value":19},"text","An ",{"type":13,"tag":21,"props":22,"children":23},"em",{},[24],{"type":18,"value":25},"acquire operation",{"type":18,"value":27}," ",{"type":13,"tag":29,"props":30,"children":32},"normative",{"type":31},"may",[],{"type":18,"value":34}," have a performance penalty when acquiring\nownership of a subresource range from one of the special queue families\nreserved for external memory ownership transfers described above.\nThe application ",{"type":13,"tag":29,"props":36,"children":38},{"type":37},"can",[],{"type":18,"value":40}," reduce the performance penalty in some cases by adding\na ",{"type":13,"tag":42,"props":43,"children":45},"a",{"href":44},"/man/VkExternalMemoryAcquireUnmodifiedEXT",[46],{"type":18,"value":4},{"type":18,"value":48}," structure to the ",{"type":13,"tag":50,"props":51,"children":53},"code",{"className":52},[],[54],{"type":18,"value":55},"pNext",{"type":18,"value":57},"\nchain of the ",{"type":13,"tag":21,"props":59,"children":60},{},[61],{"type":18,"value":25},{"type":18,"value":63},"'s memory barrier structure.",{"type":13,"tag":14,"props":65,"children":66},{},[67,69,74],{"type":18,"value":68},"The ",{"type":13,"tag":50,"props":70,"children":72},{"className":71},[],[73],{"type":18,"value":4},{"type":18,"value":75}," structure is defined as:",{"type":13,"tag":77,"props":78,"children":79},"code-group",{},[80,161],{"type":13,"tag":81,"props":82,"children":88},"pre",{"className":83,"code":84,"filename":85,"language":86,"meta":87,"style":87},"language-c shiki shiki-themes github-light-default github-dark-default","typedef struct VkExternalMemoryAcquireUnmodifiedEXT {\n VkStructureType sType;\n const void* pNext;\n VkBool32 acquireUnmodifiedMemory;\n} VkExternalMemoryAcquireUnmodifiedEXT;\n","C","c","",[89],{"type":13,"tag":50,"props":90,"children":91},{"__ignoreMap":87},[92,115,124,143,152],{"type":13,"tag":93,"props":94,"children":97},"span",{"class":95,"line":96},"line",1,[98,104,109],{"type":13,"tag":93,"props":99,"children":101},{"style":100},"--shiki-default:#CF222E;--shiki-dark:#FF7B72",[102],{"type":18,"value":103},"typedef",{"type":13,"tag":93,"props":105,"children":106},{"style":100},[107],{"type":18,"value":108}," struct",{"type":13,"tag":93,"props":110,"children":112},{"style":111},"--shiki-default:#1F2328;--shiki-dark:#E6EDF3",[113],{"type":18,"value":114}," VkExternalMemoryAcquireUnmodifiedEXT {\n",{"type":13,"tag":93,"props":116,"children":118},{"class":95,"line":117},2,[119],{"type":13,"tag":93,"props":120,"children":121},{"style":111},[122],{"type":18,"value":123}," VkStructureType sType;\n",{"type":13,"tag":93,"props":125,"children":127},{"class":95,"line":126},3,[128,133,138],{"type":13,"tag":93,"props":129,"children":130},{"style":100},[131],{"type":18,"value":132}," const",{"type":13,"tag":93,"props":134,"children":135},{"style":100},[136],{"type":18,"value":137}," void*",{"type":13,"tag":93,"props":139,"children":140},{"style":111},[141],{"type":18,"value":142}," pNext;\n",{"type":13,"tag":93,"props":144,"children":146},{"class":95,"line":145},4,[147],{"type":13,"tag":93,"props":148,"children":149},{"style":111},[150],{"type":18,"value":151}," VkBool32 acquireUnmodifiedMemory;\n",{"type":13,"tag":93,"props":153,"children":155},{"class":95,"line":154},5,[156],{"type":13,"tag":93,"props":157,"children":158},{"style":111},[159],{"type":18,"value":160},"} VkExternalMemoryAcquireUnmodifiedEXT;\n",{"type":13,"tag":81,"props":162,"children":167},{"className":163,"code":164,"filename":165,"language":166,"meta":87,"style":87},"language-rs shiki shiki-themes github-light-default github-dark-default","pub struct ExternalMemoryAcquireUnmodifiedEXT {\n s_type: vk::StructureType,\n p_next: *const c_void,\n acquire_unmodified_memory: vk::Bool32,\n}\n","Rust","rs",[168],{"type":13,"tag":50,"props":169,"children":170},{"__ignoreMap":87},[171,194,227,249,278],{"type":13,"tag":93,"props":172,"children":173},{"class":95,"line":96},[174,179,183,189],{"type":13,"tag":93,"props":175,"children":176},{"style":100},[177],{"type":18,"value":178},"pub",{"type":13,"tag":93,"props":180,"children":181},{"style":100},[182],{"type":18,"value":108},{"type":13,"tag":93,"props":184,"children":186},{"style":185},"--shiki-default:#953800;--shiki-dark:#FFA657",[187],{"type":18,"value":188}," ExternalMemoryAcquireUnmodifiedEXT",{"type":13,"tag":93,"props":190,"children":191},{"style":111},[192],{"type":18,"value":193}," {\n",{"type":13,"tag":93,"props":195,"children":196},{"class":95,"line":117},[197,202,207,212,217,222],{"type":13,"tag":93,"props":198,"children":199},{"style":111},[200],{"type":18,"value":201}," s_type",{"type":13,"tag":93,"props":203,"children":204},{"style":100},[205],{"type":18,"value":206},":",{"type":13,"tag":93,"props":208,"children":209},{"style":185},[210],{"type":18,"value":211}," vk",{"type":13,"tag":93,"props":213,"children":214},{"style":100},[215],{"type":18,"value":216},"::",{"type":13,"tag":93,"props":218,"children":219},{"style":185},[220],{"type":18,"value":221},"StructureType",{"type":13,"tag":93,"props":223,"children":224},{"style":111},[225],{"type":18,"value":226},",\n",{"type":13,"tag":93,"props":228,"children":229},{"class":95,"line":126},[230,235,239,244],{"type":13,"tag":93,"props":231,"children":232},{"style":111},[233],{"type":18,"value":234}," p_next",{"type":13,"tag":93,"props":236,"children":237},{"style":100},[238],{"type":18,"value":206},{"type":13,"tag":93,"props":240,"children":241},{"style":100},[242],{"type":18,"value":243}," *const",{"type":13,"tag":93,"props":245,"children":246},{"style":111},[247],{"type":18,"value":248}," c_void,\n",{"type":13,"tag":93,"props":250,"children":251},{"class":95,"line":145},[252,257,261,265,269,274],{"type":13,"tag":93,"props":253,"children":254},{"style":111},[255],{"type":18,"value":256}," acquire_unmodified_memory",{"type":13,"tag":93,"props":258,"children":259},{"style":100},[260],{"type":18,"value":206},{"type":13,"tag":93,"props":262,"children":263},{"style":185},[264],{"type":18,"value":211},{"type":13,"tag":93,"props":266,"children":267},{"style":100},[268],{"type":18,"value":216},{"type":13,"tag":93,"props":270,"children":271},{"style":185},[272],{"type":18,"value":273},"Bool32",{"type":13,"tag":93,"props":275,"children":276},{"style":111},[277],{"type":18,"value":226},{"type":13,"tag":93,"props":279,"children":280},{"class":95,"line":154},[281],{"type":13,"tag":93,"props":282,"children":283},{"style":111},[284],{"type":18,"value":285},"}\n",{"type":13,"tag":287,"props":288,"children":289},"ul",{},[290,310,328],{"type":13,"tag":291,"props":292,"children":293},"li",{},[294,300,302,308],{"type":13,"tag":50,"props":295,"children":297},{"className":296},[],[298],{"type":18,"value":299},"sType",{"type":18,"value":301}," is a ",{"type":13,"tag":42,"props":303,"children":305},{"href":304},"/man/VkStructureType",[306],{"type":18,"value":307},"VkStructureType",{"type":18,"value":309}," value identifying this structure.",{"type":13,"tag":291,"props":311,"children":312},{},[313,318,320,326],{"type":13,"tag":50,"props":314,"children":316},{"className":315},[],[317],{"type":18,"value":55},{"type":18,"value":319}," is ",{"type":13,"tag":50,"props":321,"children":323},{"className":322},[],[324],{"type":18,"value":325},"NULL",{"type":18,"value":327}," or a pointer to a structure extending this\nstructure.",{"type":13,"tag":291,"props":329,"children":330},{},[331,337,339,345,347,353,355,361,363,369],{"type":13,"tag":50,"props":332,"children":334},{"className":333},[],[335],{"type":18,"value":336},"acquireUnmodifiedMemory",{"type":18,"value":338}," specifies, if ",{"type":13,"tag":50,"props":340,"children":342},{"className":341},[],[343],{"type":18,"value":344},"VK_TRUE",{"type":18,"value":346},", that no range\nof ",{"type":13,"tag":42,"props":348,"children":350},{"href":349},"/man/VkDeviceMemory",[351],{"type":18,"value":352},"VkDeviceMemory",{"type":18,"value":354}," bound to the resource of the memory barrier’s\nsubresource range was modified at any time since the resource’s most\nrecent release of ownership to the queue family specified by the memory\nbarrier’s ",{"type":13,"tag":50,"props":356,"children":358},{"className":357},[],[359],{"type":18,"value":360},"srcQueueFamilyIndex",{"type":18,"value":362},".\nIf ",{"type":13,"tag":50,"props":364,"children":366},{"className":365},[],[367],{"type":18,"value":368},"VK_FALSE",{"type":18,"value":370},", it specifies nothing.",{"type":13,"tag":14,"props":372,"children":373},{},[374,376,380,382,387,389,393,395,399,401,405,407,412,414,418,420,423],{"type":18,"value":375},"If the application releases ownership of the subresource range to one of the\nspecial queue families reserved for external memory ownership transfers with\na memory barrier structure, and later re-acquires ownership from the same\nqueue family with a memory barrier structure, and if no range of\n",{"type":13,"tag":42,"props":377,"children":378},{"href":349},[379],{"type":18,"value":352},{"type":18,"value":381}," bound to the resource was modified at any time between\nthe ",{"type":13,"tag":21,"props":383,"children":384},{},[385],{"type":18,"value":386},"release operation",{"type":18,"value":388}," and the ",{"type":13,"tag":21,"props":390,"children":391},{},[392],{"type":18,"value":25},{"type":18,"value":394},", then the application\n",{"type":13,"tag":29,"props":396,"children":398},{"type":397},"should",[],{"type":18,"value":400}," add a ",{"type":13,"tag":42,"props":402,"children":403},{"href":44},[404],{"type":18,"value":4},{"type":18,"value":406}," structure to the\n",{"type":13,"tag":50,"props":408,"children":410},{"className":409},[],[411],{"type":18,"value":55},{"type":18,"value":413}," chain of the ",{"type":13,"tag":21,"props":415,"children":416},{},[417],{"type":18,"value":25},{"type":18,"value":419},"'s memory barrier structure\nbecause this ",{"type":13,"tag":29,"props":421,"children":422},{"type":31},[],{"type":18,"value":424}," reduce the performance penalty.",{"type":13,"tag":14,"props":426,"children":427},{},[428,430,435,436,441,443,448,450,455],{"type":18,"value":429},"This struct is ignored if ",{"type":13,"tag":50,"props":431,"children":433},{"className":432},[],[434],{"type":18,"value":336},{"type":18,"value":319},{"type":13,"tag":50,"props":437,"children":439},{"className":438},[],[440],{"type":18,"value":368},{"type":18,"value":442},".\nIn particular, ",{"type":13,"tag":50,"props":444,"children":446},{"className":445},[],[447],{"type":18,"value":368},{"type":18,"value":449}," does ",{"type":13,"tag":21,"props":451,"children":452},{},[453],{"type":18,"value":454},"not",{"type":18,"value":456}," specify that memory was modified.",{"type":13,"tag":14,"props":458,"children":459},{},[460,462,467],{"type":18,"value":461},"This struct is ignored if the memory barrier’s ",{"type":13,"tag":50,"props":463,"children":465},{"className":464},[],[466],{"type":18,"value":360},{"type":18,"value":468}," is\nnot a special queue family reserved for external memory ownership transfers.",{"type":13,"tag":470,"props":471,"children":472},"note",{},[473,490,508],{"type":13,"tag":14,"props":474,"children":475},{},[476,478,482,484,488],{"type":18,"value":477},"The method by which the application determines whether memory was modified\nbetween the ",{"type":13,"tag":21,"props":479,"children":480},{},[481],{"type":18,"value":386},{"type":18,"value":483}," and ",{"type":13,"tag":21,"props":485,"children":486},{},[487],{"type":18,"value":25},{"type":18,"value":489}," is outside the scope\nof Vulkan.",{"type":13,"tag":14,"props":491,"children":492},{},[493,495,499,501,506],{"type":18,"value":494},"For any Vulkan operation that accesses a resource, the application ",{"type":13,"tag":29,"props":496,"children":498},{"type":497},"must",[],{"type":18,"value":500}," not\nassume the implementation accesses the resource’s memory as read-only, even\nfor ",{"type":13,"tag":21,"props":502,"children":503},{},[504],{"type":18,"value":505},"apparently",{"type":18,"value":507}," read-only operations such as transfer commands and shader\nreads.",{"type":13,"tag":14,"props":509,"children":510},{},[511,513,517,518,523,525,529],{"type":18,"value":512},"The validity of\n",{"type":13,"tag":42,"props":514,"children":515},{"href":44},[516],{"type":18,"value":4},{"type":18,"value":216},{"type":13,"tag":50,"props":519,"children":521},{"className":520},[],[522],{"type":18,"value":336},{"type":18,"value":524}," is\nindependent of memory ranges outside the ranges of ",{"type":13,"tag":42,"props":526,"children":527},{"href":349},[528],{"type":18,"value":352},{"type":18,"value":530},"\nbound to the resource.\nIn particular, it is independent of any implementation-private memory\nassociated with the resource.",{"type":13,"tag":532,"props":533,"children":535},"validity-group",{"name":534},"Valid Usage",[536],{"type":13,"tag":537,"props":538,"children":540},"validity-field",{"name":539},"VUID-VkExternalMemoryAcquireUnmodifiedEXT-acquireUnmodifiedMemory-08922",[541],{"type":13,"tag":14,"props":542,"children":543},{},[544,546,551,552,557,559,564,566,572,574,578,580,583],{"type":18,"value":545},"If ",{"type":13,"tag":50,"props":547,"children":549},{"className":548},[],[550],{"type":18,"value":336},{"type":18,"value":319},{"type":13,"tag":50,"props":553,"children":555},{"className":554},[],[556],{"type":18,"value":344},{"type":18,"value":558},", and the memory\nbarrier’s ",{"type":13,"tag":50,"props":560,"children":562},{"className":561},[],[563],{"type":18,"value":360},{"type":18,"value":565}," is a special queue family reserved\nfor external memory ownership transfers (as described in\n",{"type":13,"tag":42,"props":567,"children":569},{"href":568},"/chapters/synchronization#synchronization-queue-transfers",[570],{"type":18,"value":571},"Queue Family Ownership Transfer",{"type":18,"value":573},"), then each range of\n",{"type":13,"tag":42,"props":575,"children":576},{"href":349},[577],{"type":18,"value":352},{"type":18,"value":579}," bound to the resource ",{"type":13,"tag":29,"props":581,"children":582},{"type":497},[],{"type":18,"value":584}," have remained\nunmodified during all time since the resource’s most recent release of\nownership to the queue family",{"type":13,"tag":532,"props":586,"children":588},{"name":587},"Valid Usage (Implicit)",[589],{"type":13,"tag":537,"props":590,"children":592},{"name":591},"VUID-VkExternalMemoryAcquireUnmodifiedEXT-sType-sType",[593],{"type":13,"tag":14,"props":594,"children":595},{},[596,601,602,605,607],{"type":13,"tag":50,"props":597,"children":599},{"className":598},[],[600],{"type":18,"value":299},{"type":18,"value":27},{"type":13,"tag":29,"props":603,"children":604},{"type":497},[],{"type":18,"value":606}," be ",{"type":13,"tag":50,"props":608,"children":610},{"className":609},[],[611],{"type":18,"value":612},"VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT",{"type":13,"tag":614,"props":615,"children":616},"style",{},[617],{"type":18,"value":618},"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":87,"searchDepth":117,"depth":117,"links":620},[],"markdown",1729612447664]