From 6be44f5e402580391aa8002fb0416df846b43d37 Mon Sep 17 00:00:00 2001 From: Hugo Locurcio Date: Fri, 30 Jun 2023 13:21:07 +0200 Subject: [PATCH] Set up additional charts in the web UI --- index.html | 163 +++++++++++++++++++++++++++++++++++++++++++++++++++-- main.py | 2 +- 2 files changed, 158 insertions(+), 7 deletions(-) diff --git a/index.html b/index.html index fea0718..167c7d3 100644 --- a/index.html +++ b/index.html @@ -27,6 +27,26 @@ intel: "Intel", nvidia: "NVIDIA", + // CPU x86 features. + avx512: "AVX-512", + avx2: "AVX2", + avx: "AVX", + "sse4.2": "SSE 4.2", + + // AMD GPU generations. + dedicated_rdna3: "Dedi. RDNA3", + dedicated_rdna2: "Dedi. RDNA2", + dedicated_rdna1: "Dedi. RDNA1", + "dedicated_gcn5.0": "Dedi. GCN 5.0", + "dedicated_gcn4.0": "Dedi. GCN 4.0", + "dedicated_gcn3.0": "Dedi. GCN 3.0", + "dedicated_gcn2.0": "Dedi. GCN 2.0", + "dedicated_gcn1.0": "Dedi. GCN 1.0", + "dedicated_vliw4": "Dedi. VLIW4", + integrated_rdna3: "IGP RDNA3", + integrated_rdna2: "IGP RDNA2", + "integrated_gcn5.0": "IGP GCN 5.0", + unknown: "Other/Unknown", }; @@ -42,13 +62,60 @@ intel: "#2074d9", nvidia: "#65a30d", + // Windows versions. 7: "#0C4A6E", 8: "#075985", 8.1: "#0369A1", 10: "#0284C7", 11: "#38BDF8", + // macOS versions. + 10.12: "#1C1917", + 10.13: "#292524", + 10.14: "#44403C", + 10.15: "#57534E", + // 11 is already taken for Windows 11. + 12: "#78716C", + 13: "#A8A29E", + 14: "#D6D3D1", + + // Linux distributions. + ubuntu: "#EA580C", + fedora: "#1E40AF", + debian: "#BE123C", + mint: "#65A30D", + arch: "#0891B2", + + // Android versions (some are already reserved above). + 5: "#365314", + 6: "#3F6212", + 9: "#84CC16", + + // iOS versions (some are already reserved above). + 15: "#C026D3", + 16: "#D946EF", + 17: "#E879F9", + + // Web browsers. + firefox: "#EA580C", + chrome: "#65A30D", + edge: "#0EA5E9", + safari: "#64748B", + opera: "#DC2626", + + // CPU x86 features. + avx512: "#F9A8D4", + avx2: "#EC4899", + avx: "#BE185D", + "sse4.2": "#831843", + + // GPU feature support. + yes: "#84CC16", + no: "#DC2626", + unknown: "#808080", + + // TODO: Add CPU/GPU generation and VRAM size colors. }; const ChartDatatype = { @@ -61,7 +128,9 @@ function getRemappedString(label) { // Capitalize string (like_this => Like This) if not found in the remaps table. - return capitalizeStringRemaps[label] ?? label.replaceAll("_", " ").replace(/\b\w/g, l => l.toUpperCase()).replace("Dedicated", "Dedi.").replace("Integrated", "IGP"); + // Replace "Dedicated" and "Integrated" with shorter forms if not using the remaps table (useful for NVIDIA GPUs). + // Replace " Gb" for VRAM sizes. + return capitalizeStringRemaps[label] ?? label.replaceAll("_", " ").replace(/\b\w/g, l => l.toUpperCase()).replace("Dedicated", "Dedi.").replace("Integrated", "IGP").replace(" Gb", " GB"); } function getChartColor(label) { @@ -90,16 +159,34 @@ createChart("#chart-operating-system", ChartDatatype.AGGREGATE, statistics.os); createChart("#chart-windows-version", ChartDatatype.INDIVIDUAL, statistics.os.windows); + createChart("#chart-macos-version", ChartDatatype.INDIVIDUAL, statistics.os.macos); + createChart("#chart-linux-distribution", ChartDatatype.INDIVIDUAL, statistics.os.linux); + createChart("#chart-android-version", ChartDatatype.INDIVIDUAL, statistics.os.android); + createChart("#chart-ios-version", ChartDatatype.INDIVIDUAL, statistics.os.ios); + createChart("#chart-web-browser", ChartDatatype.INDIVIDUAL, statistics.os.web); createChart("#chart-cpu-vendor", ChartDatatype.AGGREGATE, statistics.cpu); - createChart("#chart-cpu-core-count", ChartDatatype.INDIVIDUAL, statistics.cpu_core_count); createChart("#chart-cpu-amd", ChartDatatype.INDIVIDUAL, statistics.cpu.amd); createChart("#chart-cpu-intel", ChartDatatype.INDIVIDUAL, statistics.cpu.intel); + createChart("#chart-cpu-core-count", ChartDatatype.INDIVIDUAL, statistics.cpu_core_count); + createChart("#chart-cpu-x86-features", ChartDatatype.INDIVIDUAL, statistics.cpu_x86_features); + //createChart("#chart-cpu-passmark-multi", ChartDatatype.INDIVIDUAL, statistics.cpu_passmark_score.multi_thread); + //createChart("#chart-cpu-passmark-single", ChartDatatype.INDIVIDUAL, statistics.cpu_passmark_score.single_thread); + createChart("#chart-gpu-vendor", ChartDatatype.AGGREGATE, statistics.gpu); createChart("#chart-gpu-amd", ChartDatatype.INDIVIDUAL, statistics.gpu.amd); createChart("#chart-gpu-intel", ChartDatatype.INDIVIDUAL, statistics.gpu.intel); createChart("#chart-gpu-nvidia", ChartDatatype.INDIVIDUAL, statistics.gpu.nvidia); + + createChart("#chart-gpu-vram", ChartDatatype.INDIVIDUAL, statistics.gpu_vram); + createChart("#chart-gpu-raytracing-dedicated", ChartDatatype.INDIVIDUAL, statistics.gpu_raytracing.dedicated); + createChart("#chart-gpu-raytracing-integrated", ChartDatatype.INDIVIDUAL, statistics.gpu_raytracing.integrated); + createChart("#chart-gpu-vrs-dedicated", ChartDatatype.INDIVIDUAL, statistics.gpu_vrs.dedicated); + createChart("#chart-gpu-vrs-integrated", ChartDatatype.INDIVIDUAL, statistics.gpu_vrs.integrated); + createChart("#chart-gpu-mesh-shaders-dedicated", ChartDatatype.INDIVIDUAL, statistics.gpu_mesh_shaders.dedicated); + createChart("#chart-gpu-mesh-shaders-integrated", ChartDatatype.INDIVIDUAL, statistics.gpu_mesh_shaders.integrated); + //createChart("#chart-gpu-passmark", ChartDatatype.INDIVIDUAL, statistics.gpu_passmark_score); }); @@ -128,19 +215,51 @@

Windows version

+

macOS version

+
+ +

Linux distribution

+
+ +

Android version

+
+ +

iOS version

+
+ +

Web browser

+ The web browser used when reporting issues related to the web editor or web export. +
+

CPU vendor

-

CPU physical core count

- In CPUs with hybrid (big.LITTLE) topologies, both "big" cores and "little" cores are summed together. -
-

AMD CPU generation

Intel CPU generation

+ Laptop CPUs are currently categorized as "Other/Unknown".
+

CPU physical core count

+ For CPUs with hybrid (big.LITTLE) topologies, both "big" cores and "little" cores are summed together. +
+ +

Highest supported x86 CPU instruction set

+ + Support for a new instruction set implies support for older instruction sets. For instance, supporting AVX-512 implies supporting AVX2, AVX and SSE4.2.
+ Godot currently only requires SSE2 for official binaries, which is supported on all x86_64 CPUs. +
+
+ + +

GPU vendor

@@ -153,6 +272,38 @@

NVIDIA GPU generation

+

GPU video memory

+ Only dedicated GPUs are taken into account. +
+ +

GPU hardware-accelerated raytracing support

+ + Raytracing is currently not used in Godot.
+ This metric only checks whether it's supported in hardware, not whether the GPU is fast enough for hardware-accelerated raytracing to be viable for gaming. +
+

Dedicated GPUs

+
+

Integrated GPUs

+
+ +

GPU variable rate shading support

+ Variable rate shading can be optionally used in Godot 4. +

Dedicated GPUs

+
+

Integrated GPUs

+
+ +

GPU mesh shaders support

+ Mesh shaders are currently not used in Godot. +

Dedicated GPUs

+
+

Integrated GPUs

+
+ + +