Ok just added support for seeing 1.1 drivers subrgoup support..
screenshots on my twitter.. I'm lazy to repost here..
all needed is updating Vulkan headers in external..
also changing all KHX_multiview to KHR_multiview to build with Vulkan 1.1 headers and then
putting below vulkandeviceinfo.hpp:
// VK_KHR_sampler_ycbcr_conversion
if (extensionSupported(VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME)) {
..
}
#define VK_KHR_SUBGROUPS_EXTENSION_NAME "VK_KHR_subgroups"
int majorver=(props.apiVersion >> 22);
int minorver=((props.apiVersion >> 12) & 0x3ff);
if((majorver>1)||((majorver==1)&&(minorver>=1))){
VkPhysicalDeviceProperties2KHR deviceProps2{};
VkPhysicalDeviceSubgroupProperties extProps{};
extProps.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES;
deviceProps2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR;
deviceProps2.pNext = &extProps;
pfnGetPhysicalDeviceProperties2KHR(device, &deviceProps2);
properties2.push_back(Property2("subgroupSize", QVariant(extProps.subgroupSize), VK_KHR_SUBGROUPS_EXTENSION_NAME));
properties2.push_back(Property2("supportedStages", QVariant(extProps.supportedStages), VK_KHR_SUBGROUPS_EXTENSION_NAME));
properties2.push_back(Property2("supportedStages.VK_SHADER_STAGE_VERTEX_BIT", QVariant((extProps.supportedStages&VK_SHADER_STAGE_VERTEX_BIT)>0), VK_KHR_SUBGROUPS_EXTENSION_NAME));
properties2.push_back(Property2("supportedStages.VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT", QVariant((extProps.supportedStages&VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT)>0), VK_KHR_SUBGROUPS_EXTENSION_NAME));
properties2.push_back(Property2("supportedStages.VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT", QVariant((extProps.supportedStages&VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT)>0), VK_KHR_SUBGROUPS_EXTENSION_NAME));
properties2.push_back(Property2("supportedStages.VK_SHADER_STAGE_GEOMETRY_BIT", QVariant((extProps.supportedStages&VK_SHADER_STAGE_GEOMETRY_BIT)>0), VK_KHR_SUBGROUPS_EXTENSION_NAME));
properties2.push_back(Property2("supportedStages.VK_SHADER_STAGE_FRAGMENT_BIT", QVariant((extProps.supportedStages&VK_SHADER_STAGE_FRAGMENT_BIT)>0), VK_KHR_SUBGROUPS_EXTENSION_NAME));
properties2.push_back(Property2("supportedStages.VK_SHADER_STAGE_COMPUTE_BIT", QVariant((extProps.supportedStages&VK_SHADER_STAGE_COMPUTE_BIT)>0), VK_KHR_SUBGROUPS_EXTENSION_NAME));
properties2.push_back(Property2("supportedStages.VK_SHADER_STAGE_ALL_GRAPHICS", QVariant((extProps.supportedStages&VK_SHADER_STAGE_ALL_GRAPHICS)==VK_SHADER_STAGE_ALL_GRAPHICS), VK_KHR_SUBGROUPS_EXTENSION_NAME));
properties2.push_back(Property2("supportedStages.VK_SHADER_STAGE_ALL", QVariant((extProps.supportedStages&VK_SHADER_STAGE_ALL)==VK_SHADER_STAGE_ALL), VK_KHR_SUBGROUPS_EXTENSION_NAME));
properties2.push_back(Property2("supportedOperations", QVariant(extProps.supportedOperations), VK_KHR_SUBGROUPS_EXTENSION_NAME));
properties2.push_back(Property2("supportedOperations.VK_SUBGROUP_FEATURE_BASIC_BIT", QVariant((extProps.supportedOperations&VK_SUBGROUP_FEATURE_BASIC_BIT)>0), VK_KHR_SUBGROUPS_EXTENSION_NAME));
properties2.push_back(Property2("supportedOperations.VK_SUBGROUP_FEATURE_VOTE_BIT", QVariant((extProps.supportedOperations&VK_SUBGROUP_FEATURE_VOTE_BIT)>0), VK_KHR_SUBGROUPS_EXTENSION_NAME));
properties2.push_back(Property2("supportedOperations.VK_SUBGROUP_FEATURE_ARITHMETIC_BIT", QVariant((extProps.supportedOperations&VK_SUBGROUP_FEATURE_ARITHMETIC_BIT)>0), VK_KHR_SUBGROUPS_EXTENSION_NAME));
properties2.push_back(Property2("supportedOperations.VK_SUBGROUP_FEATURE_BALLOT_BIT", QVariant((extProps.supportedOperations&VK_SUBGROUP_FEATURE_BALLOT_BIT)>0), VK_KHR_SUBGROUPS_EXTENSION_NAME));
properties2.push_back(Property2("supportedOperations.VK_SUBGROUP_FEATURE_SHUFFLE_BIT", QVariant((extProps.supportedOperations&VK_SUBGROUP_FEATURE_SHUFFLE_BIT)>0), VK_KHR_SUBGROUPS_EXTENSION_NAME));
properties2.push_back(Property2("supportedOperations.VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT", QVariant((extProps.supportedOperations&VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT)>0), VK_KHR_SUBGROUPS_EXTENSION_NAME));
properties2.push_back(Property2("supportedOperations.VK_SUBGROUP_FEATURE_CLUSTERED_BIT", QVariant((extProps.supportedOperations&VK_SUBGROUP_FEATURE_CLUSTERED_BIT)>0), VK_KHR_SUBGROUPS_EXTENSION_NAME));
properties2.push_back(Property2("supportedOperations.VK_SUBGROUP_FEATURE_QUAD_BIT", QVariant((extProps.supportedOperations&VK_SUBGROUP_FEATURE_QUAD_BIT)>0), VK_KHR_SUBGROUPS_EXTENSION_NAME));
properties2.push_back(Property2("quadOperationsInAllStages", QVariant(extProps.quadOperationsInAllStages), VK_KHR_SUBGROUPS_EXTENSION_NAME));
}