[{"data":1,"prerenderedAt":626},["ShallowReactive",2],{"kciLsMQHbY":3},{"title":4,"description":5,"parent":6,"type":7,"xrefs":8,"body":9,"_type":625,"_id":4},"VkPhysicalDeviceSubgroupSizeControlFeatures","Structure describing the subgroup size control features that can be supported by an implementation","VK_VERSION_1_3","structs",[],{"type":10,"children":11,"toc":623},"root",[12,28,270,275,340,345,444,508,586,617],{"type":13,"tag":14,"props":15,"children":16},"element","p",{},[17,20,26],{"type":18,"value":19},"text","The ",{"type":13,"tag":21,"props":22,"children":24},"code",{"className":23},[],[25],{"type":18,"value":4},{"type":18,"value":27}," structure is defined\nas:",{"type":13,"tag":29,"props":30,"children":31},"code-group",{},[32,117],{"type":13,"tag":33,"props":34,"children":40},"pre",{"className":35,"code":36,"filename":37,"language":38,"meta":39,"style":39},"language-c shiki shiki-themes github-light-default github-dark-default","typedef struct VkPhysicalDeviceSubgroupSizeControlFeatures {\n VkStructureType sType;\n void* pNext;\n VkBool32 subgroupSizeControl;\n VkBool32 computeFullSubgroups;\n} VkPhysicalDeviceSubgroupSizeControlFeatures;\n","C","c","",[41],{"type":13,"tag":21,"props":42,"children":43},{"__ignoreMap":39},[44,67,76,90,99,108],{"type":13,"tag":45,"props":46,"children":49},"span",{"class":47,"line":48},"line",1,[50,56,61],{"type":13,"tag":45,"props":51,"children":53},{"style":52},"--shiki-default:#CF222E;--shiki-dark:#FF7B72",[54],{"type":18,"value":55},"typedef",{"type":13,"tag":45,"props":57,"children":58},{"style":52},[59],{"type":18,"value":60}," struct",{"type":13,"tag":45,"props":62,"children":64},{"style":63},"--shiki-default:#1F2328;--shiki-dark:#E6EDF3",[65],{"type":18,"value":66}," VkPhysicalDeviceSubgroupSizeControlFeatures {\n",{"type":13,"tag":45,"props":68,"children":70},{"class":47,"line":69},2,[71],{"type":13,"tag":45,"props":72,"children":73},{"style":63},[74],{"type":18,"value":75}," VkStructureType sType;\n",{"type":13,"tag":45,"props":77,"children":79},{"class":47,"line":78},3,[80,85],{"type":13,"tag":45,"props":81,"children":82},{"style":52},[83],{"type":18,"value":84}," void*",{"type":13,"tag":45,"props":86,"children":87},{"style":63},[88],{"type":18,"value":89}," pNext;\n",{"type":13,"tag":45,"props":91,"children":93},{"class":47,"line":92},4,[94],{"type":13,"tag":45,"props":95,"children":96},{"style":63},[97],{"type":18,"value":98}," VkBool32 subgroupSizeControl;\n",{"type":13,"tag":45,"props":100,"children":102},{"class":47,"line":101},5,[103],{"type":13,"tag":45,"props":104,"children":105},{"style":63},[106],{"type":18,"value":107}," VkBool32 computeFullSubgroups;\n",{"type":13,"tag":45,"props":109,"children":111},{"class":47,"line":110},6,[112],{"type":13,"tag":45,"props":113,"children":114},{"style":63},[115],{"type":18,"value":116},"} VkPhysicalDeviceSubgroupSizeControlFeatures;\n",{"type":13,"tag":33,"props":118,"children":123},{"className":119,"code":120,"filename":121,"language":122,"meta":39,"style":39},"language-rs shiki shiki-themes github-light-default github-dark-default","pub struct PhysicalDeviceSubgroupSizeControlFeatures {\n s_type: vk::StructureType,\n p_next: *mut c_void,\n subgroup_size_control: vk::Bool32,\n compute_full_subgroups: vk::Bool32,\n}\n","Rust","rs",[124],{"type":13,"tag":21,"props":125,"children":126},{"__ignoreMap":39},[127,150,183,205,234,262],{"type":13,"tag":45,"props":128,"children":129},{"class":47,"line":48},[130,135,139,145],{"type":13,"tag":45,"props":131,"children":132},{"style":52},[133],{"type":18,"value":134},"pub",{"type":13,"tag":45,"props":136,"children":137},{"style":52},[138],{"type":18,"value":60},{"type":13,"tag":45,"props":140,"children":142},{"style":141},"--shiki-default:#953800;--shiki-dark:#FFA657",[143],{"type":18,"value":144}," PhysicalDeviceSubgroupSizeControlFeatures",{"type":13,"tag":45,"props":146,"children":147},{"style":63},[148],{"type":18,"value":149}," {\n",{"type":13,"tag":45,"props":151,"children":152},{"class":47,"line":69},[153,158,163,168,173,178],{"type":13,"tag":45,"props":154,"children":155},{"style":63},[156],{"type":18,"value":157}," s_type",{"type":13,"tag":45,"props":159,"children":160},{"style":52},[161],{"type":18,"value":162},":",{"type":13,"tag":45,"props":164,"children":165},{"style":141},[166],{"type":18,"value":167}," vk",{"type":13,"tag":45,"props":169,"children":170},{"style":52},[171],{"type":18,"value":172},"::",{"type":13,"tag":45,"props":174,"children":175},{"style":141},[176],{"type":18,"value":177},"StructureType",{"type":13,"tag":45,"props":179,"children":180},{"style":63},[181],{"type":18,"value":182},",\n",{"type":13,"tag":45,"props":184,"children":185},{"class":47,"line":78},[186,191,195,200],{"type":13,"tag":45,"props":187,"children":188},{"style":63},[189],{"type":18,"value":190}," p_next",{"type":13,"tag":45,"props":192,"children":193},{"style":52},[194],{"type":18,"value":162},{"type":13,"tag":45,"props":196,"children":197},{"style":52},[198],{"type":18,"value":199}," *mut",{"type":13,"tag":45,"props":201,"children":202},{"style":63},[203],{"type":18,"value":204}," c_void,\n",{"type":13,"tag":45,"props":206,"children":207},{"class":47,"line":92},[208,213,217,221,225,230],{"type":13,"tag":45,"props":209,"children":210},{"style":63},[211],{"type":18,"value":212}," subgroup_size_control",{"type":13,"tag":45,"props":214,"children":215},{"style":52},[216],{"type":18,"value":162},{"type":13,"tag":45,"props":218,"children":219},{"style":141},[220],{"type":18,"value":167},{"type":13,"tag":45,"props":222,"children":223},{"style":52},[224],{"type":18,"value":172},{"type":13,"tag":45,"props":226,"children":227},{"style":141},[228],{"type":18,"value":229},"Bool32",{"type":13,"tag":45,"props":231,"children":232},{"style":63},[233],{"type":18,"value":182},{"type":13,"tag":45,"props":235,"children":236},{"class":47,"line":101},[237,242,246,250,254,258],{"type":13,"tag":45,"props":238,"children":239},{"style":63},[240],{"type":18,"value":241}," compute_full_subgroups",{"type":13,"tag":45,"props":243,"children":244},{"style":52},[245],{"type":18,"value":162},{"type":13,"tag":45,"props":247,"children":248},{"style":141},[249],{"type":18,"value":167},{"type":13,"tag":45,"props":251,"children":252},{"style":52},[253],{"type":18,"value":172},{"type":13,"tag":45,"props":255,"children":256},{"style":141},[257],{"type":18,"value":229},{"type":13,"tag":45,"props":259,"children":260},{"style":63},[261],{"type":18,"value":182},{"type":13,"tag":45,"props":263,"children":264},{"class":47,"line":110},[265],{"type":13,"tag":45,"props":266,"children":267},{"style":63},[268],{"type":18,"value":269},"}\n",{"type":13,"tag":14,"props":271,"children":272},{},[273],{"type":18,"value":274},"or the equivalent",{"type":13,"tag":29,"props":276,"children":277},{},[278,297],{"type":13,"tag":33,"props":279,"children":281},{"className":35,"code":280,"filename":37,"language":38,"meta":39,"style":39},"typedef VkPhysicalDeviceSubgroupSizeControlFeatures VkPhysicalDeviceSubgroupSizeControlFeaturesEXT;\n",[282],{"type":13,"tag":21,"props":283,"children":284},{"__ignoreMap":39},[285],{"type":13,"tag":45,"props":286,"children":287},{"class":47,"line":48},[288,292],{"type":13,"tag":45,"props":289,"children":290},{"style":52},[291],{"type":18,"value":55},{"type":13,"tag":45,"props":293,"children":294},{"style":63},[295],{"type":18,"value":296}," VkPhysicalDeviceSubgroupSizeControlFeatures VkPhysicalDeviceSubgroupSizeControlFeaturesEXT;\n",{"type":13,"tag":33,"props":298,"children":300},{"className":119,"code":299,"filename":121,"language":122,"meta":39,"style":39},"type PhysicalDeviceSubgroupSizeControlFeaturesEXT = vk::PhysicalDeviceSubgroupSizeControlFeatures;\n",[301],{"type":13,"tag":21,"props":302,"children":303},{"__ignoreMap":39},[304],{"type":13,"tag":45,"props":305,"children":306},{"class":47,"line":48},[307,312,317,322,326,330,335],{"type":13,"tag":45,"props":308,"children":309},{"style":52},[310],{"type":18,"value":311},"type",{"type":13,"tag":45,"props":313,"children":314},{"style":141},[315],{"type":18,"value":316}," PhysicalDeviceSubgroupSizeControlFeaturesEXT",{"type":13,"tag":45,"props":318,"children":319},{"style":52},[320],{"type":18,"value":321}," =",{"type":13,"tag":45,"props":323,"children":324},{"style":141},[325],{"type":18,"value":167},{"type":13,"tag":45,"props":327,"children":328},{"style":52},[329],{"type":18,"value":172},{"type":13,"tag":45,"props":331,"children":332},{"style":141},[333],{"type":18,"value":334},"PhysicalDeviceSubgroupSizeControlFeatures",{"type":13,"tag":45,"props":336,"children":337},{"style":63},[338],{"type":18,"value":339},";\n",{"type":13,"tag":14,"props":341,"children":342},{},[343],{"type":18,"value":344},"This structure describes the following features:",{"type":13,"tag":346,"props":347,"children":348},"ul",{},[349,370,389,421],{"type":13,"tag":350,"props":351,"children":352},"li",{},[353,359,361,368],{"type":13,"tag":21,"props":354,"children":356},{"className":355},[],[357],{"type":18,"value":358},"sType",{"type":18,"value":360}," is a ",{"type":13,"tag":362,"props":363,"children":365},"a",{"href":364},"/man/VkStructureType",[366],{"type":18,"value":367},"VkStructureType",{"type":18,"value":369}," value identifying this structure.",{"type":13,"tag":350,"props":371,"children":372},{},[373,379,381,387],{"type":13,"tag":21,"props":374,"children":376},{"className":375},[],[377],{"type":18,"value":378},"pNext",{"type":18,"value":380}," is ",{"type":13,"tag":21,"props":382,"children":384},{"className":383},[],[385],{"type":18,"value":386},"NULL",{"type":18,"value":388}," or a pointer to a structure extending this\nstructure.",{"type":13,"tag":350,"props":390,"children":391},{},[392,397,403,405,411,413,419],{"type":13,"tag":393,"props":394,"children":396},"anchor",{"id":395},"features-subgroupSizeControl",[],{"type":13,"tag":21,"props":398,"children":400},{"className":399},[],[401],{"type":18,"value":402},"subgroupSizeControl",{"type":18,"value":404}," indicates whether the implementation supports\ncontrolling shader subgroup sizes via the\n",{"type":13,"tag":21,"props":406,"children":408},{"className":407},[],[409],{"type":18,"value":410},"VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT",{"type":18,"value":412},"\nflag and the ",{"type":13,"tag":362,"props":414,"children":416},{"href":415},"/man/VkPipelineShaderStageRequiredSubgroupSizeCreateInfo",[417],{"type":18,"value":418},"VkPipelineShaderStageRequiredSubgroupSizeCreateInfo",{"type":18,"value":420},"\nstructure.",{"type":13,"tag":350,"props":422,"children":423},{},[424,428,434,436,442],{"type":13,"tag":393,"props":425,"children":427},{"id":426},"features-computeFullSubgroups",[],{"type":13,"tag":21,"props":429,"children":431},{"className":430},[],[432],{"type":18,"value":433},"computeFullSubgroups",{"type":18,"value":435}," indicates whether the implementation supports\nrequiring full subgroups in compute\n, mesh, or task\nshaders via the\n",{"type":13,"tag":21,"props":437,"children":439},{"className":438},[],[440],{"type":18,"value":441},"VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT",{"type":18,"value":443}," flag.",{"type":13,"tag":14,"props":445,"children":446},{},[447,449,454,456,461,463,469,471,477,479,484,486,491,493,498,500,506],{"type":18,"value":448},"If the ",{"type":13,"tag":21,"props":450,"children":452},{"className":451},[],[453],{"type":18,"value":4},{"type":18,"value":455}," structure is included in the ",{"type":13,"tag":21,"props":457,"children":459},{"className":458},[],[460],{"type":18,"value":378},{"type":18,"value":462}," chain of the\n",{"type":13,"tag":362,"props":464,"children":466},{"href":465},"/man/VkPhysicalDeviceFeatures2",[467],{"type":18,"value":468},"VkPhysicalDeviceFeatures2",{"type":18,"value":470}," structure passed to\n",{"type":13,"tag":362,"props":472,"children":474},{"href":473},"/man/vkGetPhysicalDeviceFeatures2",[475],{"type":18,"value":476},"vkGetPhysicalDeviceFeatures2",{"type":18,"value":478},", it is filled in to indicate whether each\ncorresponding feature is supported.\n",{"type":13,"tag":21,"props":480,"children":482},{"className":481},[],[483],{"type":18,"value":4},{"type":18,"value":485}," ",{"type":13,"tag":487,"props":488,"children":490},"normative",{"type":489},"can",[],{"type":18,"value":492}," also be used in the ",{"type":13,"tag":21,"props":494,"children":496},{"className":495},[],[497],{"type":18,"value":378},{"type":18,"value":499}," chain of\n",{"type":13,"tag":362,"props":501,"children":503},{"href":502},"/man/VkDeviceCreateInfo",[504],{"type":18,"value":505},"VkDeviceCreateInfo",{"type":18,"value":507}," to selectively enable these features.",{"type":13,"tag":509,"props":510,"children":511},"note",{},[512,581],{"type":13,"tag":14,"props":513,"children":514},{},[515,516,522,524,530,532,537,539,544,546,552,554,559,561,566,568,572,574,579],{"type":18,"value":19},{"type":13,"tag":21,"props":517,"children":519},{"className":518},[],[520],{"type":18,"value":521},"VkPhysicalDeviceSubgroupSizeControlFeaturesEXT",{"type":18,"value":523}," structure was added\nin version 2 of the ",{"type":13,"tag":362,"props":525,"children":527},{"href":526},"/extensions/VK_EXT_subgroup_size_control",[528],{"type":18,"value":529},"VK_EXT_subgroup_size_control",{"type":18,"value":531}," extension.\nVersion 1 implementations of this extension will not fill out the features\nstructure but applications may assume that both ",{"type":13,"tag":21,"props":533,"children":535},{"className":534},[],[536],{"type":18,"value":402},{"type":18,"value":538},"\nand ",{"type":13,"tag":21,"props":540,"children":542},{"className":541},[],[543],{"type":18,"value":433},{"type":18,"value":545}," are supported if the extension is supported.\n(See also the ",{"type":13,"tag":362,"props":547,"children":549},{"href":548},"/chapters/features#features-requirements",[550],{"type":18,"value":551},"Feature Requirements",{"type":18,"value":553}," section.)\nApplications are advised to add a\n",{"type":13,"tag":21,"props":555,"children":557},{"className":556},[],[558],{"type":18,"value":521},{"type":18,"value":560}," structure to the\n",{"type":13,"tag":21,"props":562,"children":564},{"className":563},[],[565],{"type":18,"value":378},{"type":18,"value":567}," chain of ",{"type":13,"tag":362,"props":569,"children":570},{"href":502},[571],{"type":18,"value":505},{"type":18,"value":573}," to enable the features\nregardless of the version of the extension supported by the implementation.\nIf the implementation only supports version 1, it will safely ignore the\n",{"type":13,"tag":21,"props":575,"children":577},{"className":576},[],[578],{"type":18,"value":521},{"type":18,"value":580}," structure.",{"type":13,"tag":14,"props":582,"children":583},{},[584],{"type":18,"value":585},"Vulkan 1.3 implementations always support the features structure.",{"type":13,"tag":587,"props":588,"children":590},"validity-group",{"name":589},"Valid Usage (Implicit)",[591],{"type":13,"tag":592,"props":593,"children":595},"validity-field",{"name":594},"VUID-VkPhysicalDeviceSubgroupSizeControlFeatures-sType-sType",[596],{"type":13,"tag":14,"props":597,"children":598},{},[599,604,605,609,611],{"type":13,"tag":21,"props":600,"children":602},{"className":601},[],[603],{"type":18,"value":358},{"type":18,"value":485},{"type":13,"tag":487,"props":606,"children":608},{"type":607},"must",[],{"type":18,"value":610}," be ",{"type":13,"tag":21,"props":612,"children":614},{"className":613},[],[615],{"type":18,"value":616},"VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES",{"type":13,"tag":618,"props":619,"children":620},"style",{},[621],{"type":18,"value":622},"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":39,"searchDepth":69,"depth":69,"links":624},[],"markdown",1725732575151]