[{"data":1,"prerenderedAt":765},["ShallowReactive",2],{"5RqYwupuVa":3},{"title":4,"description":5,"parent":6,"type":7,"xrefs":8,"body":9,"_type":764,"_id":4},"VkPhysicalDeviceSubgroupSizeControlProperties","Structure describing the control subgroup size properties of an implementation","VK_VERSION_1_3","structs",[],{"type":10,"children":11,"toc":762},"root",[12,28,356,361,426,647,682,726,756],{"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,148],{"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 VkPhysicalDeviceSubgroupSizeControlProperties {\n VkStructureType sType;\n void* pNext;\n uint32_t minSubgroupSize;\n uint32_t maxSubgroupSize;\n uint32_t maxComputeWorkgroupSubgroups;\n VkShaderStageFlags requiredSubgroupSizeStages;\n} VkPhysicalDeviceSubgroupSizeControlProperties;\n","C","c","",[41],{"type":13,"tag":21,"props":42,"children":43},{"__ignoreMap":39},[44,67,76,90,104,117,130,139],{"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}," VkPhysicalDeviceSubgroupSizeControlProperties {\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,99],{"type":13,"tag":45,"props":95,"children":96},{"style":52},[97],{"type":18,"value":98}," uint32_t",{"type":13,"tag":45,"props":100,"children":101},{"style":63},[102],{"type":18,"value":103}," minSubgroupSize;\n",{"type":13,"tag":45,"props":105,"children":107},{"class":47,"line":106},5,[108,112],{"type":13,"tag":45,"props":109,"children":110},{"style":52},[111],{"type":18,"value":98},{"type":13,"tag":45,"props":113,"children":114},{"style":63},[115],{"type":18,"value":116}," maxSubgroupSize;\n",{"type":13,"tag":45,"props":118,"children":120},{"class":47,"line":119},6,[121,125],{"type":13,"tag":45,"props":122,"children":123},{"style":52},[124],{"type":18,"value":98},{"type":13,"tag":45,"props":126,"children":127},{"style":63},[128],{"type":18,"value":129}," maxComputeWorkgroupSubgroups;\n",{"type":13,"tag":45,"props":131,"children":133},{"class":47,"line":132},7,[134],{"type":13,"tag":45,"props":135,"children":136},{"style":63},[137],{"type":18,"value":138}," VkShaderStageFlags requiredSubgroupSizeStages;\n",{"type":13,"tag":45,"props":140,"children":142},{"class":47,"line":141},8,[143],{"type":13,"tag":45,"props":144,"children":145},{"style":63},[146],{"type":18,"value":147},"} VkPhysicalDeviceSubgroupSizeControlProperties;\n",{"type":13,"tag":33,"props":149,"children":154},{"className":150,"code":151,"filename":152,"language":153,"meta":39,"style":39},"language-rs shiki shiki-themes github-light-default github-dark-default","pub struct PhysicalDeviceSubgroupSizeControlProperties {\n s_type: vk::StructureType,\n p_next: *mut c_void,\n min_subgroup_size: u32, // The minimum subgroup size supported by this device\n max_subgroup_size: u32, // The maximum subgroup size supported by this device\n max_compute_workgroup_subgroups: u32, // The maximum number of subgroups supported in a workgroup\n required_subgroup_size_stages: vk::ShaderStageFlags, // The shader stages that support specifying a subgroup size\n}\n","Rust","rs",[155],{"type":13,"tag":21,"props":156,"children":157},{"__ignoreMap":39},[158,181,214,236,264,289,314,348],{"type":13,"tag":45,"props":159,"children":160},{"class":47,"line":48},[161,166,170,176],{"type":13,"tag":45,"props":162,"children":163},{"style":52},[164],{"type":18,"value":165},"pub",{"type":13,"tag":45,"props":167,"children":168},{"style":52},[169],{"type":18,"value":60},{"type":13,"tag":45,"props":171,"children":173},{"style":172},"--shiki-default:#953800;--shiki-dark:#FFA657",[174],{"type":18,"value":175}," PhysicalDeviceSubgroupSizeControlProperties",{"type":13,"tag":45,"props":177,"children":178},{"style":63},[179],{"type":18,"value":180}," {\n",{"type":13,"tag":45,"props":182,"children":183},{"class":47,"line":69},[184,189,194,199,204,209],{"type":13,"tag":45,"props":185,"children":186},{"style":63},[187],{"type":18,"value":188}," s_type",{"type":13,"tag":45,"props":190,"children":191},{"style":52},[192],{"type":18,"value":193},":",{"type":13,"tag":45,"props":195,"children":196},{"style":172},[197],{"type":18,"value":198}," vk",{"type":13,"tag":45,"props":200,"children":201},{"style":52},[202],{"type":18,"value":203},"::",{"type":13,"tag":45,"props":205,"children":206},{"style":172},[207],{"type":18,"value":208},"StructureType",{"type":13,"tag":45,"props":210,"children":211},{"style":63},[212],{"type":18,"value":213},",\n",{"type":13,"tag":45,"props":215,"children":216},{"class":47,"line":78},[217,222,226,231],{"type":13,"tag":45,"props":218,"children":219},{"style":63},[220],{"type":18,"value":221}," p_next",{"type":13,"tag":45,"props":223,"children":224},{"style":52},[225],{"type":18,"value":193},{"type":13,"tag":45,"props":227,"children":228},{"style":52},[229],{"type":18,"value":230}," *mut",{"type":13,"tag":45,"props":232,"children":233},{"style":63},[234],{"type":18,"value":235}," c_void,\n",{"type":13,"tag":45,"props":237,"children":238},{"class":47,"line":92},[239,244,248,253,258],{"type":13,"tag":45,"props":240,"children":241},{"style":63},[242],{"type":18,"value":243}," min_subgroup_size",{"type":13,"tag":45,"props":245,"children":246},{"style":52},[247],{"type":18,"value":193},{"type":13,"tag":45,"props":249,"children":250},{"style":172},[251],{"type":18,"value":252}," u32",{"type":13,"tag":45,"props":254,"children":255},{"style":63},[256],{"type":18,"value":257},", ",{"type":13,"tag":45,"props":259,"children":261},{"style":260},"--shiki-default:#6E7781;--shiki-dark:#8B949E",[262],{"type":18,"value":263},"// The minimum subgroup size supported by this device\n",{"type":13,"tag":45,"props":265,"children":266},{"class":47,"line":106},[267,272,276,280,284],{"type":13,"tag":45,"props":268,"children":269},{"style":63},[270],{"type":18,"value":271}," max_subgroup_size",{"type":13,"tag":45,"props":273,"children":274},{"style":52},[275],{"type":18,"value":193},{"type":13,"tag":45,"props":277,"children":278},{"style":172},[279],{"type":18,"value":252},{"type":13,"tag":45,"props":281,"children":282},{"style":63},[283],{"type":18,"value":257},{"type":13,"tag":45,"props":285,"children":286},{"style":260},[287],{"type":18,"value":288},"// The maximum subgroup size supported by this device\n",{"type":13,"tag":45,"props":290,"children":291},{"class":47,"line":119},[292,297,301,305,309],{"type":13,"tag":45,"props":293,"children":294},{"style":63},[295],{"type":18,"value":296}," max_compute_workgroup_subgroups",{"type":13,"tag":45,"props":298,"children":299},{"style":52},[300],{"type":18,"value":193},{"type":13,"tag":45,"props":302,"children":303},{"style":172},[304],{"type":18,"value":252},{"type":13,"tag":45,"props":306,"children":307},{"style":63},[308],{"type":18,"value":257},{"type":13,"tag":45,"props":310,"children":311},{"style":260},[312],{"type":18,"value":313},"// The maximum number of subgroups supported in a workgroup\n",{"type":13,"tag":45,"props":315,"children":316},{"class":47,"line":132},[317,322,326,330,334,339,343],{"type":13,"tag":45,"props":318,"children":319},{"style":63},[320],{"type":18,"value":321}," required_subgroup_size_stages",{"type":13,"tag":45,"props":323,"children":324},{"style":52},[325],{"type":18,"value":193},{"type":13,"tag":45,"props":327,"children":328},{"style":172},[329],{"type":18,"value":198},{"type":13,"tag":45,"props":331,"children":332},{"style":52},[333],{"type":18,"value":203},{"type":13,"tag":45,"props":335,"children":336},{"style":172},[337],{"type":18,"value":338},"ShaderStageFlags",{"type":13,"tag":45,"props":340,"children":341},{"style":63},[342],{"type":18,"value":257},{"type":13,"tag":45,"props":344,"children":345},{"style":260},[346],{"type":18,"value":347},"// The shader stages that support specifying a subgroup size\n",{"type":13,"tag":45,"props":349,"children":350},{"class":47,"line":141},[351],{"type":13,"tag":45,"props":352,"children":353},{"style":63},[354],{"type":18,"value":355},"}\n",{"type":13,"tag":14,"props":357,"children":358},{},[359],{"type":18,"value":360},"or the equivalent",{"type":13,"tag":29,"props":362,"children":363},{},[364,383],{"type":13,"tag":33,"props":365,"children":367},{"className":35,"code":366,"filename":37,"language":38,"meta":39,"style":39},"typedef VkPhysicalDeviceSubgroupSizeControlProperties VkPhysicalDeviceSubgroupSizeControlPropertiesEXT;\n",[368],{"type":13,"tag":21,"props":369,"children":370},{"__ignoreMap":39},[371],{"type":13,"tag":45,"props":372,"children":373},{"class":47,"line":48},[374,378],{"type":13,"tag":45,"props":375,"children":376},{"style":52},[377],{"type":18,"value":55},{"type":13,"tag":45,"props":379,"children":380},{"style":63},[381],{"type":18,"value":382}," VkPhysicalDeviceSubgroupSizeControlProperties VkPhysicalDeviceSubgroupSizeControlPropertiesEXT;\n",{"type":13,"tag":33,"props":384,"children":386},{"className":150,"code":385,"filename":152,"language":153,"meta":39,"style":39},"type PhysicalDeviceSubgroupSizeControlPropertiesEXT = vk::PhysicalDeviceSubgroupSizeControlProperties;\n",[387],{"type":13,"tag":21,"props":388,"children":389},{"__ignoreMap":39},[390],{"type":13,"tag":45,"props":391,"children":392},{"class":47,"line":48},[393,398,403,408,412,416,421],{"type":13,"tag":45,"props":394,"children":395},{"style":52},[396],{"type":18,"value":397},"type",{"type":13,"tag":45,"props":399,"children":400},{"style":172},[401],{"type":18,"value":402}," PhysicalDeviceSubgroupSizeControlPropertiesEXT",{"type":13,"tag":45,"props":404,"children":405},{"style":52},[406],{"type":18,"value":407}," =",{"type":13,"tag":45,"props":409,"children":410},{"style":172},[411],{"type":18,"value":198},{"type":13,"tag":45,"props":413,"children":414},{"style":52},[415],{"type":18,"value":203},{"type":13,"tag":45,"props":417,"children":418},{"style":172},[419],{"type":18,"value":420},"PhysicalDeviceSubgroupSizeControlProperties",{"type":13,"tag":45,"props":422,"children":423},{"style":63},[424],{"type":18,"value":425},";\n",{"type":13,"tag":427,"props":428,"children":429},"ul",{},[430,451,470,550,617,632],{"type":13,"tag":431,"props":432,"children":433},"li",{},[434,440,442,449],{"type":13,"tag":21,"props":435,"children":437},{"className":436},[],[438],{"type":18,"value":439},"sType",{"type":18,"value":441}," is a ",{"type":13,"tag":443,"props":444,"children":446},"a",{"href":445},"/man/VkStructureType",[447],{"type":18,"value":448},"VkStructureType",{"type":18,"value":450}," value identifying this structure.",{"type":13,"tag":431,"props":452,"children":453},{},[454,460,462,468],{"type":13,"tag":21,"props":455,"children":457},{"className":456},[],[458],{"type":18,"value":459},"pNext",{"type":18,"value":461}," is ",{"type":13,"tag":21,"props":463,"children":465},{"className":464},[],[466],{"type":18,"value":467},"NULL",{"type":18,"value":469}," or a pointer to a structure extending this\nstructure.",{"type":13,"tag":431,"props":471,"children":472},{},[473,478,480,486,488,493,495,501,503,509,511,516,518,523,525,531,532,537,538,548],{"type":13,"tag":474,"props":475,"children":477},"anchor",{"id":476},"limits-minSubgroupSize",[],{"type":18,"value":479}," ",{"type":13,"tag":21,"props":481,"children":483},{"className":482},[],[484],{"type":18,"value":485},"minSubgroupSize",{"type":18,"value":487}," is the\nminimum subgroup size supported by this device.\n",{"type":13,"tag":21,"props":489,"children":491},{"className":490},[],[492],{"type":18,"value":485},{"type":18,"value":494}," is at least one if any of the physical device’s\nqueues support ",{"type":13,"tag":21,"props":496,"children":498},{"className":497},[],[499],{"type":18,"value":500},"VK_QUEUE_GRAPHICS_BIT",{"type":18,"value":502}," or\n",{"type":13,"tag":21,"props":504,"children":506},{"className":505},[],[507],{"type":18,"value":508},"VK_QUEUE_COMPUTE_BIT",{"type":18,"value":510},".\n",{"type":13,"tag":21,"props":512,"children":514},{"className":513},[],[515],{"type":18,"value":485},{"type":18,"value":517}," is a power-of-two.\n",{"type":13,"tag":21,"props":519,"children":521},{"className":520},[],[522],{"type":18,"value":485},{"type":18,"value":524}," is less than or equal to ",{"type":13,"tag":21,"props":526,"children":528},{"className":527},[],[529],{"type":18,"value":530},"maxSubgroupSize",{"type":18,"value":510},{"type":13,"tag":21,"props":533,"children":535},{"className":534},[],[536],{"type":18,"value":485},{"type":18,"value":524},{"type":13,"tag":443,"props":539,"children":541},{"href":540},"/man/VkPhysicalDeviceSubgroupProperties#limits-subgroupSize",[542],{"type":13,"tag":21,"props":543,"children":545},{"className":544},[],[546],{"type":18,"value":547},"subgroupSize",{"type":18,"value":549},".",{"type":13,"tag":431,"props":551,"children":552},{},[553,557,558,563,565,570,571,576,577,582,583,588,589,594,596,601,602,607,608,616],{"type":13,"tag":474,"props":554,"children":556},{"id":555},"limits-maxSubgroupSize",[],{"type":18,"value":479},{"type":13,"tag":21,"props":559,"children":561},{"className":560},[],[562],{"type":18,"value":530},{"type":18,"value":564}," is the\nmaximum subgroup size supported by this device.\n",{"type":13,"tag":21,"props":566,"children":568},{"className":567},[],[569],{"type":18,"value":530},{"type":18,"value":494},{"type":13,"tag":21,"props":572,"children":574},{"className":573},[],[575],{"type":18,"value":500},{"type":18,"value":502},{"type":13,"tag":21,"props":578,"children":580},{"className":579},[],[581],{"type":18,"value":508},{"type":18,"value":510},{"type":13,"tag":21,"props":584,"children":586},{"className":585},[],[587],{"type":18,"value":530},{"type":18,"value":517},{"type":13,"tag":21,"props":590,"children":592},{"className":591},[],[593],{"type":18,"value":530},{"type":18,"value":595}," is greater than or equal to ",{"type":13,"tag":21,"props":597,"children":599},{"className":598},[],[600],{"type":18,"value":485},{"type":18,"value":510},{"type":13,"tag":21,"props":603,"children":605},{"className":604},[],[606],{"type":18,"value":530},{"type":18,"value":595},{"type":13,"tag":443,"props":609,"children":610},{"href":540},[611],{"type":13,"tag":21,"props":612,"children":614},{"className":613},[],[615],{"type":18,"value":547},{"type":18,"value":549},{"type":13,"tag":431,"props":618,"children":619},{},[620,624,630],{"type":13,"tag":474,"props":621,"children":623},{"id":622},"limits-maxComputeWorkgroupSubgroups",[],{"type":13,"tag":21,"props":625,"children":627},{"className":626},[],[628],{"type":18,"value":629},"maxComputeWorkgroupSubgroups",{"type":18,"value":631}," is the maximum number of subgroups\nsupported by the implementation within a workgroup.",{"type":13,"tag":431,"props":633,"children":634},{},[635,639,645],{"type":13,"tag":474,"props":636,"children":638},{"id":637},"limits-requiredSubgroupSizeStages",[],{"type":13,"tag":21,"props":640,"children":642},{"className":641},[],[643],{"type":18,"value":644},"requiredSubgroupSizeStages",{"type":18,"value":646}," is a bitfield of what shader stages\nsupport having a required subgroup size specified.",{"type":13,"tag":14,"props":648,"children":649},{},[650,652,657,659,664,666,672,674,680],{"type":18,"value":651},"If the ",{"type":13,"tag":21,"props":653,"children":655},{"className":654},[],[656],{"type":18,"value":4},{"type":18,"value":658}," structure is included in the ",{"type":13,"tag":21,"props":660,"children":662},{"className":661},[],[663],{"type":18,"value":459},{"type":18,"value":665}," chain of the\n",{"type":13,"tag":443,"props":667,"children":669},{"href":668},"/man/VkPhysicalDeviceProperties2",[670],{"type":18,"value":671},"VkPhysicalDeviceProperties2",{"type":18,"value":673}," structure passed to\n",{"type":13,"tag":443,"props":675,"children":677},{"href":676},"/man/vkGetPhysicalDeviceProperties2",[678],{"type":18,"value":679},"vkGetPhysicalDeviceProperties2",{"type":18,"value":681},", it is filled in with each\ncorresponding implementation-dependent property.",{"type":13,"tag":14,"props":683,"children":684},{},[685,687,693,694,700,702,712,713,718,719,724],{"type":18,"value":686},"If ",{"type":13,"tag":443,"props":688,"children":690},{"href":689},"/man/VkPhysicalDeviceSubgroupProperties",[691],{"type":18,"value":692},"VkPhysicalDeviceSubgroupProperties",{"type":18,"value":203},{"type":13,"tag":21,"props":695,"children":697},{"className":696},[],[698],{"type":18,"value":699},"supportedOperations",{"type":18,"value":701},"\nincludes ",{"type":13,"tag":443,"props":703,"children":705},{"href":704},"/man/VkSubgroupFeatureFlagBits#features-subgroup-quad",[706],{"type":13,"tag":21,"props":707,"children":709},{"className":708},[],[710],{"type":18,"value":711},"VK_SUBGROUP_FEATURE_QUAD_BIT",{"type":18,"value":213},{"type":13,"tag":21,"props":714,"children":716},{"className":715},[],[717],{"type":18,"value":485},{"type":18,"value":479},{"type":13,"tag":720,"props":721,"children":723},"normative",{"type":722},"must",[],{"type":18,"value":725}," be greater than or equal to 4.",{"type":13,"tag":727,"props":728,"children":730},"validity-group",{"name":729},"Valid Usage (Implicit)",[731],{"type":13,"tag":732,"props":733,"children":735},"validity-field",{"name":734},"VUID-VkPhysicalDeviceSubgroupSizeControlProperties-sType-sType",[736],{"type":13,"tag":14,"props":737,"children":738},{},[739,744,745,748,750],{"type":13,"tag":21,"props":740,"children":742},{"className":741},[],[743],{"type":18,"value":439},{"type":18,"value":479},{"type":13,"tag":720,"props":746,"children":747},{"type":722},[],{"type":18,"value":749}," be ",{"type":13,"tag":21,"props":751,"children":753},{"className":752},[],[754],{"type":18,"value":755},"VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES",{"type":13,"tag":757,"props":758,"children":759},"style",{},[760],{"type":18,"value":761},"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":763},[],"markdown",1725732575182]