@@ -2008,12 +2008,14 @@ static vk_device ggml_vk_get_device(size_t idx) {
2008
2008
vk::PhysicalDeviceMaintenance3Properties props3;
2009
2009
vk::PhysicalDeviceMaintenance4Properties props4;
2010
2010
vk::PhysicalDeviceSubgroupProperties subgroup_props;
2011
+ vk::PhysicalDeviceDriverProperties driver_props;
2011
2012
vk::PhysicalDeviceShaderSMBuiltinsPropertiesNV sm_props;
2012
2013
vk::PhysicalDeviceShaderCoreProperties2AMD amd_shader_core_properties2_props;
2013
2014
props2.pNext = &props3;
2014
2015
props3.pNext = &subgroup_props;
2016
+ subgroup_props.pNext = &driver_props;
2015
2017
2016
- VkBaseOutStructure * last_struct = (VkBaseOutStructure *)&subgroup_props ;
2018
+ VkBaseOutStructure * last_struct = (VkBaseOutStructure *)&driver_props ;
2017
2019
2018
2020
if (maintenance4_support) {
2019
2021
last_struct->pNext = (VkBaseOutStructure *)&props4;
@@ -2065,8 +2067,9 @@ static vk_device ggml_vk_get_device(size_t idx) {
2065
2067
2066
2068
device->fp16 = !force_disable_f16 && fp16_storage && fp16_compute;
2067
2069
2068
- if (device->vendor_id == VK_VENDOR_ID_INTEL) {
2070
+ if (device->vendor_id == VK_VENDOR_ID_INTEL || (props2. properties . vendorID == VK_VENDOR_ID_AMD && driver_props. driverID == vk::DriverId::eAmdProprietary) ) {
2069
2071
// Intel drivers don't support coopmat properly yet
2072
+ // Only RADV supports coopmat properly on AMD
2070
2073
device->coopmat_support = false ;
2071
2074
}
2072
2075
@@ -2422,8 +2425,9 @@ static void ggml_vk_print_gpu_info(size_t idx) {
2422
2425
}
2423
2426
}
2424
2427
2425
- if (props2.properties .vendorID == VK_VENDOR_ID_INTEL) {
2428
+ if (props2.properties .vendorID == VK_VENDOR_ID_INTEL || (props2. properties . vendorID == VK_VENDOR_ID_AMD && driver_props. driverID == vk::DriverId::eAmdProprietary) ) {
2426
2429
// Intel drivers don't support coopmat properly yet
2430
+ // Only RADV supports coopmat properly on AMD
2427
2431
coopmat_support = false ;
2428
2432
}
2429
2433
0 commit comments