Get information about the Vulkan driver. More...
#include <driver_info_vk.h>
Public Member Functions | |
| DriverInfoVK (const vk::PhysicalDevice &device) | |
| ~DriverInfoVK () | |
| DriverInfoVK (const DriverInfoVK &)=delete | |
| DriverInfoVK & | operator= (const DriverInfoVK &)=delete |
| const Version & | GetAPIVersion () const |
| Gets the Vulkan API version. Should be at or above Vulkan 1.1 which is the Impeller baseline. More... | |
| const VendorVK & | GetVendor () const |
| Get the vendor of the Vulkan implementation. This is a broad check and includes multiple drivers and platforms. More... | |
| const DeviceTypeVK & | GetDeviceType () const |
| Get the device type. Typical use might be to check if the device is a CPU implementation. More... | |
| const std::string & | GetDriverName () const |
| Get the self-reported name of the graphics driver. More... | |
| void | DumpToLog () const |
| Dumps the current driver info to the log. More... | |
| bool | IsEmulator () const |
| Determines if the driver represents an emulator. There is no definitive way to tell if a driver is an emulator and drivers don't self identify as emulators. So take this information with a pinch of salt. More... | |
| bool | IsKnownBadDriver () const |
| Determines if the driver has been tested and determined to be non-functional. More... | |
Get information about the Vulkan driver.
Before gating features behind any of the information reported by the driver, consider alternatives (extensions checks perhaps) and try to get a reviewer buddy to convince you to avoid using this.
Definition at line 174 of file driver_info_vk.h.
|
explicit |
Definition at line 241 of file driver_info_vk.cc.
References impeller::GetAdrenoVersion(), impeller::GetMaliVersion(), impeller::IdentifyVendor(), impeller::kARM, impeller::kQualcomm, impeller::kUnknown, and impeller::ToDeviceType().
|
default |
|
delete |
| void impeller::DriverInfoVK::DumpToLog | ( | ) | const |
Dumps the current driver info to the log.
Definition at line 286 of file driver_info_vk.cc.
References impeller::DeviceTypeToString(), IsEmulator(), padding, impeller::Version::ToString(), and impeller::VendorToString().
| const Version & impeller::DriverInfoVK::GetAPIVersion | ( | ) | const |
Gets the Vulkan API version. Should be at or above Vulkan 1.1 which is the Impeller baseline.
Definition at line 270 of file driver_info_vk.cc.
| const DeviceTypeVK & impeller::DriverInfoVK::GetDeviceType | ( | ) | const |
Get the device type. Typical use might be to check if the device is a CPU implementation.
Definition at line 278 of file driver_info_vk.cc.
| const std::string & impeller::DriverInfoVK::GetDriverName | ( | ) | const |
Get the self-reported name of the graphics driver.
Definition at line 282 of file driver_info_vk.cc.
| const VendorVK & impeller::DriverInfoVK::GetVendor | ( | ) | const |
Get the vendor of the Vulkan implementation. This is a broad check and includes multiple drivers and platforms.
Definition at line 274 of file driver_info_vk.cc.
| bool impeller::DriverInfoVK::IsEmulator | ( | ) | const |
Determines if the driver represents an emulator. There is no definitive way to tell if a driver is an emulator and drivers don't self identify as emulators. So take this information with a pinch of salt.
Definition at line 320 of file driver_info_vk.cc.
References impeller::kCPU, and impeller::kGoogle.
Referenced by DumpToLog().
| bool impeller::DriverInfoVK::IsKnownBadDriver | ( | ) | const |
Determines if the driver has been tested and determined to be non-functional.
If true, context setup should fail such that the device falls back to OpenGLES.
Definition at line 331 of file driver_info_vk.cc.
References impeller::kAdreno504, impeller::kAdreno505, impeller::kAdreno506, impeller::kAdreno508, impeller::kAdreno509, impeller::kAdreno510, impeller::kAdreno512, impeller::kAdreno530, impeller::kAdreno540, impeller::kAdreno605, impeller::kAdreno608, impeller::kAdreno610, impeller::kAdreno612, impeller::kAdreno613, impeller::kAdreno615, impeller::kAdreno616, impeller::kAdreno618, impeller::kAdreno619, impeller::kAdreno619L, impeller::kAdreno620, impeller::kAdreno630, impeller::kAdreno640, and impeller::kHuawei.
|
delete |