Begin detecting more software and hardware information

This commit is contained in:
Hugo Locurcio
2023-06-29 12:02:04 +02:00
parent 6b2bbd3f65
commit 875d325f0e

755
main.py
View File

@@ -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 <https://www.cpubenchmark.net/>.
"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 <https://www.videocardbenchmark.net/>.
"<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: