[{"data":1,"prerenderedAt":669},["ShallowReactive",2],{"PoMActFhOz":3},{"title":4,"description":5,"parent":6,"type":7,"xrefs":8,"body":9,"_type":668,"_id":4},"vkGetPipelineKeyKHR","Generate the pipeline key from pipeline creation info","VK_KHR_pipeline_binary","protos",[],{"type":10,"children":11,"toc":666},"root",[12,20,314,376,381,441,505,515,571,660],{"type":13,"tag":14,"props":15,"children":16},"element","p",{},[17],{"type":18,"value":19},"text","To generate the key for a particular pipeline creation info, call:",{"type":13,"tag":21,"props":22,"children":23},"code-group",{},[24,131],{"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 vkGetPipelineKeyKHR(\n VkDevice device,\n const VkPipelineCreateInfoKHR* pPipelineCreateInfo,\n VkPipelineBinaryKeyKHR* pPipelineKey);\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}," VkPipelineCreateInfoKHR",{"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}," pPipelineCreateInfo",{"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,121,126],{"type":13,"tag":38,"props":113,"children":114},{"style":45},[115],{"type":18,"value":116}," VkPipelineBinaryKeyKHR",{"type":13,"tag":38,"props":118,"children":119},{"style":85},[120],{"type":18,"value":98},{"type":13,"tag":38,"props":122,"children":123},{"style":70},[124],{"type":18,"value":125}," pPipelineKey",{"type":13,"tag":38,"props":127,"children":128},{"style":45},[129],{"type":18,"value":130},");\n",{"type":13,"tag":25,"props":132,"children":137},{"className":133,"code":134,"filename":135,"language":136,"meta":31,"style":31},"language-rs shiki shiki-themes github-light-default github-dark-default","pub fn get_pipeline_key_khr(\n device: crate :: vk :: vk::Device,\n p_pipeline_create_info: *const vk::PipelineCreateInfoKHR,\n p_pipeline_key: *mut vk::PipelineBinaryKeyKHR,\n) -> vk::Result;\n","Rust","rs",[138],{"type":13,"tag":34,"props":139,"children":140},{"__ignoreMap":31},[141,163,214,248,282],{"type":13,"tag":38,"props":142,"children":143},{"class":40,"line":41},[144,149,154,159],{"type":13,"tag":38,"props":145,"children":146},{"style":85},[147],{"type":18,"value":148},"pub",{"type":13,"tag":38,"props":150,"children":151},{"style":85},[152],{"type":18,"value":153}," fn",{"type":13,"tag":38,"props":155,"children":156},{"style":51},[157],{"type":18,"value":158}," get_pipeline_key_khr",{"type":13,"tag":38,"props":160,"children":161},{"style":45},[162],{"type":18,"value":58},{"type":13,"tag":38,"props":164,"children":165},{"class":40,"line":61},[166,171,176,181,186,191,196,201,205,210],{"type":13,"tag":38,"props":167,"children":168},{"style":45},[169],{"type":18,"value":170}," device",{"type":13,"tag":38,"props":172,"children":173},{"style":85},[174],{"type":18,"value":175},":",{"type":13,"tag":38,"props":177,"children":178},{"style":85},[179],{"type":18,"value":180}," crate",{"type":13,"tag":38,"props":182,"children":183},{"style":85},[184],{"type":18,"value":185}," ::",{"type":13,"tag":38,"props":187,"children":188},{"style":45},[189],{"type":18,"value":190}," vk ",{"type":13,"tag":38,"props":192,"children":193},{"style":85},[194],{"type":18,"value":195},"::",{"type":13,"tag":38,"props":197,"children":198},{"style":70},[199],{"type":18,"value":200}," vk",{"type":13,"tag":38,"props":202,"children":203},{"style":85},[204],{"type":18,"value":195},{"type":13,"tag":38,"props":206,"children":207},{"style":70},[208],{"type":18,"value":209},"Device",{"type":13,"tag":38,"props":211,"children":212},{"style":45},[213],{"type":18,"value":78},{"type":13,"tag":38,"props":215,"children":216},{"class":40,"line":81},[217,222,226,231,235,239,244],{"type":13,"tag":38,"props":218,"children":219},{"style":45},[220],{"type":18,"value":221}," p_pipeline_create_info",{"type":13,"tag":38,"props":223,"children":224},{"style":85},[225],{"type":18,"value":175},{"type":13,"tag":38,"props":227,"children":228},{"style":85},[229],{"type":18,"value":230}," *const",{"type":13,"tag":38,"props":232,"children":233},{"style":70},[234],{"type":18,"value":200},{"type":13,"tag":38,"props":236,"children":237},{"style":85},[238],{"type":18,"value":195},{"type":13,"tag":38,"props":240,"children":241},{"style":70},[242],{"type":18,"value":243},"PipelineCreateInfoKHR",{"type":13,"tag":38,"props":245,"children":246},{"style":45},[247],{"type":18,"value":78},{"type":13,"tag":38,"props":249,"children":250},{"class":40,"line":110},[251,256,260,265,269,273,278],{"type":13,"tag":38,"props":252,"children":253},{"style":45},[254],{"type":18,"value":255}," p_pipeline_key",{"type":13,"tag":38,"props":257,"children":258},{"style":85},[259],{"type":18,"value":175},{"type":13,"tag":38,"props":261,"children":262},{"style":85},[263],{"type":18,"value":264}," *mut",{"type":13,"tag":38,"props":266,"children":267},{"style":70},[268],{"type":18,"value":200},{"type":13,"tag":38,"props":270,"children":271},{"style":85},[272],{"type":18,"value":195},{"type":13,"tag":38,"props":274,"children":275},{"style":70},[276],{"type":18,"value":277},"PipelineBinaryKeyKHR",{"type":13,"tag":38,"props":279,"children":280},{"style":45},[281],{"type":18,"value":78},{"type":13,"tag":38,"props":283,"children":285},{"class":40,"line":284},5,[286,291,296,300,304,309],{"type":13,"tag":38,"props":287,"children":288},{"style":45},[289],{"type":18,"value":290},") ",{"type":13,"tag":38,"props":292,"children":293},{"style":85},[294],{"type":18,"value":295},"->",{"type":13,"tag":38,"props":297,"children":298},{"style":70},[299],{"type":18,"value":200},{"type":13,"tag":38,"props":301,"children":302},{"style":85},[303],{"type":18,"value":195},{"type":13,"tag":38,"props":305,"children":306},{"style":70},[307],{"type":18,"value":308},"Result",{"type":13,"tag":38,"props":310,"children":311},{"style":45},[312],{"type":18,"value":313},";\n",{"type":13,"tag":315,"props":316,"children":317},"ul",{},[318,329,357],{"type":13,"tag":319,"props":320,"children":321},"li",{},[322,327],{"type":13,"tag":34,"props":323,"children":325},{"className":324},[],[326],{"type":18,"value":73},{"type":18,"value":328}," is the logical device that creates the pipeline object.",{"type":13,"tag":319,"props":330,"children":331},{},[332,338,340,346,348,355],{"type":13,"tag":34,"props":333,"children":335},{"className":334},[],[336],{"type":18,"value":337},"pPipelineCreateInfo",{"type":18,"value":339}," is ",{"type":13,"tag":34,"props":341,"children":343},{"className":342},[],[344],{"type":18,"value":345},"NULL",{"type":18,"value":347}," or a pointer to a\n",{"type":13,"tag":349,"props":350,"children":352},"a",{"href":351},"/man/VkPipelineCreateInfoKHR",[353],{"type":18,"value":354},"VkPipelineCreateInfoKHR",{"type":18,"value":356}," structure.",{"type":13,"tag":319,"props":358,"children":359},{},[360,366,368,374],{"type":13,"tag":34,"props":361,"children":363},{"className":362},[],[364],{"type":18,"value":365},"pPipelineKey",{"type":18,"value":367}," is a pointer to a ",{"type":13,"tag":349,"props":369,"children":371},{"href":370},"/man/VkPipelineBinaryKeyKHR",[372],{"type":18,"value":373},"VkPipelineBinaryKeyKHR",{"type":18,"value":375},"\nstructure in which the resulting key is returned.",{"type":13,"tag":377,"props":378,"children":380},"anchor",{"id":379},"global-pipeline-key",[],{"type":13,"tag":14,"props":382,"children":383},{},[384,386,391,392,397,399,404,406,412,414,420,422,425,427,433,435,439],{"type":18,"value":385},"If ",{"type":13,"tag":34,"props":387,"children":389},{"className":388},[],[390],{"type":18,"value":337},{"type":18,"value":339},{"type":13,"tag":34,"props":393,"children":395},{"className":394},[],[396],{"type":18,"value":345},{"type":18,"value":398},", then the implementation ",{"type":13,"tag":400,"props":401,"children":403},"normative",{"type":402},"must",[],{"type":18,"value":405}," return\nthe global key that applies to all pipelines.\nIf the key obtained in this way changes between saving and restoring data\nobtained from ",{"type":13,"tag":349,"props":407,"children":409},{"href":408},"/man/vkGetPipelineBinaryDataKHR",[410],{"type":18,"value":411},"vkGetPipelineBinaryDataKHR",{"type":18,"value":413}," in a different\n",{"type":13,"tag":349,"props":415,"children":417},{"href":416},"/man/VkDevice",[418],{"type":18,"value":419},"VkDevice",{"type":18,"value":421},", then the application ",{"type":13,"tag":400,"props":423,"children":424},{"type":402},[],{"type":18,"value":426}," assume that the restored data is\ninvalid and cannot be passed to ",{"type":13,"tag":349,"props":428,"children":430},{"href":429},"/man/vkCreatePipelineBinariesKHR",[431],{"type":18,"value":432},"vkCreatePipelineBinariesKHR",{"type":18,"value":434},".\nOtherwise the application ",{"type":13,"tag":400,"props":436,"children":438},{"type":437},"can",[],{"type":18,"value":440}," assume the data is still valid.",{"type":13,"tag":14,"props":442,"children":443},{},[444,445,450,452,457,459,463,465,470,472,475,477,482,484,490,492,495,497,503],{"type":18,"value":385},{"type":13,"tag":34,"props":446,"children":448},{"className":447},[],[449],{"type":18,"value":337},{"type":18,"value":451}," is not ",{"type":13,"tag":34,"props":453,"children":455},{"className":454},[],[456],{"type":18,"value":345},{"type":18,"value":458},", the key obtained functions as a\nmethod to compare two pipeline creation info structures.\nImplementations ",{"type":13,"tag":400,"props":460,"children":462},{"type":461},"may",[],{"type":18,"value":464}," not compare parts of a pipeline creation info which\nwould not contribute to the final binary output.\nIf a shader module identifier is used instead of a shader module, the\n",{"type":13,"tag":34,"props":466,"children":468},{"className":467},[],[469],{"type":18,"value":365},{"type":18,"value":471}," generated ",{"type":13,"tag":400,"props":473,"children":474},{"type":402},[],{"type":18,"value":476}," be equal to the key generated when using\nthe shader module from which the identifier was queried.\nIf the content of two ",{"type":13,"tag":34,"props":478,"children":480},{"className":479},[],[481],{"type":18,"value":365},{"type":18,"value":483}," are equal, pipelines created with\nthe two ",{"type":13,"tag":34,"props":485,"children":487},{"className":486},[],[488],{"type":18,"value":489},"pPipelineCreateInfo→pname",{"type":18,"value":491},":pNext create infos ",{"type":13,"tag":400,"props":493,"children":494},{"type":402},[],{"type":18,"value":496}," produce\nthe same ",{"type":13,"tag":349,"props":498,"children":500},{"href":499},"/man/VkPipelineBinaryKHR",[501],{"type":18,"value":502},"VkPipelineBinaryKHR",{"type":18,"value":504}," contents.",{"type":13,"tag":14,"props":506,"children":507},{},[508,510,513],{"type":18,"value":509},"The pipeline key is distinct from pipeline binary key.\nPipeline binary keys ",{"type":13,"tag":400,"props":511,"children":512},{"type":437},[],{"type":18,"value":514}," only be obtained after compilation.\nThe pipeline key is intended to optionally allow associating pipeline create\ninfo with multiple pipeline binary keys.",{"type":13,"tag":516,"props":517,"children":519},"validity-group",{"name":518},"Valid Usage",[520],{"type":13,"tag":521,"props":522,"children":524},"validity-field",{"name":523},"VUID-vkGetPipelineKeyKHR-pNext-09605",[525],{"type":13,"tag":14,"props":526,"children":527},{},[528,530,536,538,543,545,548,550,556,557,563,565],{"type":18,"value":529},"The ",{"type":13,"tag":34,"props":531,"children":533},{"className":532},[],[534],{"type":18,"value":535},"pNext",{"type":18,"value":537}," chain of ",{"type":13,"tag":34,"props":539,"children":541},{"className":540},[],[542],{"type":18,"value":337},{"type":18,"value":544}," ",{"type":13,"tag":400,"props":546,"children":547},{"type":402},[],{"type":18,"value":549}," not set\n",{"type":13,"tag":349,"props":551,"children":553},{"href":552},"/man/VkPipelineBinaryInfoKHR",[554],{"type":18,"value":555},"VkPipelineBinaryInfoKHR",{"type":18,"value":195},{"type":13,"tag":34,"props":558,"children":560},{"className":559},[],[561],{"type":18,"value":562},"binaryCount",{"type":18,"value":564}," to a value greater than\n",{"type":13,"tag":34,"props":566,"children":568},{"className":567},[],[569],{"type":18,"value":570},"0",{"type":13,"tag":516,"props":572,"children":574},{"name":573},"Valid Usage (Implicit)",[575,599,637],{"type":13,"tag":521,"props":576,"children":578},{"name":577},"VUID-vkGetPipelineKeyKHR-device-parameter",[579],{"type":13,"tag":14,"props":580,"children":581},{},[582,587,588,591,593,597],{"type":13,"tag":34,"props":583,"children":585},{"className":584},[],[586],{"type":18,"value":73},{"type":18,"value":544},{"type":13,"tag":400,"props":589,"children":590},{"type":402},[],{"type":18,"value":592}," be a valid ",{"type":13,"tag":349,"props":594,"children":595},{"href":416},[596],{"type":18,"value":419},{"type":18,"value":598}," handle",{"type":13,"tag":521,"props":600,"children":602},{"name":601},"VUID-vkGetPipelineKeyKHR-pPipelineCreateInfo-parameter",[603],{"type":13,"tag":14,"props":604,"children":605},{},[606,607,612,613,618,620,625,626,629,631,635],{"type":18,"value":385},{"type":13,"tag":34,"props":608,"children":610},{"className":609},[],[611],{"type":18,"value":337},{"type":18,"value":451},{"type":13,"tag":34,"props":614,"children":616},{"className":615},[],[617],{"type":18,"value":345},{"type":18,"value":619},", ",{"type":13,"tag":34,"props":621,"children":623},{"className":622},[],[624],{"type":18,"value":337},{"type":18,"value":544},{"type":13,"tag":400,"props":627,"children":628},{"type":402},[],{"type":18,"value":630}," be a valid pointer to a valid ",{"type":13,"tag":349,"props":632,"children":633},{"href":351},[634],{"type":18,"value":354},{"type":18,"value":636}," structure",{"type":13,"tag":521,"props":638,"children":640},{"name":639},"VUID-vkGetPipelineKeyKHR-pPipelineKey-parameter",[641],{"type":13,"tag":14,"props":642,"children":643},{},[644,649,650,653,655,659],{"type":13,"tag":34,"props":645,"children":647},{"className":646},[],[648],{"type":18,"value":365},{"type":18,"value":544},{"type":13,"tag":400,"props":651,"children":652},{"type":402},[],{"type":18,"value":654}," be a valid pointer to a ",{"type":13,"tag":349,"props":656,"children":657},{"href":370},[658],{"type":18,"value":373},{"type":18,"value":636},{"type":13,"tag":661,"props":662,"children":663},"style",{},[664],{"type":18,"value":665},"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":667},[],"markdown",1725732621219]