diff --git a/main.py b/main.py
index c30db0b..ca6ecdf 100755
--- a/main.py
+++ b/main.py
@@ -56,8 +56,9 @@ def main() -> None:
"linux": {
"ubuntu": set(),
"fedora": set(),
- "arch": set(),
+ "debian": set(),
"mint": set(),
+ "arch": set(),
"unknown": set(),
},
"macos": {
@@ -134,50 +135,163 @@ def main() -> None:
"unknown": set(),
},
},
+ "cpu_core_count": {
+ # Number of physical CPU cores.
+ # On CPUs with hybrid topologies (such as 12th generation Intel and newer),
+ # this is the sum of P-cores and E-cores.
+ "1": set(),
+ "2": set(),
+ "3": set(),
+ "4": set(),
+ "6": set(),
+ "8": set(),
+ "10": set(),
+ "12": set(),
+ "16": set(),
+ "24": set(),
+ "32": set(),
+ "48": set(),
+ "64": set(),
+ "96": set(),
+ },
+ "cpu_x86_features": {
+ # Support for modern x86 CPU features, which binaries can be optimized for.
+ # Currently, Godot only requires SSE2 (which is the baseline for all x86_64 CPUs).
+ # The highest supported CPU feature set is stored for each user
+ # (e.g. support for AVX512 implies support for AVX2, AVX and SSE 4.2).
+ "avx512": set(),
+ "avx2": set(),
+ "avx": set(),
+ "sse4.2": set(),
+ },
+ "cpu_passmark_score": {
+ # Scores from .
+ "single_thread": {
+ "<1000": set(),
+ "1000-1500": set(),
+ "1500-2000": set(),
+ "2000-2500": set(),
+ "2500-3000": set(),
+ "3000-3500": set(),
+ "3500-4000": set(),
+ "4000-4500": set(),
+ ">4500": set(),
+ },
+ "multi_thread": {
+ "<5000": set(),
+ "5000-10000": set(),
+ "10000-20000": set(),
+ "20000-30000": set(),
+ "30000-40000": set(),
+ "40000-50000": set(),
+ "50000-60000": set(),
+ ">60000": set(),
+ },
+ },
"gpu": {
"amd": {
- "rdna3": set(),
- "rdna2": set(),
- "rdna": set(),
- "vega": set(),
- "polaris": set(),
- "gcn3.0": set(),
- "gcn2.0": set(),
- "gcn1.0": set(),
- "vliw4": set(),
- "igp_rdna3": set(),
- "igp_rdna2": set(),
- "igp_vega": set(),
+ "dedicated_rdna3": set(),
+ "dedicated_rdna2": set(),
+ "dedicated_rdna": set(),
+ "dedicated_vega": set(),
+ "dedicated_polaris": set(),
+ "dedicated_gcn3.0": set(),
+ "dedicated_gcn2.0": set(),
+ "dedicated_gcn1.0": set(),
+ "dedicated_vliw4": set(),
+ "integrated_rdna3": set(),
+ "integrated_rdna2": set(),
+ "integrated_vega": set(),
"unknown": set(),
},
"intel": {
- "arc_alchemist": set(),
- "igp_meteor_lake": set(),
- "igp_raptor_lake": set(),
- "igp_alder_lake": set(),
- "igp_rocket_lake": set(),
- "igp_ice_lake": set(),
- "igp_coffee_lake_refresh": set(),
- "igp_coffee_lake": set(),
- "igp_kaby_lake": set(),
- "igp_skylake": set(),
- "igp_haswell": set(),
- "igp_ivy_bridge": set(),
- "igp_sandy_bridge": set(),
+ "dedicated_arc_alchemist": set(),
+ "integrated_meteor_lake": set(),
+ "integrated_raptor_lake": set(),
+ "integrated_alder_lake": set(),
+ "integrated_rocket_lake": set(),
+ "integrated_ice_lake": set(),
+ "integrated_coffee_lake_refresh": set(),
+ "integrated_coffee_lake": set(),
+ "integrated_kaby_lake": set(),
+ "integrated_skylake": set(),
+ "integrated_haswell": set(),
+ "integrated_ivy_bridge": set(),
+ "integrated_sandy_bridge": set(),
"unknown": set(),
},
"nvidia": {
- "ada_lovelace": set(),
- "ampere": set(),
- "turing": set(),
- "pascal": set(),
- "maxwell": set(),
- "kepler": set(),
- "fermi": set(),
- "tesla": set(),
+ "dedicated_ada_lovelace": set(),
+ "dedicated_ampere": set(),
+ "dedicated_turing": set(),
+ "dedicated_pascal": set(),
+ "dedicated_maxwell": set(),
+ "dedicated_kepler": set(),
+ "dedicated_fermi": set(),
+ "dedicated_tesla": set(),
"unknown": set(),
},
},
+ "gpu_vram": {
+ # Only dedicated GPUs increment this statistic.
+ "less_than_2_gb": set(),
+ "2_gb": set(),
+ "3_gb": set(),
+ "4_gb": set(),
+ "6_gb": set(),
+ "8_gb": set(),
+ "10_gb": set(),
+ "11_gb": set(),
+ "12_gb": set(),
+ "16_gb": set(),
+ "20_gb": set(),
+ "24_gb": set(),
+ "more_than_24_gb": set(),
+ },
+ "gpu_passmark_score": {
+ # Scores from .
+ "<2500": set(),
+ "2500-5000": set(),
+ "5000-10000": set(),
+ "10000-15000": set(),
+ "15000-20000": set(),
+ "20000-25000": set(),
+ "25000-30000": set(),
+ ">30000": set(),
+ },
+ "gpu_raytracing": {
+ # GPUs with hardware-accelerated raytracing (not used in Godot yet).
+ "dedicated": {
+ "yes": set(),
+ "no": set(),
+ },
+ "integrated": {
+ "yes": set(),
+ "no": set(),
+ },
+ },
+ "gpu_vrs": {
+ # GPUs with support for variable-rate shading (which Godot 4 supports).
+ "dedicated": {
+ "yes": set(),
+ "no": set(),
+ },
+ "integrated": {
+ "yes": set(),
+ "no": set(),
+ },
+ },
+ "gpu_mesh_shaders": {
+ # GPUs with support for mesh shaders (not used in Godot yet).
+ "dedicated": {
+ "yes": set(),
+ "no": set(),
+ },
+ "integrated": {
+ "yes": set(),
+ "no": set(),
+ },
+ },
}
for node in result["repository"]["issues"]["edges"]:
@@ -194,25 +308,582 @@ def main() -> None:
{"user": user, "system_information": system_information}
)
+ # Make the search punctuation-insensitive and case-insensitive.
+ system_information_trimmed = (
+ system_information.lower()
+ .replace(" ", "")
+ .replace("-", "")
+ .replace("_", "")
+ .replace(":", "")
+ .replace(",", "")
+ .replace("(r)", "")
+ .replace("(tm)", "")
+ )
+ print(system_information_trimmed)
+
# Gather statistics for each issue reported.
- if system_information.lower().find("windows 11") != -1:
+ if "windows11" in system_information_trimmed:
statistics["os"]["windows"]["11"].add(user)
- elif system_information.lower().find("windows 10") != -1:
+ elif "windows10" in system_information_trimmed:
statistics["os"]["windows"]["10"].add(user)
- elif system_information.lower().find("windows 8.1") != -1:
+ elif "windows8.1" in system_information_trimmed:
statistics["os"]["windows"]["8.1"].add(user)
- elif system_information.lower().find("windows 8") != -1:
+ elif "windows8" in system_information_trimmed:
statistics["os"]["windows"]["8"].add(user)
- elif system_information.lower().find("windows 7") != -1:
+ elif "windows7" in system_information_trimmed:
statistics["os"]["windows"]["7"].add(user)
- elif system_information.lower().find("windows") != -1:
+ elif "windows" in system_information_trimmed:
statistics["os"]["windows"]["unknown"].add(user)
- if system_information.lower().find("ubuntu") != -1:
+ if "ubuntu" in system_information_trimmed:
statistics["os"]["linux"]["ubuntu"].add(user)
- elif system_information.lower().find("linux") != -1:
+ elif "fedora" in system_information_trimmed:
+ statistics["os"]["linux"]["fedora"].add(user)
+ elif "debian" in system_information_trimmed:
+ statistics["os"]["linux"]["debian"].add(user)
+ elif "mint" in system_information_trimmed:
+ statistics["os"]["linux"]["mint"].add(user)
+ elif "arch" in system_information_trimmed:
+ statistics["os"]["linux"]["arch"].add(user)
+ elif "linux" in system_information_trimmed:
statistics["os"]["linux"]["unknown"].add(user)
+ if (
+ "macos13" in system_information_trimmed
+ or "macosventura" in system_information_trimmed
+ ):
+ statistics["os"]["macos"]["13"].add(user)
+ elif (
+ "macos12" in system_information_trimmed
+ or "macosmonterey" in system_information_trimmed
+ ):
+ statistics["os"]["macos"]["12"].add(user)
+ elif (
+ "macos11" in system_information_trimmed
+ or "macosbigsur" in system_information_trimmed
+ ):
+ statistics["os"]["macos"]["11"].add(user)
+ elif (
+ "macos10.15" in system_information_trimmed
+ or "macoscatalina" in system_information_trimmed
+ ):
+ statistics["os"]["macos"]["10.15"].add(user)
+ elif (
+ "macos10.14" in system_information_trimmed
+ or "macosmojave" in system_information_trimmed
+ ):
+ statistics["os"]["macos"]["10.14"].add(user)
+ elif (
+ "macos10.13" in system_information_trimmed
+ or "macoshighsierra" in system_information_trimmed
+ ):
+ statistics["os"]["macos"]["10.13"].add(user)
+ elif (
+ "macos10.12" in system_information_trimmed
+ or "macossierra" in system_information_trimmed
+ ):
+ statistics["os"]["macos"]["10.12"].add(user)
+ elif "macos" in system_information_trimmed:
+ statistics["os"]["macos"]["unknown"].add(user)
+
+ if "android13" in system_information_trimmed:
+ statistics["os"]["android"]["13"].add(user)
+ elif "android12" in system_information_trimmed:
+ statistics["os"]["android"]["12"].add(user)
+ elif "android11" in system_information_trimmed:
+ statistics["os"]["android"]["11"].add(user)
+ elif "android10" in system_information_trimmed:
+ statistics["os"]["android"]["10"].add(user)
+ elif "android9" in system_information_trimmed:
+ statistics["os"]["android"]["9"].add(user)
+ elif "android8" in system_information_trimmed:
+ statistics["os"]["android"]["8"].add(user)
+ elif "android7" in system_information_trimmed:
+ statistics["os"]["android"]["7"].add(user)
+ elif "android6" in system_information_trimmed:
+ statistics["os"]["android"]["6"].add(user)
+ elif "android5" in system_information_trimmed:
+ statistics["os"]["android"]["5"].add(user)
+ elif "android" in system_information_trimmed:
+ statistics["os"]["android"]["unknown"].add(user)
+
+ if "ios17" in system_information_trimmed:
+ statistics["os"]["ios"]["17"].add(user)
+ elif "ios16" in system_information_trimmed:
+ statistics["os"]["ios"]["16"].add(user)
+ elif "ios15" in system_information_trimmed:
+ statistics["os"]["ios"]["15"].add(user)
+ elif "ios14" in system_information_trimmed:
+ statistics["os"]["ios"]["14"].add(user)
+ elif "ios13" in system_information_trimmed:
+ statistics["os"]["ios"]["13"].add(user)
+ elif "ios12" in system_information_trimmed:
+ statistics["os"]["ios"]["12"].add(user)
+ elif "ios11" in system_information_trimmed:
+ statistics["os"]["ios"]["11"].add(user)
+ elif "ios10" in system_information_trimmed:
+ statistics["os"]["ios"]["10"].add(user)
+ elif "ios" in system_information_trimmed:
+ statistics["os"]["ios"]["unknown"].add(user)
+
+ if "firefox" in system_information_trimmed:
+ statistics["os"]["web"]["firefox"].add(user)
+ elif "chrome" in system_information_trimmed:
+ statistics["os"]["web"]["chrome"].add(user)
+ elif "opera" in system_information_trimmed:
+ statistics["os"]["web"]["opera"].add(user)
+ elif "edge" in system_information_trimmed:
+ statistics["os"]["web"]["edge"].add(user)
+ elif "safari" in system_information_trimmed:
+ statistics["os"]["web"]["safari"].add(user)
+ elif "web" in system_information_trimmed:
+ statistics["os"]["web"]["unknown"].add(user)
+
+ # TODO: Add Intel CPUs.
+ if "i76700" in system_information_trimmed:
+ statistics["cpu"]["intel"]["skylake"].add(user)
+ statistics["cpu_core_count"]["4"].add(user)
+ statistics["cpu_x86_features"]["avx2"].add(user)
+ elif (
+ "intelcore" in system_information_trimmed
+ or "inteli" in system_information_trimmed
+ ):
+ # Second part of the `if` statement is for users who write "Intel i7" instead of "Intel Core i7".
+ statistics["cpu"]["intel"]["unknown"].add(user)
+
+ # TODO: Add AMD CPUs.
+ if (
+ "ryzen55600x" in system_information_trimmed
+ or "ryzen5600x" in system_information_trimmed
+ ):
+ statistics["cpu"]["amd"]["zen3"].add(user)
+ statistics["cpu_core_count"]["6"].add(user)
+ statistics["cpu_x86_features"]["avx2"].add(user)
+ elif (
+ "ryzen" in system_information_trimmed
+ or "fx" in system_information_trimmed
+ ):
+ statistics["cpu"]["amd"]["unknown"].add(user)
+
+ if "rtx4090" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_ada_lovelace"].add(user)
+ statistics["gpu_vram"]["24_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
+ elif "rtx4080" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_ada_lovelace"].add(user)
+ statistics["gpu_vram"]["16_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
+ elif "rtx4070ti" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_ada_lovelace"].add(user)
+ statistics["gpu_vram"]["12_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
+ elif "rtx4070" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_ada_lovelace"].add(user)
+ statistics["gpu_vram"]["12_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
+ elif "rtx4060ti" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_ada_lovelace"].add(user)
+ # Assume 8 GB variant, which is much more widespread than the 16 GB one.
+ statistics["gpu_vram"]["8_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
+ elif "rtx4060" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_ada_lovelace"].add(user)
+ statistics["gpu_vram"]["8_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
+ elif "rtx3090" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_ampere"].add(user)
+ statistics["gpu_vram"]["10_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
+ elif "rtx3080ti" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_ampere"].add(user)
+ statistics["gpu_vram"]["10_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
+ elif "rtx3080" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_ampere"].add(user)
+ # Assume 10 GB variant, which is much more widespread than the 12 GB one.
+ statistics["gpu_vram"]["10_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
+ elif "rtx3070" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_ampere"].add(user)
+ statistics["gpu_vram"]["8_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
+ elif "rtx3060" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_ampere"].add(user)
+ # Assume 12 GB variant, which is much more widespread than the 8 GB one.
+ statistics["gpu_vram"]["12_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
+ elif "rtx3050" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_ampere"].add(user)
+ statistics["gpu_vram"]["8_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
+ elif "rtx2080ti" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_turing"].add(user)
+ statistics["gpu_vram"]["11_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
+ elif "rtx2080super" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_turing"].add(user)
+ statistics["gpu_vram"]["11_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
+ elif "rtx2080" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_turing"].add(user)
+ statistics["gpu_vram"]["11_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
+ elif "rtx2070super" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_turing"].add(user)
+ statistics["gpu_vram"]["11_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
+ elif "rtx2070" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_turing"].add(user)
+ statistics["gpu_vram"]["11_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
+ elif "rtx2060super" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_turing"].add(user)
+ statistics["gpu_vram"]["11_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
+ elif "rtx2060" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_turing"].add(user)
+ statistics["gpu_vram"]["11_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
+ elif "gtx1660ti" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_turing"].add(user)
+ statistics["gpu_vram"]["6_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
+ elif "gtx1660super" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_turing"].add(user)
+ statistics["gpu_vram"]["6_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
+ elif "gtx1660" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_turing"].add(user)
+ statistics["gpu_vram"]["6_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
+ elif "gtx1650super" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_turing"].add(user)
+ statistics["gpu_vram"]["4_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
+ elif "gtx1650" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_turing"].add(user)
+ statistics["gpu_vram"]["4_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
+ elif "gtx1630" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_turing"].add(user)
+ statistics["gpu_vram"]["4_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
+ elif "gtx1080ti" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_pascal"].add(user)
+ statistics["gpu_vram"]["12_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["no"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
+ elif "gtx1080" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_pascal"].add(user)
+ statistics["gpu_vram"]["12_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["no"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
+ elif "gtx1070ti" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_pascal"].add(user)
+ statistics["gpu_vram"]["12_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["no"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
+ elif "gtx1070" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_pascal"].add(user)
+ statistics["gpu_vram"]["12_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["no"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
+ elif "gtx1060" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_pascal"].add(user)
+ statistics["gpu_vram"]["12_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["no"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
+ elif "gtx1050ti" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_pascal"].add(user)
+ statistics["gpu_vram"]["12_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["no"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
+ elif "gtx1050" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_pascal"].add(user)
+ statistics["gpu_vram"]["12_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["no"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
+ elif "gtx980ti" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_maxwell"].add(user)
+ statistics["gpu_vram"]["12_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["no"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
+ elif "gtx980" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_maxwell"].add(user)
+ statistics["gpu_vram"]["12_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["no"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
+ elif "gtx970" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_maxwell"].add(user)
+ statistics["gpu_vram"]["12_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["no"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
+ elif "gtx960" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_maxwell"].add(user)
+ statistics["gpu_vram"]["12_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["no"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
+ elif "gtx950" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_maxwell"].add(user)
+ statistics["gpu_vram"]["12_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["no"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
+ elif "gtx750ti" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_maxwell"].add(user)
+ statistics["gpu_vram"]["12_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["no"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
+ elif "gtx750" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_maxwell"].add(user)
+ statistics["gpu_vram"]["12_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["no"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
+ elif "gtx690" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_kepler"].add(user)
+ statistics["gpu_vram"]["12_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["no"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
+ elif "gtx680" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_kepler"].add(user)
+ statistics["gpu_vram"]["12_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["no"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
+ elif "gtx670" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_kepler"].add(user)
+ statistics["gpu_vram"]["12_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["no"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
+ elif "gtx660ti" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_kepler"].add(user)
+ statistics["gpu_vram"]["12_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["no"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
+ elif "gtx660" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_kepler"].add(user)
+ statistics["gpu_vram"]["12_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["no"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
+ elif "gtx650ti" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_kepler"].add(user)
+ statistics["gpu_vram"]["12_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["no"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
+ elif "gtx650" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_kepler"].add(user)
+ statistics["gpu_vram"]["12_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["no"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
+ elif "gtx590" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_fermi"].add(user)
+ statistics["gpu_vram"]["12_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["no"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
+ elif "gtx580" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_fermi"].add(user)
+ statistics["gpu_vram"]["12_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["no"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
+ elif "gtx570" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_fermi"].add(user)
+ statistics["gpu_vram"]["12_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["no"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
+ elif "gtx560ti" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_fermi"].add(user)
+ statistics["gpu_vram"]["12_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["no"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
+ elif "gtx560" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_fermi"].add(user)
+ statistics["gpu_vram"]["12_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["no"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
+ elif "gtx550ti" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["dedicated_fermi"].add(user)
+ statistics["gpu_vram"]["12_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["no"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
+ elif "gt710" in system_information_trimmed:
+ # The GeForce GT 710 is a Fermi GPU despite being in the 700 series.
+ statistics["gpu"]["nvidia"]["dedicated_fermi"].add(user)
+ statistics["gpu_vram"]["12_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["no"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
+ elif "nvidia" in system_information_trimmed:
+ statistics["gpu"]["nvidia"]["unknown"].add(user)
+
+ if "rx7900xtx" in system_information_trimmed:
+ statistics["gpu"]["amd"]["dedicated_rdna3"].add(user)
+ statistics["gpu_vram"]["24_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
+ elif "rx7900xt" in system_information_trimmed:
+ statistics["gpu"]["amd"]["dedicated_rdna3"].add(user)
+ statistics["gpu_vram"]["20_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
+ elif "rx7600xt" in system_information_trimmed:
+ statistics["gpu"]["amd"]["dedicated_rdna3"].add(user)
+ statistics["gpu_vram"]["8_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
+ elif "rx6950xt" in system_information_trimmed:
+ statistics["gpu"]["amd"]["dedicated_rdna2"].add(user)
+ statistics["gpu_vram"]["16_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
+ elif "rx6900xt" in system_information_trimmed:
+ statistics["gpu"]["amd"]["dedicated_rdna2"].add(user)
+ statistics["gpu_vram"]["16_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
+ elif "rx6850xt" in system_information_trimmed:
+ statistics["gpu"]["amd"]["dedicated_rdna2"].add(user)
+ statistics["gpu_vram"]["16_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
+ elif "rx6800xt" in system_information_trimmed:
+ statistics["gpu"]["amd"]["dedicated_rdna2"].add(user)
+ statistics["gpu_vram"]["16_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
+ elif "rx6750xt" in system_information_trimmed:
+ statistics["gpu"]["amd"]["dedicated_rdna2"].add(user)
+ statistics["gpu_vram"]["12_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
+ elif "rx6700xt" in system_information_trimmed:
+ statistics["gpu"]["amd"]["dedicated_rdna2"].add(user)
+ statistics["gpu_vram"]["12_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
+ elif "rx6700" in system_information_trimmed:
+ statistics["gpu"]["amd"]["dedicated_rdna2"].add(user)
+ statistics["gpu_vram"]["10_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
+ elif "rx6650xt" in system_information_trimmed:
+ statistics["gpu"]["amd"]["dedicated_rdna2"].add(user)
+ statistics["gpu_vram"]["8_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
+ elif "rx6600xt" in system_information_trimmed:
+ statistics["gpu"]["amd"]["dedicated_rdna2"].add(user)
+ statistics["gpu_vram"]["8_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
+ elif "rx6500xt" in system_information_trimmed:
+ statistics["gpu"]["amd"]["dedicated_rdna2"].add(user)
+ statistics["gpu_vram"]["4_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
+ elif "rx6400" in system_information_trimmed:
+ statistics["gpu"]["amd"]["dedicated_rdna2"].add(user)
+ statistics["gpu_vram"]["4_gb"].add(user)
+ statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
+ statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
+ statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
+ elif "radeon" in system_information_trimmed:
+ statistics["gpu"]["amd"]["unknown"].add(user)
+
+ # TODO: Add Intel IGPs.
+ if (
+ "irisxe" in system_information_trimmed
+ or "intelhd" in system_information_trimmed
+ ):
+ statistics["gpu"]["intel"]["unknown"].add(user)
+
# TODO: Gather more statistics.
for info in user_system_infos: