From caef317adea331e96326aef2ac2582edf5d82470 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Mon, 13 May 2024 19:33:31 +0800 Subject: [PATCH] GPU: a tiny optimization --- src/detection/gpu/gpu.c | 48 +++++++++++++---------------------------- 1 file changed, 15 insertions(+), 33 deletions(-) diff --git a/src/detection/gpu/gpu.c b/src/detection/gpu/gpu.c index 3f65e1791..4f70d3452 100644 --- a/src/detection/gpu/gpu.c +++ b/src/detection/gpu/gpu.c @@ -14,42 +14,24 @@ const char* FF_GPU_VENDOR_NAME_MICROSOFT = "Microsoft"; const char* FF_GPU_VENDOR_NAME_REDHAT = "RedHat"; const char* FF_GPU_VENDOR_NAME_ORACLE = "Oracle"; -static inline bool arrayContains(const unsigned arr[], unsigned vendorId, unsigned length) -{ - for (unsigned i = 0; i < length; ++i) - { - if (arr[i] == vendorId) - return true; - } - return false; -} - const char* ffGetGPUVendorString(unsigned vendorId) { // https://devicehunt.com/all-pci-vendors - if(vendorId == 0x106b) - return FF_GPU_VENDOR_NAME_APPLE; - if(arrayContains((const unsigned[]) {0x1002, 0x1022}, vendorId, 2)) - return FF_GPU_VENDOR_NAME_AMD; - else if(arrayContains((const unsigned[]) {0x03e7, 0x8086, 0x8087}, vendorId, 3)) - return FF_GPU_VENDOR_NAME_INTEL; - else if(arrayContains((const unsigned[]) {0x0955, 0x10de, 0x12d2}, vendorId, 3)) - return FF_GPU_VENDOR_NAME_NVIDIA; - else if(arrayContains((const unsigned[]) {0x5143}, vendorId, 1)) - return FF_GPU_VENDOR_NAME_QUALCOMM; - else if(arrayContains((const unsigned[]) {0x14c3}, vendorId, 1)) - return FF_GPU_VENDOR_NAME_MTK; - else if(arrayContains((const unsigned[]) {0x15ad}, vendorId, 1)) - return FF_GPU_VENDOR_NAME_VMWARE; - else if(arrayContains((const unsigned[]) {0x1af4}, vendorId, 1)) - return FF_GPU_VENDOR_NAME_REDHAT; - else if(arrayContains((const unsigned[]) {0x1ab8}, vendorId, 1)) - return FF_GPU_VENDOR_NAME_PARALLEL; - else if(arrayContains((const unsigned[]) {0x1414}, vendorId, 1)) - return FF_GPU_VENDOR_NAME_MICROSOFT; - else if(arrayContains((const unsigned[]) {0x108e}, vendorId, 1)) - return FF_GPU_VENDOR_NAME_ORACLE; - return NULL; + switch (vendorId) + { + case 0x106b: return FF_GPU_VENDOR_NAME_APPLE; + case 0x1002: case 0x1022: return FF_GPU_VENDOR_NAME_AMD; + case 0x8086: case 0x8087: case 0x03e7: return FF_GPU_VENDOR_NAME_INTEL; + case 0x0955: case 0x10de: case 0x12d2: return FF_GPU_VENDOR_NAME_NVIDIA; + case 0x5143: return FF_GPU_VENDOR_NAME_QUALCOMM; + case 0x14c3: return FF_GPU_VENDOR_NAME_MTK; + case 0x15ad: return FF_GPU_VENDOR_NAME_VMWARE; + case 0x1af4: return FF_GPU_VENDOR_NAME_REDHAT; + case 0x1ab8: return FF_GPU_VENDOR_NAME_PARALLEL; + case 0x1414: return FF_GPU_VENDOR_NAME_MICROSOFT; + case 0x108e: return FF_GPU_VENDOR_NAME_ORACLE; + default: return NULL; + } } const char* detectByOpenGL(FFlist* gpus)