vk: Add driver vendor V3DV (Broadcom on Mesa)

VK_DRIVER_ID_MESA_V3DV
This commit is contained in:
Ani 2024-08-21 18:53:49 +01:00 committed by Elad
parent 18df24d390
commit 0649da4cfb
5 changed files with 14 additions and 1 deletions

View File

@ -77,6 +77,7 @@ namespace vk
optimal_group_size = 128; optimal_group_size = 128;
break; break;
case vk::driver_vendor::LAVAPIPE: case vk::driver_vendor::LAVAPIPE:
case vk::driver_vendor::V3DV:
// TODO: Actually bench this. Using 32 for now to match other common configurations. // TODO: Actually bench this. Using 32 for now to match other common configurations.
case vk::driver_vendor::DOZEN: case vk::driver_vendor::DOZEN:
// Actual optimal size depends on the D3D device. Use 32 since it should work well on both AMD and NVIDIA // Actual optimal size depends on the D3D device. Use 32 since it should work well on both AMD and NVIDIA

View File

@ -124,6 +124,9 @@ namespace vk
case driver_vendor::LAVAPIPE: case driver_vendor::LAVAPIPE:
// This software device works well, with poor performance as the only downside // This software device works well, with poor performance as the only downside
break; break;
case driver_vendor::V3DV:
// Broadcom GPUs need more testing, driver currently largely unstable
break;
case driver_vendor::DOZEN: case driver_vendor::DOZEN:
// This driver is often picked by mistake when the user meant to select something else. Complain loudly. // This driver is often picked by mistake when the user meant to select something else. Complain loudly.
#ifdef _WIN32 #ifdef _WIN32

View File

@ -188,6 +188,7 @@ namespace vk
case driver_vendor::MVK: case driver_vendor::MVK:
case driver_vendor::DOZEN: case driver_vendor::DOZEN:
case driver_vendor::LAVAPIPE: case driver_vendor::LAVAPIPE:
case driver_vendor::V3DV:
break; break;
} }

View File

@ -50,7 +50,8 @@ namespace vk
MVK, MVK,
DOZEN, DOZEN,
LAVAPIPE, LAVAPIPE,
NVK NVK,
V3DV
}; };
driver_vendor get_driver_vendor(); driver_vendor get_driver_vendor();

View File

@ -265,6 +265,11 @@ namespace vk
return driver_vendor::LAVAPIPE; return driver_vendor::LAVAPIPE;
} }
if (gpu_name.find("V3D") != umax)
{
return driver_vendor::V3DV;
}
return driver_vendor::unknown; return driver_vendor::unknown;
} }
else else
@ -288,6 +293,8 @@ namespace vk
return driver_vendor::LAVAPIPE; return driver_vendor::LAVAPIPE;
case VK_DRIVER_ID_MESA_NVK: case VK_DRIVER_ID_MESA_NVK:
return driver_vendor::NVK; return driver_vendor::NVK;
case VK_DRIVER_ID_MESA_V3DV:
return driver_vendor::V3DV;
default: default:
// Mobile? // Mobile?
return driver_vendor::unknown; return driver_vendor::unknown;