[{"data":1,"prerenderedAt":880},["ShallowReactive",2],{"NwrKG9TvLq":3},{"title":4,"description":5,"parent":6,"type":7,"xrefs":8,"body":9,"_type":879,"_id":4},"VkDrmFormatModifierPropertiesEXT","Structure specifying properties of a format when combined with a DRM format modifier","VK_EXT_image_drm_format_modifier","structs",[],{"type":10,"children":11,"toc":877},"root",[12,52,62,264,365,384,408,482,559,593,681,848,871],{"type":13,"tag":14,"props":15,"children":16},"element","p",{},[17,20,26,28,34,36,42,44,50],{"type":18,"value":19},"text","The ",{"type":13,"tag":21,"props":22,"children":24},"a",{"href":23},"/man/VkDrmFormatModifierPropertiesEXT",[25],{"type":18,"value":4},{"type":18,"value":27}," structure describes properties of\na ",{"type":13,"tag":21,"props":29,"children":31},{"href":30},"/man/VkFormat",[32],{"type":18,"value":33},"VkFormat",{"type":18,"value":35}," when that format is combined with a\n",{"type":13,"tag":21,"props":37,"children":39},{"href":38},"/404#glossary-drm-format-modifier",[40],{"type":18,"value":41},"Linux DRM format modifier",{"type":18,"value":43},".\nThese properties, like those of ",{"type":13,"tag":21,"props":45,"children":47},{"href":46},"/man/VkFormatProperties2",[48],{"type":18,"value":49},"VkFormatProperties2",{"type":18,"value":51},", are independent\nof any particular image.",{"type":13,"tag":14,"props":53,"children":54},{},[55,56,60],{"type":18,"value":19},{"type":13,"tag":21,"props":57,"children":58},{"href":23},[59],{"type":18,"value":4},{"type":18,"value":61}," structure is defined as:",{"type":13,"tag":63,"props":64,"children":65},"code-group",{},[66,148],{"type":13,"tag":67,"props":68,"children":74},"pre",{"className":69,"code":70,"filename":71,"language":72,"meta":73,"style":73},"language-c shiki shiki-themes github-light-default github-dark-default","typedef struct VkDrmFormatModifierPropertiesEXT {\n uint64_t drmFormatModifier;\n uint32_t drmFormatModifierPlaneCount;\n VkFormatFeatureFlags drmFormatModifierTilingFeatures;\n} VkDrmFormatModifierPropertiesEXT;\n","C","c","",[75],{"type":13,"tag":76,"props":77,"children":78},"code",{"__ignoreMap":73},[79,102,116,130,139],{"type":13,"tag":80,"props":81,"children":84},"span",{"class":82,"line":83},"line",1,[85,91,96],{"type":13,"tag":80,"props":86,"children":88},{"style":87},"--shiki-default:#CF222E;--shiki-dark:#FF7B72",[89],{"type":18,"value":90},"typedef",{"type":13,"tag":80,"props":92,"children":93},{"style":87},[94],{"type":18,"value":95}," struct",{"type":13,"tag":80,"props":97,"children":99},{"style":98},"--shiki-default:#1F2328;--shiki-dark:#E6EDF3",[100],{"type":18,"value":101}," VkDrmFormatModifierPropertiesEXT {\n",{"type":13,"tag":80,"props":103,"children":105},{"class":82,"line":104},2,[106,111],{"type":13,"tag":80,"props":107,"children":108},{"style":87},[109],{"type":18,"value":110}," uint64_t",{"type":13,"tag":80,"props":112,"children":113},{"style":98},[114],{"type":18,"value":115}," drmFormatModifier;\n",{"type":13,"tag":80,"props":117,"children":119},{"class":82,"line":118},3,[120,125],{"type":13,"tag":80,"props":121,"children":122},{"style":87},[123],{"type":18,"value":124}," uint32_t",{"type":13,"tag":80,"props":126,"children":127},{"style":98},[128],{"type":18,"value":129}," drmFormatModifierPlaneCount;\n",{"type":13,"tag":80,"props":131,"children":133},{"class":82,"line":132},4,[134],{"type":13,"tag":80,"props":135,"children":136},{"style":98},[137],{"type":18,"value":138}," VkFormatFeatureFlags drmFormatModifierTilingFeatures;\n",{"type":13,"tag":80,"props":140,"children":142},{"class":82,"line":141},5,[143],{"type":13,"tag":80,"props":144,"children":145},{"style":98},[146],{"type":18,"value":147},"} VkDrmFormatModifierPropertiesEXT;\n",{"type":13,"tag":67,"props":149,"children":154},{"className":150,"code":151,"filename":152,"language":153,"meta":73,"style":73},"language-rs shiki shiki-themes github-light-default github-dark-default","pub struct DrmFormatModifierPropertiesEXT {\n drm_format_modifier: u64,\n drm_format_modifier_plane_count: u32,\n drm_format_modifier_tiling_features: vk::FormatFeatureFlags,\n}\n","Rust","rs",[155],{"type":13,"tag":76,"props":156,"children":157},{"__ignoreMap":73},[158,181,204,225,256],{"type":13,"tag":80,"props":159,"children":160},{"class":82,"line":83},[161,166,170,176],{"type":13,"tag":80,"props":162,"children":163},{"style":87},[164],{"type":18,"value":165},"pub",{"type":13,"tag":80,"props":167,"children":168},{"style":87},[169],{"type":18,"value":95},{"type":13,"tag":80,"props":171,"children":173},{"style":172},"--shiki-default:#953800;--shiki-dark:#FFA657",[174],{"type":18,"value":175}," DrmFormatModifierPropertiesEXT",{"type":13,"tag":80,"props":177,"children":178},{"style":98},[179],{"type":18,"value":180}," {\n",{"type":13,"tag":80,"props":182,"children":183},{"class":82,"line":104},[184,189,194,199],{"type":13,"tag":80,"props":185,"children":186},{"style":98},[187],{"type":18,"value":188}," drm_format_modifier",{"type":13,"tag":80,"props":190,"children":191},{"style":87},[192],{"type":18,"value":193},":",{"type":13,"tag":80,"props":195,"children":196},{"style":172},[197],{"type":18,"value":198}," u64",{"type":13,"tag":80,"props":200,"children":201},{"style":98},[202],{"type":18,"value":203},",\n",{"type":13,"tag":80,"props":205,"children":206},{"class":82,"line":118},[207,212,216,221],{"type":13,"tag":80,"props":208,"children":209},{"style":98},[210],{"type":18,"value":211}," drm_format_modifier_plane_count",{"type":13,"tag":80,"props":213,"children":214},{"style":87},[215],{"type":18,"value":193},{"type":13,"tag":80,"props":217,"children":218},{"style":172},[219],{"type":18,"value":220}," u32",{"type":13,"tag":80,"props":222,"children":223},{"style":98},[224],{"type":18,"value":203},{"type":13,"tag":80,"props":226,"children":227},{"class":82,"line":132},[228,233,237,242,247,252],{"type":13,"tag":80,"props":229,"children":230},{"style":98},[231],{"type":18,"value":232}," drm_format_modifier_tiling_features",{"type":13,"tag":80,"props":234,"children":235},{"style":87},[236],{"type":18,"value":193},{"type":13,"tag":80,"props":238,"children":239},{"style":172},[240],{"type":18,"value":241}," vk",{"type":13,"tag":80,"props":243,"children":244},{"style":87},[245],{"type":18,"value":246},"::",{"type":13,"tag":80,"props":248,"children":249},{"style":172},[250],{"type":18,"value":251},"FormatFeatureFlags",{"type":13,"tag":80,"props":253,"children":254},{"style":98},[255],{"type":18,"value":203},{"type":13,"tag":80,"props":257,"children":258},{"class":82,"line":141},[259],{"type":13,"tag":80,"props":260,"children":261},{"style":98},[262],{"type":18,"value":263},"}\n",{"type":13,"tag":265,"props":266,"children":267},"ul",{},[268,287,334],{"type":13,"tag":269,"props":270,"children":271},"li",{},[272,278,280,285],{"type":13,"tag":76,"props":273,"children":275},{"className":274},[],[276],{"type":18,"value":277},"drmFormatModifier",{"type":18,"value":279}," is a ",{"type":13,"tag":281,"props":282,"children":283},"em",{},[284],{"type":18,"value":41},{"type":18,"value":286},".",{"type":13,"tag":269,"props":288,"children":289},{},[290,296,298,303,305,311,313,318,320,325,327,332],{"type":13,"tag":76,"props":291,"children":293},{"className":292},[],[294],{"type":18,"value":295},"drmFormatModifierPlaneCount",{"type":18,"value":297}," is the number of ",{"type":13,"tag":281,"props":299,"children":300},{},[301],{"type":18,"value":302},"memory planes",{"type":18,"value":304}," in\nany image created with ",{"type":13,"tag":76,"props":306,"children":308},{"className":307},[],[309],{"type":18,"value":310},"format",{"type":18,"value":312}," and ",{"type":13,"tag":76,"props":314,"children":316},{"className":315},[],[317],{"type":18,"value":277},{"type":18,"value":319},".\nAn image’s ",{"type":13,"tag":281,"props":321,"children":322},{},[323],{"type":18,"value":324},"memory planecount",{"type":18,"value":326}," is distinct from its ",{"type":13,"tag":281,"props":328,"children":329},{},[330],{"type":18,"value":331},"format planecount",{"type":18,"value":333},",\nas explained below.",{"type":13,"tag":269,"props":335,"children":336},{},[337,343,345,351,353,358,359,364],{"type":13,"tag":76,"props":338,"children":340},{"className":339},[],[341],{"type":18,"value":342},"drmFormatModifierTilingFeatures",{"type":18,"value":344}," is a bitmask of\n",{"type":13,"tag":21,"props":346,"children":348},{"href":347},"/man/VkFormatFeatureFlagBits",[349],{"type":18,"value":350},"VkFormatFeatureFlagBits",{"type":18,"value":352}," that are supported by any image created\nwith ",{"type":13,"tag":76,"props":354,"children":356},{"className":355},[],[357],{"type":18,"value":310},{"type":18,"value":312},{"type":13,"tag":76,"props":360,"children":362},{"className":361},[],[363],{"type":18,"value":277},{"type":18,"value":286},{"type":13,"tag":14,"props":366,"children":367},{},[368,370,375,377,382],{"type":18,"value":369},"The returned ",{"type":13,"tag":76,"props":371,"children":373},{"className":372},[],[374],{"type":18,"value":342},{"type":18,"value":376}," ",{"type":13,"tag":378,"props":379,"children":381},"normative",{"type":380},"must",[],{"type":18,"value":383}," contain at least\none bit.",{"type":13,"tag":14,"props":385,"children":386},{},[387,389,392,394,400,402,407],{"type":18,"value":388},"The implementation ",{"type":13,"tag":378,"props":390,"children":391},{"type":380},[],{"type":18,"value":393}," not return ",{"type":13,"tag":76,"props":395,"children":397},{"className":396},[],[398],{"type":18,"value":399},"DRM_FORMAT_MOD_INVALID",{"type":18,"value":401}," in\n",{"type":13,"tag":76,"props":403,"children":405},{"className":404},[],[406],{"type":18,"value":277},{"type":18,"value":286},{"type":13,"tag":14,"props":409,"children":410},{},[411,413,417,419,424,426,430,432,438,440,446,447,452,454,460,462,474,476,481],{"type":18,"value":412},"An image’s ",{"type":13,"tag":281,"props":414,"children":415},{},[416],{"type":18,"value":324},{"type":18,"value":418}," (as returned by\n",{"type":13,"tag":76,"props":420,"children":422},{"className":421},[],[423],{"type":18,"value":295},{"type":18,"value":425},") is distinct from its ",{"type":13,"tag":281,"props":427,"children":428},{},[429],{"type":18,"value":331},{"type":18,"value":431},"\n(in the sense of ",{"type":13,"tag":21,"props":433,"children":435},{"href":434},"/chapters/formats#formats-requiring-sampler-ycbcr-conversion",[436],{"type":18,"value":437},"multi-planar",{"type":18,"value":439},"\nY′C",{"type":13,"tag":441,"props":442,"children":443},"sub",{},[444],{"type":18,"value":445},"B",{"type":18,"value":71},{"type":13,"tag":441,"props":448,"children":449},{},[450],{"type":18,"value":451},"R",{"type":18,"value":453}," formats).\nIn ",{"type":13,"tag":21,"props":455,"children":457},{"href":456},"/man/VkImageAspectFlags",[458],{"type":18,"value":459},"VkImageAspectFlags",{"type":18,"value":461},", each\nVK_IMAGE_ASPECT_MEMORY_PLANE*_i_",{"type":13,"tag":281,"props":463,"children":464},{},[465,467,472],{"type":18,"value":466},"BIT_EXT represents a ",{"type":13,"tag":281,"props":468,"children":469},{},[470],{"type":18,"value":471},"memory plane",{"type":18,"value":473},"\nand each VK_IMAGE_ASPECT_PLANE",{"type":18,"value":475},"_i_*BIT a ",{"type":13,"tag":281,"props":477,"children":478},{},[479],{"type":18,"value":480},"format plane",{"type":18,"value":286},{"type":13,"tag":14,"props":483,"children":484},{},[485,487,492,494,499,501,505,507,513,515,520,522,528,530,536,538,544,546,550,552,557],{"type":18,"value":486},"An image’s set of ",{"type":13,"tag":281,"props":488,"children":489},{},[490],{"type":18,"value":491},"format planes",{"type":18,"value":493}," is an ordered partition of the image’s\n",{"type":13,"tag":281,"props":495,"children":496},{},[497],{"type":18,"value":498},"content",{"type":18,"value":500}," into separable groups of format components.\nThe ordered partition is encoded in the name of each ",{"type":13,"tag":21,"props":502,"children":503},{"href":30},[504],{"type":18,"value":33},{"type":18,"value":506},".\nFor example, ",{"type":13,"tag":76,"props":508,"children":510},{"className":509},[],[511],{"type":18,"value":512},"VK_FORMAT_G8_B8R8_2PLANE_420_UNORM",{"type":18,"value":514}," contains two ",{"type":13,"tag":281,"props":516,"children":517},{},[518],{"type":18,"value":519},"format\nplanes",{"type":18,"value":521},"; the first plane contains the green component and the second plane\ncontains the blue component and red component.\nIf the format name does not contain ",{"type":13,"tag":76,"props":523,"children":525},{"className":524},[],[526],{"type":18,"value":527},"PLANE",{"type":18,"value":529},", then the format contains a\nsingle plane; for example, ",{"type":13,"tag":76,"props":531,"children":533},{"className":532},[],[534],{"type":18,"value":535},"VK_FORMAT_R8G8B8A8_UNORM",{"type":18,"value":537},".\nSome commands, such as ",{"type":13,"tag":21,"props":539,"children":541},{"href":540},"/man/vkCmdCopyBufferToImage",[542],{"type":18,"value":543},"vkCmdCopyBufferToImage",{"type":18,"value":545},", do not operate on all\nformat components in the image, but instead operate only on the ",{"type":13,"tag":281,"props":547,"children":548},{},[549],{"type":18,"value":519},{"type":18,"value":551}," explicitly chosen by the application and operate on each ",{"type":13,"tag":281,"props":553,"children":554},{},[555],{"type":18,"value":556},"format\nplane",{"type":18,"value":558}," independently.",{"type":13,"tag":14,"props":560,"children":561},{},[562,563,567,568,573,575,579,581,585,587,591],{"type":18,"value":486},{"type":13,"tag":281,"props":564,"children":565},{},[566],{"type":18,"value":302},{"type":18,"value":493},{"type":13,"tag":281,"props":569,"children":570},{},[571],{"type":18,"value":572},"memory",{"type":18,"value":574}," rather than the image’s ",{"type":13,"tag":281,"props":576,"children":577},{},[578],{"type":18,"value":498},{"type":18,"value":580},".\nEach ",{"type":13,"tag":281,"props":582,"children":583},{},[584],{"type":18,"value":471},{"type":18,"value":586}," is a contiguous range of memory.\nThe union of an image’s ",{"type":13,"tag":281,"props":588,"children":589},{},[590],{"type":18,"value":302},{"type":18,"value":592}," is not necessarily contiguous.",{"type":13,"tag":14,"props":594,"children":595},{},[596,598,604,606,610,612,616,618,623,625,631,633,638,639,642,644,648,650,655,658,660,664,665,671,673,679],{"type":18,"value":597},"If an image is ",{"type":13,"tag":21,"props":599,"children":601},{"href":600},"/404#glossary-linear-resource",[602],{"type":18,"value":603},"linear",{"type":18,"value":605},", then the partition is\nthe same for ",{"type":13,"tag":281,"props":607,"children":608},{},[609],{"type":18,"value":302},{"type":18,"value":611}," and for ",{"type":13,"tag":281,"props":613,"children":614},{},[615],{"type":18,"value":491},{"type":18,"value":617},".\nTherefore, if the returned ",{"type":13,"tag":76,"props":619,"children":621},{"className":620},[],[622],{"type":18,"value":277},{"type":18,"value":624}," is\n",{"type":13,"tag":76,"props":626,"children":628},{"className":627},[],[629],{"type":18,"value":630},"DRM_FORMAT_MOD_LINEAR",{"type":18,"value":632},", then ",{"type":13,"tag":76,"props":634,"children":636},{"className":635},[],[637],{"type":18,"value":295},{"type":18,"value":376},{"type":13,"tag":378,"props":640,"children":641},{"type":380},[],{"type":18,"value":643},"\nequal the ",{"type":13,"tag":281,"props":645,"children":646},{},[647],{"type":18,"value":331},{"type":18,"value":649},", and ",{"type":13,"tag":76,"props":651,"children":653},{"className":652},[],[654],{"type":18,"value":342},{"type":13,"tag":378,"props":656,"children":657},{"type":380},[],{"type":18,"value":659}," be identical to the\n",{"type":13,"tag":21,"props":661,"children":662},{"href":46},[663],{"type":18,"value":49},{"type":18,"value":246},{"type":13,"tag":76,"props":666,"children":668},{"className":667},[],[669],{"type":18,"value":670},"linearTilingFeatures",{"type":18,"value":672}," returned in the same\n",{"type":13,"tag":76,"props":674,"children":676},{"className":675},[],[677],{"type":18,"value":678},"pNext",{"type":18,"value":680}," chain.",{"type":13,"tag":14,"props":682,"children":683},{},[684,685,690,692,696,698,702,704,708,710,714,715,719,721,726,727,733,735,741,742,748,750,755,757,762,763,769,771,777,779,783,785,789,791,795,797,801,803,806,808,812,814,818,820,824,826,829,831,835,837,840,842,846],{"type":18,"value":597},{"type":13,"tag":21,"props":686,"children":687},{"href":600},[688],{"type":18,"value":689},"non-linear",{"type":18,"value":691},", then the partition\nof the image’s ",{"type":13,"tag":281,"props":693,"children":694},{},[695],{"type":18,"value":572},{"type":18,"value":697}," into ",{"type":13,"tag":281,"props":699,"children":700},{},[701],{"type":18,"value":302},{"type":18,"value":703}," is implementation-specific and\n",{"type":13,"tag":378,"props":705,"children":707},{"type":706},"may",[],{"type":18,"value":709}," be unrelated to the partition of the image’s ",{"type":13,"tag":281,"props":711,"children":712},{},[713],{"type":18,"value":498},{"type":18,"value":697},{"type":13,"tag":281,"props":716,"children":717},{},[718],{"type":18,"value":519},{"type":18,"value":720},".\nFor example, consider an image whose ",{"type":13,"tag":76,"props":722,"children":724},{"className":723},[],[725],{"type":18,"value":310},{"type":18,"value":624},{"type":13,"tag":76,"props":728,"children":730},{"className":729},[],[731],{"type":18,"value":732},"VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM",{"type":18,"value":734},", ",{"type":13,"tag":76,"props":736,"children":738},{"className":737},[],[739],{"type":18,"value":740},"tiling",{"type":18,"value":624},{"type":13,"tag":76,"props":743,"children":745},{"className":744},[],[746],{"type":18,"value":747},"VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT",{"type":18,"value":749},", whose ",{"type":13,"tag":76,"props":751,"children":753},{"className":752},[],[754],{"type":18,"value":277},{"type":18,"value":756},"\nis not ",{"type":13,"tag":76,"props":758,"children":760},{"className":759},[],[761],{"type":18,"value":630},{"type":18,"value":649},{"type":13,"tag":76,"props":764,"children":766},{"className":765},[],[767],{"type":18,"value":768},"flags",{"type":18,"value":770}," lacks\n",{"type":13,"tag":76,"props":772,"children":774},{"className":773},[],[775],{"type":18,"value":776},"VK_IMAGE_CREATE_DISJOINT_BIT",{"type":18,"value":778},".\nThe image has 3 ",{"type":13,"tag":281,"props":780,"children":781},{},[782],{"type":18,"value":491},{"type":18,"value":784},", and commands such\n",{"type":13,"tag":21,"props":786,"children":787},{"href":540},[788],{"type":18,"value":543},{"type":18,"value":790}," act on each ",{"type":13,"tag":281,"props":792,"children":793},{},[794],{"type":18,"value":480},{"type":18,"value":796}," independently as if\nthe data of each ",{"type":13,"tag":281,"props":798,"children":799},{},[800],{"type":18,"value":480},{"type":18,"value":802}," were separable from the data of the other\nplanes.\nIn a straightforward implementation, the implementation ",{"type":13,"tag":378,"props":804,"children":805},{"type":706},[],{"type":18,"value":807}," store the\nimage’s content in 3 adjacent ",{"type":13,"tag":281,"props":809,"children":810},{},[811],{"type":18,"value":302},{"type":18,"value":813}," where each ",{"type":13,"tag":281,"props":815,"children":816},{},[817],{"type":18,"value":471},{"type":18,"value":819},"\ncorresponds exactly to a ",{"type":13,"tag":281,"props":821,"children":822},{},[823],{"type":18,"value":480},{"type":18,"value":825},".\nHowever, the implementation ",{"type":13,"tag":378,"props":827,"children":828},{"type":706},[],{"type":18,"value":830}," also store the image’s content in a single\n",{"type":13,"tag":281,"props":832,"children":833},{},[834],{"type":18,"value":471},{"type":18,"value":836}," where all format components are combined using an\nimplementation-private block-compressed format; or the implementation ",{"type":13,"tag":378,"props":838,"children":839},{"type":706},[],{"type":18,"value":841},"\nstore the image’s content in a collection of 7 adjacent ",{"type":13,"tag":281,"props":843,"children":844},{},[845],{"type":18,"value":302},{"type":18,"value":847},"\nusing an implementation-private sharding technique.\nBecause the image is non-linear and non-disjoint, the implementation has\nmuch freedom when choosing the image’s placement in memory.",{"type":13,"tag":14,"props":849,"children":850},{},[851,852,856,858,863,865,869],{"type":18,"value":19},{"type":13,"tag":281,"props":853,"children":854},{},[855],{"type":18,"value":324},{"type":18,"value":857}," applies to function parameters and structures only\nwhen the API specifies an explicit requirement on\n",{"type":13,"tag":76,"props":859,"children":861},{"className":860},[],[862],{"type":18,"value":295},{"type":18,"value":864},".\nIn all other cases, the ",{"type":13,"tag":281,"props":866,"children":867},{},[868],{"type":18,"value":324},{"type":18,"value":870}," is ignored.",{"type":13,"tag":872,"props":873,"children":874},"style",{},[875],{"type":18,"value":876},"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":73,"searchDepth":104,"depth":104,"links":878},[],"markdown",1725732550960]