Files
fastfetch/src/detection/gpu/gpu.h
T

54 lines
1.5 KiB
C
Raw Normal View History

2022-09-05 17:42:42 +02:00
#pragma once
#include "fastfetch.h"
#define FF_GPU_TEMP_UNSET (0/0.0)
2022-09-16 18:11:39 +08:00
#define FF_GPU_CORE_COUNT_UNSET -1
#define FF_GPU_VMEM_SIZE_UNSET ((uint64_t)-1)
2024-07-17 14:52:35 +08:00
#define FF_GPU_FREQUENCY_UNSET 0
2024-08-01 13:54:03 +08:00
#define FF_GPU_CORE_USAGE_UNSET (0/0.0)
#define FF_GPU_INDEX_UNSET ((uint32_t)-1)
2022-09-05 17:42:42 +02:00
2023-02-06 11:07:49 +08:00
extern const char* FF_GPU_VENDOR_NAME_APPLE;
extern const char* FF_GPU_VENDOR_NAME_AMD;
extern const char* FF_GPU_VENDOR_NAME_INTEL;
extern const char* FF_GPU_VENDOR_NAME_NVIDIA;
extern const char* FF_GPU_VENDOR_NAME_MTHREADS;
2023-10-21 17:36:13 +08:00
extern const char* FF_GPU_VENDOR_NAME_VMWARE;
extern const char* FF_GPU_VENDOR_NAME_PARALLEL;
extern const char* FF_GPU_VENDOR_NAME_MICROSOFT;
2023-10-31 15:11:22 +08:00
extern const char* FF_GPU_VENDOR_NAME_REDHAT;
extern const char* FF_GPU_VENDOR_NAME_ORACLE;
2022-11-22 19:25:49 +08:00
2023-02-11 12:34:57 +08:00
typedef struct FFGPUMemory
{
uint64_t total;
uint64_t used;
} FFGPUMemory;
2022-09-05 17:42:42 +02:00
typedef struct FFGPUResult
{
2024-09-19 15:38:43 +08:00
uint32_t index;
2023-03-26 20:42:18 +08:00
FFGPUType type;
2022-09-05 17:42:42 +02:00
FFstrbuf vendor;
FFstrbuf name;
FFstrbuf driver;
FFstrbuf platformApi;
2022-09-05 17:42:42 +02:00
double temperature;
2024-08-10 21:08:35 +08:00
double coreUsage;
int32_t coreCount;
2024-07-17 14:52:35 +08:00
uint32_t frequency; // Maximum time clock frequency in MHz
2023-02-11 12:34:57 +08:00
FFGPUMemory dedicated;
FFGPUMemory shared;
uint64_t deviceId;
2022-09-05 17:42:42 +02:00
} FFGPUResult;
const char* ffDetectGPU(const FFGPUOptions* options, FFlist* result);
const char* ffDetectGPUImpl(const FFGPUOptions* options, FFlist* gpus);
2022-09-05 17:42:42 +02:00
2023-02-06 11:07:49 +08:00
const char* ffGetGPUVendorString(unsigned vendorId);
2024-01-31 13:29:11 +08:00
2024-06-17 12:37:11 +08:00
#if defined(__linux__) || defined(__FreeBSD__) || defined(__sun)
2024-09-25 16:41:55 +08:00
void ffGPUFillVendorAndName(uint8_t subclass, uint16_t vendor, uint16_t device, FFGPUResult* gpu);
2024-01-31 13:29:11 +08:00
#endif