42 static void SetGPUInfo(
const std::string& name, uint32_t vendorID, uint32_t driverVersion);
55 static void SetVulkanVersions(
const std::string& deviceVer,
const std::string& requestedVer);
77 static std::string CPUName;
78 static std::string SystemMemory;
80 static std::string GPUName;
81 static std::string DriverVersion;
82 static std::string VulkanDeviceVersion;
83 static std::string VulkanRequestedVersion;
86 static void CpuId(
int info[4],
int function_id) {
88 __cpuidex(info, function_id, 0);
90 unsigned int eax, ebx, ecx, edx;
91 __cpuid_count(function_id, 0, eax, ebx, ecx, edx);
92 info[0] =
static_cast<int>(eax);
93 info[1] =
static_cast<int>(ebx);
94 info[2] =
static_cast<int>(ecx);
95 info[3] =
static_cast<int>(edx);
99 static void DetectCPUName();
100 static void DetectSystemMemory();
102 static bool CheckHardwareSupport();
Utility class for retrieving and storing hardware and driver information.
static std::string GetVulkanDeviceVersion()
Retrieves the Vulkan version supported by the device.
static std::string GetCPUName()
Retrieves the name of the CPU.
static void SetVulkanVersions(const std::string &deviceVer, const std::string &requestedVer)
Sets the Vulkan API versions.
static bool HasAVX2()
Checks if the CPU supports the AVX2 instruction set.
static std::string GetVulkanRequestedVersion()
Retrieves the Vulkan version requested by the engine.
static void SetVulkanFeatures(const VulkanFeatures &features)
Sets the active Vulkan features.
static void SetGPUInfo(const std::string &name, uint32_t vendorID, uint32_t driverVersion)
Sets the stored GPU information.
static void PrintCrashDump(int fd)
Prints hardware information to a crash dump file descriptor.
static VulkanFeatures GetVulkanFeatures()
Retrieves the active Vulkan features.
static std::string GetGPUName()
Retrieves the name of the GPU.
static std::string GetDriverVersion()
Retrieves the GPU driver version.
static std::string GetSystemMemory()
Retrieves the total amount of system memory.
Holds the status of various Vulkan features.
bool indirectDraw
Indicates if indirect draw calls are supported.
bool shaderDrawParameters
Indicates if VK_KHR_shader_draw_parameters is supported.
bool multiDraw
Indicates if VK_EXT_multi_draw is supported.
bool bindlessTextures
Indicates if bindless textures (descriptor indexing) are supported.