checkVulkanVersion static method
bool
checkVulkanVersion()
Implementation
static bool checkVulkanVersion() {
try {
final DynamicLibrary vulkanLib = Platform.isWindows
? DynamicLibrary.open('vulkan-1.dll')
: DynamicLibrary.open('libvulkan.so');
final VkEnumerateInstanceVersionDart vkEnumerateInstanceVersion =
vulkanLib.lookupFunction<VkEnumerateInstanceVersionNative,
VkEnumerateInstanceVersionDart>('vkEnumerateInstanceVersion');
final Pointer<Uint32> apiVersion = calloc<Uint32>();
final int result = vkEnumerateInstanceVersion(apiVersion);
bool available = false;
if (result == 0) {
final int version = apiVersion.value;
final int variant = (version >> 29);
final int major = (version >> 22) & 0x7F;
final int minor = (version >> 12) & 0x3FF;
available = variant == 0 && (major > 1 || (major == 1 && minor >= 1));
//print("Vulkan version ${major}.${minor}");
}
calloc.free(apiVersion);
return available;
} on Exception {
} on ArgumentError {}
return false;
}