[{"data":1,"prerenderedAt":633},["ShallowReactive",2],{"$f_AqJ23-40KrMsRl1IdpjFg-iS9Df6LxfJPUjnhnK-gQ":3},{"title":4,"description":5,"parent":6,"structextends":7,"type":9,"xrefs":10,"body":11,"_type":632,"_id":4},"VkQueueFamilyOptimalImageTransferGranularityPropertiesKHR","Structure specifying the optimal image transfer granularity for a queue family","VK_KHR_maintenance11",[8],"VkQueueFamilyProperties2","structs",[],{"type":12,"children":13,"toc":630},"root",[14,30,236,290,317,329,341,577,593,624],{"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},"a",{"href":25},"/man/VkQueueFamilyOptimalImageTransferGranularityPropertiesKHR",[27],{"type":20,"value":4},{"type":20,"value":29},"\nstructure is defined as:",{"type":15,"tag":31,"props":32,"children":33},"code-group",{},[34,111],{"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 VkQueueFamilyOptimalImageTransferGranularityPropertiesKHR {\n VkStructureType sType;\n void* pNext;\n VkExtent3D optimalImageTransferGranularity;\n} VkQueueFamilyOptimalImageTransferGranularityPropertiesKHR;\n","C","c","",[43],{"type":15,"tag":44,"props":45,"children":46},"code",{"__ignoreMap":41},[47,70,79,93,102],{"type":15,"tag":48,"props":49,"children":52},"span",{"class":50,"line":51},"line",1,[53,59,64],{"type":15,"tag":48,"props":54,"children":56},{"style":55},"--shiki-default:#CF222E;--shiki-dark:#FF7B72",[57],{"type":20,"value":58},"typedef",{"type":15,"tag":48,"props":60,"children":61},{"style":55},[62],{"type":20,"value":63}," struct",{"type":15,"tag":48,"props":65,"children":67},{"style":66},"--shiki-default:#1F2328;--shiki-dark:#E6EDF3",[68],{"type":20,"value":69}," VkQueueFamilyOptimalImageTransferGranularityPropertiesKHR {\n",{"type":15,"tag":48,"props":71,"children":73},{"class":50,"line":72},2,[74],{"type":15,"tag":48,"props":75,"children":76},{"style":66},[77],{"type":20,"value":78}," VkStructureType sType;\n",{"type":15,"tag":48,"props":80,"children":82},{"class":50,"line":81},3,[83,88],{"type":15,"tag":48,"props":84,"children":85},{"style":55},[86],{"type":20,"value":87}," void*",{"type":15,"tag":48,"props":89,"children":90},{"style":66},[91],{"type":20,"value":92}," pNext;\n",{"type":15,"tag":48,"props":94,"children":96},{"class":50,"line":95},4,[97],{"type":15,"tag":48,"props":98,"children":99},{"style":66},[100],{"type":20,"value":101}," VkExtent3D optimalImageTransferGranularity;\n",{"type":15,"tag":48,"props":103,"children":105},{"class":50,"line":104},5,[106],{"type":15,"tag":48,"props":107,"children":108},{"style":66},[109],{"type":20,"value":110},"} VkQueueFamilyOptimalImageTransferGranularityPropertiesKHR;\n",{"type":15,"tag":35,"props":112,"children":117},{"className":113,"code":114,"filename":115,"language":116,"meta":41,"style":41},"language-rs shiki shiki-themes github-light-default github-dark-default","pub struct QueueFamilyOptimalImageTransferGranularityPropertiesKHR {\n s_type: vk::StructureType,\n p_next: *mut c_void,\n optimal_image_transfer_granularity: vk::Extent3D,\n}\n","Rust","rs",[118],{"type":15,"tag":44,"props":119,"children":120},{"__ignoreMap":41},[121,144,177,199,228],{"type":15,"tag":48,"props":122,"children":123},{"class":50,"line":51},[124,129,133,139],{"type":15,"tag":48,"props":125,"children":126},{"style":55},[127],{"type":20,"value":128},"pub",{"type":15,"tag":48,"props":130,"children":131},{"style":55},[132],{"type":20,"value":63},{"type":15,"tag":48,"props":134,"children":136},{"style":135},"--shiki-default:#953800;--shiki-dark:#FFA657",[137],{"type":20,"value":138}," QueueFamilyOptimalImageTransferGranularityPropertiesKHR",{"type":15,"tag":48,"props":140,"children":141},{"style":66},[142],{"type":20,"value":143}," {\n",{"type":15,"tag":48,"props":145,"children":146},{"class":50,"line":72},[147,152,157,162,167,172],{"type":15,"tag":48,"props":148,"children":149},{"style":66},[150],{"type":20,"value":151}," s_type",{"type":15,"tag":48,"props":153,"children":154},{"style":55},[155],{"type":20,"value":156},":",{"type":15,"tag":48,"props":158,"children":159},{"style":135},[160],{"type":20,"value":161}," vk",{"type":15,"tag":48,"props":163,"children":164},{"style":55},[165],{"type":20,"value":166},"::",{"type":15,"tag":48,"props":168,"children":169},{"style":135},[170],{"type":20,"value":171},"StructureType",{"type":15,"tag":48,"props":173,"children":174},{"style":66},[175],{"type":20,"value":176},",\n",{"type":15,"tag":48,"props":178,"children":179},{"class":50,"line":81},[180,185,189,194],{"type":15,"tag":48,"props":181,"children":182},{"style":66},[183],{"type":20,"value":184}," p_next",{"type":15,"tag":48,"props":186,"children":187},{"style":55},[188],{"type":20,"value":156},{"type":15,"tag":48,"props":190,"children":191},{"style":55},[192],{"type":20,"value":193}," *mut",{"type":15,"tag":48,"props":195,"children":196},{"style":66},[197],{"type":20,"value":198}," c_void,\n",{"type":15,"tag":48,"props":200,"children":201},{"class":50,"line":95},[202,207,211,215,219,224],{"type":15,"tag":48,"props":203,"children":204},{"style":66},[205],{"type":20,"value":206}," optimal_image_transfer_granularity",{"type":15,"tag":48,"props":208,"children":209},{"style":55},[210],{"type":20,"value":156},{"type":15,"tag":48,"props":212,"children":213},{"style":135},[214],{"type":20,"value":161},{"type":15,"tag":48,"props":216,"children":217},{"style":55},[218],{"type":20,"value":166},{"type":15,"tag":48,"props":220,"children":221},{"style":135},[222],{"type":20,"value":223},"Extent3D",{"type":15,"tag":48,"props":225,"children":226},{"style":66},[227],{"type":20,"value":176},{"type":15,"tag":48,"props":229,"children":230},{"class":50,"line":104},[231],{"type":15,"tag":48,"props":232,"children":233},{"style":66},[234],{"type":20,"value":235},"}\n",{"type":15,"tag":237,"props":238,"children":239},"ul",{},[240,260,279],{"type":15,"tag":241,"props":242,"children":243},"li",{},[244,250,252,258],{"type":15,"tag":44,"props":245,"children":247},{"className":246},[],[248],{"type":20,"value":249},"sType",{"type":20,"value":251}," is a ",{"type":15,"tag":23,"props":253,"children":255},{"href":254},"/man/VkStructureType",[256],{"type":20,"value":257},"VkStructureType",{"type":20,"value":259}," value identifying this structure.",{"type":15,"tag":241,"props":261,"children":262},{},[263,269,271,277],{"type":15,"tag":44,"props":264,"children":266},{"className":265},[],[267],{"type":20,"value":268},"pNext",{"type":20,"value":270}," is ",{"type":15,"tag":44,"props":272,"children":274},{"className":273},[],[275],{"type":20,"value":276},"NULL",{"type":20,"value":278}," or a pointer to a structure extending this\nstructure.",{"type":15,"tag":241,"props":280,"children":281},{},[282,288],{"type":15,"tag":44,"props":283,"children":285},{"className":284},[],[286],{"type":20,"value":287},"optimalImageTransferGranularity",{"type":20,"value":289}," is the optimal granularity for\nimage copy operations in this queue family.",{"type":15,"tag":16,"props":291,"children":292},{},[293,295,300,302,307,309,315],{"type":20,"value":294},"If this structure is included in the ",{"type":15,"tag":44,"props":296,"children":298},{"className":297},[],[299],{"type":20,"value":268},{"type":20,"value":301}," chain of the\n",{"type":15,"tag":23,"props":303,"children":305},{"href":304},"/man/VkQueueFamilyProperties2",[306],{"type":20,"value":8},{"type":20,"value":308}," structure passed to\n",{"type":15,"tag":23,"props":310,"children":312},{"href":311},"/man/vkGetPhysicalDeviceQueueFamilyProperties2",[313],{"type":20,"value":314},"vkGetPhysicalDeviceQueueFamilyProperties2",{"type":20,"value":316},", then it is filled with the\noptimal image transfer granularity for the specified queue family.",{"type":15,"tag":16,"props":318,"children":319},{},[320,322,327],{"type":20,"value":321},"The value returned in ",{"type":15,"tag":44,"props":323,"children":325},{"className":324},[],[326],{"type":20,"value":287},{"type":20,"value":328}," has a unit of\ncompressed texel blocks for images having a block-compressed format, and a\nunit of texels otherwise.",{"type":15,"tag":16,"props":330,"children":331},{},[332,334,339],{"type":20,"value":333},"Possible values of ",{"type":15,"tag":44,"props":335,"children":337},{"className":336},[],[338],{"type":20,"value":287},{"type":20,"value":340}," are:",{"type":15,"tag":237,"props":342,"children":343},{},[344,422],{"type":15,"tag":241,"props":345,"children":346},{},[347,349],{"type":20,"value":348},"(0,0,0) specifies that an image copy operation is optimal only\nwhen copying whole mip levels, i.e. all of the following conditions are\nmet:",{"type":15,"tag":237,"props":350,"children":351},{},[352,388],{"type":15,"tag":241,"props":353,"children":354},{},[355,356,362,364,370,372,378,380,386],{"type":20,"value":21},{"type":15,"tag":44,"props":357,"children":359},{"className":358},[],[360],{"type":20,"value":361},"x",{"type":20,"value":363},", ",{"type":15,"tag":44,"props":365,"children":367},{"className":366},[],[368],{"type":20,"value":369},"y",{"type":20,"value":371},", and ",{"type":15,"tag":44,"props":373,"children":375},{"className":374},[],[376],{"type":20,"value":377},"z",{"type":20,"value":379}," members of a ",{"type":15,"tag":23,"props":381,"children":383},{"href":382},"/man/VkOffset3D",[384],{"type":20,"value":385},"VkOffset3D",{"type":20,"value":387}," are\nzero.",{"type":15,"tag":241,"props":389,"children":390},{},[391,392,398,399,405,406,412,414,420],{"type":20,"value":21},{"type":15,"tag":44,"props":393,"children":395},{"className":394},[],[396],{"type":20,"value":397},"width",{"type":20,"value":363},{"type":15,"tag":44,"props":400,"children":402},{"className":401},[],[403],{"type":20,"value":404},"height",{"type":20,"value":371},{"type":15,"tag":44,"props":407,"children":409},{"className":408},[],[410],{"type":20,"value":411},"depth",{"type":20,"value":413}," members of a\n",{"type":15,"tag":23,"props":415,"children":417},{"href":416},"/man/VkExtent3D",[418],{"type":20,"value":419},"VkExtent3D",{"type":20,"value":421}," parameter match the width, height, and depth of the\nimage subresource corresponding to the parameter, respectively.",{"type":15,"tag":241,"props":423,"children":424},{},[425,427,432,434,438,439,443,445,449,450,454,456,460,462],{"type":20,"value":426},"(A",{"type":15,"tag":428,"props":429,"children":430},"sub",{},[431],{"type":20,"value":361},{"type":20,"value":433},", A",{"type":15,"tag":428,"props":435,"children":436},{},[437],{"type":20,"value":369},{"type":20,"value":433},{"type":15,"tag":428,"props":440,"children":441},{},[442],{"type":20,"value":377},{"type":20,"value":444},") where A",{"type":15,"tag":428,"props":446,"children":447},{},[448],{"type":20,"value":361},{"type":20,"value":433},{"type":15,"tag":428,"props":451,"children":452},{},[453],{"type":20,"value":369},{"type":20,"value":455},", and A",{"type":15,"tag":428,"props":457,"children":458},{},[459],{"type":20,"value":377},{"type":20,"value":461},"\nare all integer powers of two.\nAn image copy operation is optimal when all of the following conditions\nare met:",{"type":15,"tag":237,"props":463,"children":464},{},[465,501,533,565],{"type":15,"tag":241,"props":466,"children":467},{},[468,473,475,479,481,485,487,492,494,499],{"type":15,"tag":44,"props":469,"children":471},{"className":470},[],[472],{"type":20,"value":397},{"type":20,"value":474}," of a ",{"type":15,"tag":23,"props":476,"children":477},{"href":416},[478],{"type":20,"value":419},{"type":20,"value":480}," parameter is an integer multiple of\nA",{"type":15,"tag":428,"props":482,"children":483},{},[484],{"type":20,"value":361},{"type":20,"value":486},", or else ",{"type":15,"tag":44,"props":488,"children":490},{"className":489},[],[491],{"type":20,"value":361},{"type":20,"value":493}," + ",{"type":15,"tag":44,"props":495,"children":497},{"className":496},[],[498],{"type":20,"value":397},{"type":20,"value":500}," equals the width\nof the image subresource corresponding to the parameter.",{"type":15,"tag":241,"props":502,"children":503},{},[504,509,510,514,515,519,520,525,526,531],{"type":15,"tag":44,"props":505,"children":507},{"className":506},[],[508],{"type":20,"value":404},{"type":20,"value":474},{"type":15,"tag":23,"props":511,"children":512},{"href":416},[513],{"type":20,"value":419},{"type":20,"value":480},{"type":15,"tag":428,"props":516,"children":517},{},[518],{"type":20,"value":369},{"type":20,"value":486},{"type":15,"tag":44,"props":521,"children":523},{"className":522},[],[524],{"type":20,"value":369},{"type":20,"value":493},{"type":15,"tag":44,"props":527,"children":529},{"className":528},[],[530],{"type":20,"value":404},{"type":20,"value":532}," equals the height\nof the image subresource corresponding to the parameter.",{"type":15,"tag":241,"props":534,"children":535},{},[536,541,542,546,547,551,552,557,558,563],{"type":15,"tag":44,"props":537,"children":539},{"className":538},[],[540],{"type":20,"value":411},{"type":20,"value":474},{"type":15,"tag":23,"props":543,"children":544},{"href":416},[545],{"type":20,"value":419},{"type":20,"value":480},{"type":15,"tag":428,"props":548,"children":549},{},[550],{"type":20,"value":377},{"type":20,"value":486},{"type":15,"tag":44,"props":553,"children":555},{"className":554},[],[556],{"type":20,"value":377},{"type":20,"value":493},{"type":15,"tag":44,"props":559,"children":561},{"className":560},[],[562],{"type":20,"value":411},{"type":20,"value":564}," equals the depth\nof the image subresource corresponding to the parameter.",{"type":15,"tag":241,"props":566,"children":567},{},[568,570,575],{"type":20,"value":569},"If the format of the image corresponding to the parameters is one of\nthe block-compressed formats then for the purposes of the above\ncalculations the granularity ",{"type":15,"tag":571,"props":572,"children":574},"normative",{"type":573},"must",[],{"type":20,"value":576}," be scaled up by the compressed texel\nblock dimensions.",{"type":15,"tag":578,"props":579,"children":580},"note",{},[581],{"type":15,"tag":16,"props":582,"children":583},{},[584,586,591],{"type":20,"value":585},"While it is not required that copies are optimal, there may be a performance\ncost for copies not aligned to ",{"type":15,"tag":44,"props":587,"children":589},{"className":588},[],[590],{"type":20,"value":287},{"type":20,"value":592},".",{"type":15,"tag":594,"props":595,"children":597},"validity-group",{"name":596},"Valid Usage (Implicit)",[598],{"type":15,"tag":599,"props":600,"children":602},"validity-field",{"name":601},"VUID-VkQueueFamilyOptimalImageTransferGranularityPropertiesKHR-sType-sType",[603],{"type":15,"tag":16,"props":604,"children":605},{},[606,611,613,616,618],{"type":15,"tag":44,"props":607,"children":609},{"className":608},[],[610],{"type":20,"value":249},{"type":20,"value":612}," ",{"type":15,"tag":571,"props":614,"children":615},{"type":573},[],{"type":20,"value":617}," be ",{"type":15,"tag":44,"props":619,"children":621},{"className":620},[],[622],{"type":20,"value":623},"VK_STRUCTURE_TYPE_QUEUE_FAMILY_OPTIMAL_IMAGE_TRANSFER_GRANULARITY_PROPERTIES_KHR",{"type":15,"tag":625,"props":626,"children":627},"style",{},[628],{"type":20,"value":629},"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":72,"depth":72,"links":631},[],"markdown",1777629626973]