[{"data":1,"prerenderedAt":465},["ShallowReactive",2],{"$fCxODTGrW2sDEhsFbm5jADjXDgHf2GZByvD7Zp-Rtb50":3},{"title":4,"description":5,"parent":6,"type":7,"xrefs":8,"body":9,"_type":464,"_id":4},"vkGetMemoryFdKHR","Get a POSIX file descriptor for a memory object","VK_KHR_external_memory_fd","protos",[],{"type":10,"children":11,"toc":462},"root",[12,20,283,329,374,456],{"type":13,"tag":14,"props":15,"children":16},"element","p",{},[17],{"type":18,"value":19},"text","To export a POSIX file descriptor referencing the payload of a Vulkan device\nmemory object, call:",{"type":13,"tag":21,"props":22,"children":23},"code-group",{},[24,127],{"type":13,"tag":25,"props":26,"children":32},"pre",{"className":27,"code":28,"filename":29,"language":30,"meta":31,"style":31},"language-c shiki shiki-themes github-light-default github-dark-default","VkResult vkGetMemoryFdKHR(\n VkDevice device,\n const VkMemoryGetFdInfoKHR* pGetFdInfo,\n int* pFd);\n","C","c","",[33],{"type":13,"tag":34,"props":35,"children":36},"code",{"__ignoreMap":31},[37,59,79,108],{"type":13,"tag":38,"props":39,"children":42},"span",{"class":40,"line":41},"line",1,[43,49,54],{"type":13,"tag":38,"props":44,"children":46},{"style":45},"--shiki-default:#1F2328;--shiki-dark:#E6EDF3",[47],{"type":18,"value":48},"VkResult ",{"type":13,"tag":38,"props":50,"children":52},{"style":51},"--shiki-default:#8250DF;--shiki-dark:#D2A8FF",[53],{"type":18,"value":4},{"type":13,"tag":38,"props":55,"children":56},{"style":45},[57],{"type":18,"value":58},"(\n",{"type":13,"tag":38,"props":60,"children":62},{"class":40,"line":61},2,[63,68,74],{"type":13,"tag":38,"props":64,"children":65},{"style":45},[66],{"type":18,"value":67}," VkDevice ",{"type":13,"tag":38,"props":69,"children":71},{"style":70},"--shiki-default:#953800;--shiki-dark:#FFA657",[72],{"type":18,"value":73},"device",{"type":13,"tag":38,"props":75,"children":76},{"style":45},[77],{"type":18,"value":78},",\n",{"type":13,"tag":38,"props":80,"children":82},{"class":40,"line":81},3,[83,89,94,99,104],{"type":13,"tag":38,"props":84,"children":86},{"style":85},"--shiki-default:#CF222E;--shiki-dark:#FF7B72",[87],{"type":18,"value":88}," const",{"type":13,"tag":38,"props":90,"children":91},{"style":45},[92],{"type":18,"value":93}," VkMemoryGetFdInfoKHR",{"type":13,"tag":38,"props":95,"children":96},{"style":85},[97],{"type":18,"value":98},"*",{"type":13,"tag":38,"props":100,"children":101},{"style":70},[102],{"type":18,"value":103}," pGetFdInfo",{"type":13,"tag":38,"props":105,"children":106},{"style":45},[107],{"type":18,"value":78},{"type":13,"tag":38,"props":109,"children":111},{"class":40,"line":110},4,[112,117,122],{"type":13,"tag":38,"props":113,"children":114},{"style":85},[115],{"type":18,"value":116}," int*",{"type":13,"tag":38,"props":118,"children":119},{"style":70},[120],{"type":18,"value":121}," pFd",{"type":13,"tag":38,"props":123,"children":124},{"style":45},[125],{"type":18,"value":126},");\n",{"type":13,"tag":25,"props":128,"children":133},{"className":129,"code":130,"filename":131,"language":132,"meta":31,"style":31},"language-rs shiki shiki-themes github-light-default github-dark-default","pub fn get_memory_fd_khr(\n device: vk::Device,\n p_get_fd_info: *const vk::MemoryGetFdInfoKHR,\n p_fd: *mut i32,\n) -> vk::Result;\n","Rust","rs",[134],{"type":13,"tag":34,"props":135,"children":136},{"__ignoreMap":31},[137,159,191,225,251],{"type":13,"tag":38,"props":138,"children":139},{"class":40,"line":41},[140,145,150,155],{"type":13,"tag":38,"props":141,"children":142},{"style":85},[143],{"type":18,"value":144},"pub",{"type":13,"tag":38,"props":146,"children":147},{"style":85},[148],{"type":18,"value":149}," fn",{"type":13,"tag":38,"props":151,"children":152},{"style":51},[153],{"type":18,"value":154}," get_memory_fd_khr",{"type":13,"tag":38,"props":156,"children":157},{"style":45},[158],{"type":18,"value":58},{"type":13,"tag":38,"props":160,"children":161},{"class":40,"line":61},[162,167,172,177,182,187],{"type":13,"tag":38,"props":163,"children":164},{"style":45},[165],{"type":18,"value":166}," device",{"type":13,"tag":38,"props":168,"children":169},{"style":85},[170],{"type":18,"value":171},":",{"type":13,"tag":38,"props":173,"children":174},{"style":70},[175],{"type":18,"value":176}," vk",{"type":13,"tag":38,"props":178,"children":179},{"style":85},[180],{"type":18,"value":181},"::",{"type":13,"tag":38,"props":183,"children":184},{"style":70},[185],{"type":18,"value":186},"Device",{"type":13,"tag":38,"props":188,"children":189},{"style":45},[190],{"type":18,"value":78},{"type":13,"tag":38,"props":192,"children":193},{"class":40,"line":81},[194,199,203,208,212,216,221],{"type":13,"tag":38,"props":195,"children":196},{"style":45},[197],{"type":18,"value":198}," p_get_fd_info",{"type":13,"tag":38,"props":200,"children":201},{"style":85},[202],{"type":18,"value":171},{"type":13,"tag":38,"props":204,"children":205},{"style":85},[206],{"type":18,"value":207}," *const",{"type":13,"tag":38,"props":209,"children":210},{"style":70},[211],{"type":18,"value":176},{"type":13,"tag":38,"props":213,"children":214},{"style":85},[215],{"type":18,"value":181},{"type":13,"tag":38,"props":217,"children":218},{"style":70},[219],{"type":18,"value":220},"MemoryGetFdInfoKHR",{"type":13,"tag":38,"props":222,"children":223},{"style":45},[224],{"type":18,"value":78},{"type":13,"tag":38,"props":226,"children":227},{"class":40,"line":110},[228,233,237,242,247],{"type":13,"tag":38,"props":229,"children":230},{"style":45},[231],{"type":18,"value":232}," p_fd",{"type":13,"tag":38,"props":234,"children":235},{"style":85},[236],{"type":18,"value":171},{"type":13,"tag":38,"props":238,"children":239},{"style":85},[240],{"type":18,"value":241}," *mut",{"type":13,"tag":38,"props":243,"children":244},{"style":70},[245],{"type":18,"value":246}," i32",{"type":13,"tag":38,"props":248,"children":249},{"style":45},[250],{"type":18,"value":78},{"type":13,"tag":38,"props":252,"children":254},{"class":40,"line":253},5,[255,260,265,269,273,278],{"type":13,"tag":38,"props":256,"children":257},{"style":45},[258],{"type":18,"value":259},") ",{"type":13,"tag":38,"props":261,"children":262},{"style":85},[263],{"type":18,"value":264},"->",{"type":13,"tag":38,"props":266,"children":267},{"style":70},[268],{"type":18,"value":176},{"type":13,"tag":38,"props":270,"children":271},{"style":85},[272],{"type":18,"value":181},{"type":13,"tag":38,"props":274,"children":275},{"style":70},[276],{"type":18,"value":277},"Result",{"type":13,"tag":38,"props":279,"children":280},{"style":45},[281],{"type":18,"value":282},";\n",{"type":13,"tag":284,"props":285,"children":286},"ul",{},[287,298,318],{"type":13,"tag":288,"props":289,"children":290},"li",{},[291,296],{"type":13,"tag":34,"props":292,"children":294},{"className":293},[],[295],{"type":18,"value":73},{"type":18,"value":297}," is the logical device that created the device memory being\nexported.",{"type":13,"tag":288,"props":299,"children":300},{},[301,307,309,316],{"type":13,"tag":34,"props":302,"children":304},{"className":303},[],[305],{"type":18,"value":306},"pGetFdInfo",{"type":18,"value":308}," is a pointer to a ",{"type":13,"tag":310,"props":311,"children":313},"a",{"href":312},"/man/VkMemoryGetFdInfoKHR",[314],{"type":18,"value":315},"VkMemoryGetFdInfoKHR",{"type":18,"value":317}," structure\ncontaining parameters of the export operation.",{"type":13,"tag":288,"props":319,"children":320},{},[321,327],{"type":13,"tag":34,"props":322,"children":324},{"className":323},[],[325],{"type":18,"value":326},"pFd",{"type":18,"value":328}," will return a file descriptor referencing the payload of the\ndevice memory object.",{"type":13,"tag":14,"props":330,"children":331},{},[332,334,339,341,346,348,351,353,359,361,364,366,372],{"type":18,"value":333},"Each call to ",{"type":13,"tag":34,"props":335,"children":337},{"className":336},[],[338],{"type":18,"value":4},{"type":18,"value":340}," ",{"type":13,"tag":342,"props":343,"children":345},"normative",{"type":344},"must",[],{"type":18,"value":347}," create a new file descriptor\nholding a reference to the memory object’s payload and transfer ownership of\nthe file descriptor to the application.\nTo avoid leaking resources, the application ",{"type":13,"tag":342,"props":349,"children":350},{"type":344},[],{"type":18,"value":352}," release ownership of the\nfile descriptor using the ",{"type":13,"tag":34,"props":354,"children":356},{"className":355},[],[357],{"type":18,"value":358},"close",{"type":18,"value":360}," system call when it is no longer\nneeded, or by importing a Vulkan memory object from it.\nWhere supported by the operating system, the implementation ",{"type":13,"tag":342,"props":362,"children":363},{"type":344},[],{"type":18,"value":365}," set the\nfile descriptor to be closed automatically when an ",{"type":13,"tag":34,"props":367,"children":369},{"className":368},[],[370],{"type":18,"value":371},"execve",{"type":18,"value":373}," system call\nis made.",{"type":13,"tag":375,"props":376,"children":378},"validity-group",{"name":377},"Valid Usage (Implicit)",[379,406,430],{"type":13,"tag":380,"props":381,"children":383},"validity-field",{"name":382},"VUID-vkGetMemoryFdKHR-device-parameter",[384],{"type":13,"tag":14,"props":385,"children":386},{},[387,392,393,396,398,404],{"type":13,"tag":34,"props":388,"children":390},{"className":389},[],[391],{"type":18,"value":73},{"type":18,"value":340},{"type":13,"tag":342,"props":394,"children":395},{"type":344},[],{"type":18,"value":397}," be a valid ",{"type":13,"tag":310,"props":399,"children":401},{"href":400},"/man/VkDevice",[402],{"type":18,"value":403},"VkDevice",{"type":18,"value":405}," handle",{"type":13,"tag":380,"props":407,"children":409},{"name":408},"VUID-vkGetMemoryFdKHR-pGetFdInfo-parameter",[410],{"type":13,"tag":14,"props":411,"children":412},{},[413,418,419,422,424,428],{"type":13,"tag":34,"props":414,"children":416},{"className":415},[],[417],{"type":18,"value":306},{"type":18,"value":340},{"type":13,"tag":342,"props":420,"children":421},{"type":344},[],{"type":18,"value":423}," be a valid pointer to a valid ",{"type":13,"tag":310,"props":425,"children":426},{"href":312},[427],{"type":18,"value":315},{"type":18,"value":429}," structure",{"type":13,"tag":380,"props":431,"children":433},{"name":432},"VUID-vkGetMemoryFdKHR-pFd-parameter",[434],{"type":13,"tag":14,"props":435,"children":436},{},[437,442,443,446,448,454],{"type":13,"tag":34,"props":438,"children":440},{"className":439},[],[441],{"type":18,"value":326},{"type":18,"value":340},{"type":13,"tag":342,"props":444,"children":445},{"type":344},[],{"type":18,"value":447}," be a valid pointer to an ",{"type":13,"tag":34,"props":449,"children":451},{"className":450},[],[452],{"type":18,"value":453},"int",{"type":18,"value":455}," value",{"type":13,"tag":457,"props":458,"children":459},"style",{},[460],{"type":18,"value":461},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":31,"searchDepth":61,"depth":61,"links":463},[],"markdown",1773471494584]