#!/usr/bin/env python3
from gql import gql, Client
from gql.transport.aiohttp import AIOHTTPTransport
from dotenv import load_dotenv
import os
def main() -> None:
load_dotenv()
transport = AIOHTTPTransport(
url="https://api.github.com/graphql",
headers={
"Authorization": f"Bearer {os.getenv('GODOT_ISSUES_STATS_GITHUB_TOKEN')}"
},
)
client = Client(transport=transport, fetch_schema_from_transport=True)
results = []
cursor = None
# Get the 10×100 = 1000 last issues.
# TODO: Retry requests a few times if they fail.
for _ in range(10):
query = gql(
"""
query($cursor: String) {
repository(owner: "godotengine", name: "godot") {
issues(last: 100, orderBy: {direction: ASC, field: CREATED_AT}, before: $cursor) {
edges {
cursor
node {
body
author {
login
}
}
}
}
}
}
"""
)
# We're querying the first page, so we don't need to supply a valid cursor.
# GQL will take care of not submitting the variable if it's set to `None`.
result = client.execute(query, variable_values={"cursor": cursor})
results.append(result)
# Get the cursor value of the last returned item, as we need it for subsequent requests (pagination).
cursor = result["repository"]["issues"]["edges"][0]["cursor"]
# Array of dictionaries with user and system information string.
user_system_infos = []
# Counters for all statistics (values are a set of usernames).
# A set is used, so that each user may only increment a given counter once.
# A single user may increment multiple counters in the same category,
# as they may report issues with different hardware or operating systems.
statistics = {
"os": {
"windows": {
"11": set(),
"10": set(),
"8.1": set(),
"8": set(),
"7": set(),
"unknown": set(),
},
"linux": {
"ubuntu": set(),
"fedora": set(),
"debian": set(),
"mint": set(),
"arch": set(),
"unknown": set(),
},
"macos": {
"14": set(),
"13": set(),
"12": set(),
"11": set(),
"10.15": set(),
"10.14": set(),
"10.13": set(),
"10.12": set(),
"unknown": set(),
},
"android": {
"14": set(),
"13": set(),
"12": set(),
"11": set(),
"10": set(),
"9": set(),
"8": set(),
"7": set(),
"6": set(),
"5": set(),
"unknown": set(),
},
"ios": {
"17": set(),
"16": set(),
"15": set(),
"14": set(),
"13": set(),
"12": set(),
"11": set(),
"10": set(),
"unknown": set(),
},
"web": {
"firefox": set(),
"chrome": set(),
"opera": set(),
"edge": set(),
"safari": set(),
"unknown": set(),
},
},
"cpu": {
"amd": {
"zen4": set(),
"zen3": set(),
"zen2": set(),
"zen+": set(),
"zen1": set(),
"piledriver": set(),
"bulldozer": set(),
"phenom": set(),
"unknown": set(),
},
"intel": {
"meteor_lake": set(),
"raptor_lake": set(),
"alder_lake": set(),
"rocket_lake": set(),
"ice_lake": set(),
"coffee_lake_refresh": set(),
"coffee_lake": set(),
"kaby_lake": set(),
"skylake": set(),
"haswell": set(),
"ivy_bridge": set(),
"sandy_bridge": set(),
"nehalem": set(),
"core2": set(),
"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": {
"dedicated_rdna3": set(),
"dedicated_rdna2": set(),
"dedicated_rdna1": set(),
"dedicated_gcn5.0": set(),
"dedicated_gcn4.0": set(),
"dedicated_gcn3.0": set(),
"dedicated_gcn2.0": set(),
"dedicated_gcn1.0": set(),
"dedicated_vliw4": set(),
"integrated_rdna3": set(),
"integrated_rdna2": set(),
"integrated_gcn5.0": set(),
"unknown": set(),
},
"intel": {
"dedicated_arc_alchemist": set(),
"integrated_gen12": set(), # Rocket Lake/Alder Lake/Raptor Lake
# There's no way to detect gen11 (Ice Lake) IGPs based on GPU model name alone.
# There are no gen10 IGPs.
"integrated_gen9.5": set(), # Kaby Lake/Coffee Lake/Coffee Lake Refresh
"integrated_gen9": set(), # Skylake
"integrated_gen8": set(), # Broadwell
"integrated_gen7.5": set(), # Haswell
"integrated_gen7": set(), # Ivy Bridge
"integrated_gen6": set(), # Sandy Bridge
"unknown": set(),
},
"nvidia": {
"dedicated_ada_lovelace": set(),
"dedicated_ampere": set(),
"dedicated_turing": set(),
"dedicated_pascal": set(),
"dedicated_maxwell": set(),
"dedicated_kepler": set(),
"dedicated_fermi": set(),
"unknown": set(),
},
},
"gpu_vram": {
# Only dedicated GPUs increment this statistic.
"1_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 result in results:
for node in result["repository"]["issues"]["edges"]:
# Handle deleted ("ghost") users.
user = (
node["node"]["author"]["login"]
if node["node"]["author"] != None
else "ghost"
)
# Fix CRLF line endings causing issues with detection,
# as some issue reports use them instead of LF line endings.
body = node["node"]["body"].replace("\r\n", "\n")
# Only issues reported with the issue template form can be scanned with this approach.
# This means issues reported before 2020 can't be scanned.
system_info_index = body.find("### System information\n\n")
issue_description_index = body.find("\n\n### Issue description")
if system_info_index != -1 and issue_description_index != -1:
system_info_index_end = system_info_index + len(
"### System information\n\n"
)
system_information = body[system_info_index_end:issue_description_index]
user_system_infos.append(
{"user": user, "system_information": system_information}
)
# Make the search case-insensitive and punctuation-insensitive.
system_information_trimmed = (
system_information.lower()
.replace(" ", "")
.replace("-", "")
.replace("_", "")
.replace(":", "")
.replace(",", "")
.replace("(r)", "")
.replace("(tm)", "")
.replace(
"graphics", ""
) # Makes it easier to parse "Intel HD Graphics ...".
.replace(
"pro", ""
) # Makes it easier to parse "Ryzen PRO" (these are very close to their non-PRO counterparts).
)
print(system_information_trimmed)
# Gather statistics for each issue reported.
if "windows11" in system_information_trimmed:
statistics["os"]["windows"]["11"].add(user)
elif "windows10" in system_information_trimmed:
statistics["os"]["windows"]["10"].add(user)
elif "windows8.1" in system_information_trimmed:
statistics["os"]["windows"]["8.1"].add(user)
elif "windows8" in system_information_trimmed:
statistics["os"]["windows"]["8"].add(user)
elif "windows7" in system_information_trimmed:
statistics["os"]["windows"]["7"].add(user)
elif "windows" in system_information_trimmed:
statistics["os"]["windows"]["unknown"].add(user)
if "ubuntu" in system_information_trimmed:
statistics["os"]["linux"]["ubuntu"].add(user)
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 more Intel CPUs. Tweak detection to also allow "intel" and "core".
# TODO: Add Passmark scores for CPUs and GPUs.
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 laptop AMD CPUs and Threadrippers.
# NOTE: Unlike Intel CPUs, detection does not allow "amd" as this syntax is used for GPUs instead.
# There would be some ambiguities otherwise, such as Ryzen 5 7600 versus Radeon RX 7600.
if (
"ryzen97950x3d" in system_information_trimmed
or "ryzen7950x3d" in system_information_trimmed
):
statistics["cpu"]["amd"]["zen4"].add(user)
statistics["cpu_core_count"]["16"].add(user)
statistics["cpu_x86_features"]["avx512"].add(user)
elif (
"ryzen97950x" in system_information_trimmed
or "ryzen7950x" in system_information_trimmed
):
statistics["cpu"]["amd"]["zen4"].add(user)
statistics["cpu_core_count"]["16"].add(user)
statistics["cpu_x86_features"]["avx512"].add(user)
elif (
"ryzen97900x3d" in system_information_trimmed
or "ryzen7900x3d" in system_information_trimmed
):
statistics["cpu"]["amd"]["zen4"].add(user)
statistics["cpu_core_count"]["12"].add(user)
statistics["cpu_x86_features"]["avx512"].add(user)
elif (
"ryzen97900x" in system_information_trimmed
or "ryzen7900x" in system_information_trimmed
):
statistics["cpu"]["amd"]["zen4"].add(user)
statistics["cpu_core_count"]["12"].add(user)
statistics["cpu_x86_features"]["avx512"].add(user)
elif (
"ryzen77800x3d" in system_information_trimmed
or "ryzen7800x3d" in system_information_trimmed
):
statistics["cpu"]["amd"]["zen4"].add(user)
statistics["cpu_core_count"]["8"].add(user)
statistics["cpu_x86_features"]["avx512"].add(user)
elif (
"ryzen77800x" in system_information_trimmed
or "ryzen7800x" in system_information_trimmed
):
statistics["cpu"]["amd"]["zen4"].add(user)
statistics["cpu_core_count"]["8"].add(user)
statistics["cpu_x86_features"]["avx512"].add(user)
elif (
"ryzen77700x3d" in system_information_trimmed
or "ryzen7700x" in system_information_trimmed
):
statistics["cpu"]["amd"]["zen4"].add(user)
statistics["cpu_core_count"]["8"].add(user)
statistics["cpu_x86_features"]["avx512"].add(user)
elif (
"ryzen77700x" in system_information_trimmed
or "ryzen7700x" in system_information_trimmed
):
statistics["cpu"]["amd"]["zen4"].add(user)
statistics["cpu_core_count"]["8"].add(user)
statistics["cpu_x86_features"]["avx512"].add(user)
elif (
"ryzen57600x" in system_information_trimmed
or "ryzen7600x" in system_information_trimmed
):
statistics["cpu"]["amd"]["zen4"].add(user)
statistics["cpu_core_count"]["6"].add(user)
statistics["cpu_x86_features"]["avx512"].add(user)
elif (
"ryzen95950x" in system_information_trimmed
or "ryzen5950x" in system_information_trimmed
):
statistics["cpu"]["amd"]["zen3"].add(user)
statistics["cpu_core_count"]["16"].add(user)
statistics["cpu_x86_features"]["avx2"].add(user)
elif (
"ryzen95900x" in system_information_trimmed
or "ryzen5900x" in system_information_trimmed
):
statistics["cpu"]["amd"]["zen3"].add(user)
statistics["cpu_core_count"]["12"].add(user)
statistics["cpu_x86_features"]["avx2"].add(user)
elif (
"ryzen75800x3d" in system_information_trimmed
or "ryzen5800x3d" in system_information_trimmed
):
statistics["cpu"]["amd"]["zen3"].add(user)
statistics["cpu_core_count"]["8"].add(user)
statistics["cpu_x86_features"]["avx2"].add(user)
elif (
"ryzen75800x" in system_information_trimmed
or "ryzen5800x" in system_information_trimmed
):
statistics["cpu"]["amd"]["zen3"].add(user)
statistics["cpu_core_count"]["8"].add(user)
statistics["cpu_x86_features"]["avx2"].add(user)
elif (
"ryzen75700x" in system_information_trimmed
or "ryzen5700x" in system_information_trimmed
):
statistics["cpu"]["amd"]["zen3"].add(user)
statistics["cpu_core_count"]["8"].add(user)
statistics["cpu_x86_features"]["avx2"].add(user)
elif (
"ryzen75700g" in system_information_trimmed
or "ryzen5700g" in system_information_trimmed
):
statistics["cpu"]["amd"]["zen3"].add(user)
statistics["cpu_core_count"]["8"].add(user)
statistics["cpu_x86_features"]["avx2"].add(user)
elif (
"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 (
"ryzen55600g" in system_information_trimmed
or "ryzen5600g" 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 (
"ryzen55600" in system_information_trimmed
or "ryzen5600" 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 (
"ryzen55500" in system_information_trimmed
or "ryzen5500" in system_information_trimmed
):
statistics["cpu"]["amd"]["zen2"].add(user)
statistics["cpu_core_count"]["6"].add(user)
statistics["cpu_x86_features"]["avx2"].add(user)
elif (
"ryzen93950x" in system_information_trimmed
or "ryzen3950x" in system_information_trimmed
):
statistics["cpu"]["amd"]["zen2"].add(user)
statistics["cpu_core_count"]["16"].add(user)
statistics["cpu_x86_features"]["avx2"].add(user)
elif (
"ryzen93900x" in system_information_trimmed
or "ryzen3900x" in system_information_trimmed
):
statistics["cpu"]["amd"]["zen2"].add(user)
statistics["cpu_core_count"]["12"].add(user)
statistics["cpu_x86_features"]["avx2"].add(user)
elif (
"ryzen73800x" in system_information_trimmed
or "ryzen3800x" in system_information_trimmed
):
statistics["cpu"]["amd"]["zen2"].add(user)
statistics["cpu_core_count"]["8"].add(user)
statistics["cpu_x86_features"]["avx2"].add(user)
elif (
"ryzen73700x" in system_information_trimmed
or "ryzen3700x" in system_information_trimmed
):
statistics["cpu"]["amd"]["zen2"].add(user)
statistics["cpu_core_count"]["8"].add(user)
statistics["cpu_x86_features"]["avx2"].add(user)
elif (
"ryzen53600x" in system_information_trimmed
or "ryzen3600x" in system_information_trimmed
):
statistics["cpu"]["amd"]["zen2"].add(user)
statistics["cpu_core_count"]["6"].add(user)
statistics["cpu_x86_features"]["avx2"].add(user)
elif (
"ryzen53600" in system_information_trimmed
or "ryzen3600" in system_information_trimmed
):
statistics["cpu"]["amd"]["zen2"].add(user)
statistics["cpu_core_count"]["6"].add(user)
statistics["cpu_x86_features"]["avx2"].add(user)
elif (
"ryzen33300x" in system_information_trimmed
or "ryzen3300x" in system_information_trimmed
):
statistics["cpu"]["amd"]["zen2"].add(user)
statistics["cpu_core_count"]["4"].add(user)
statistics["cpu_x86_features"]["avx2"].add(user)
elif (
"ryzen72700x" in system_information_trimmed
or "ryzen2700x" in system_information_trimmed
):
statistics["cpu"]["amd"]["zen+"].add(user)
statistics["cpu_core_count"]["8"].add(user)
statistics["cpu_x86_features"]["avx2"].add(user)
elif (
"ryzen52600x" in system_information_trimmed
or "ryzen2600x" in system_information_trimmed
):
statistics["cpu"]["amd"]["zen+"].add(user)
statistics["cpu_core_count"]["6"].add(user)
statistics["cpu_x86_features"]["avx2"].add(user)
elif (
"ryzen52600" in system_information_trimmed
or "ryzen2600" in system_information_trimmed
):
statistics["cpu"]["amd"]["zen+"].add(user)
statistics["cpu_core_count"]["6"].add(user)
statistics["cpu_x86_features"]["avx2"].add(user)
elif (
"ryzen52500x" in system_information_trimmed
or "ryzen2500x" in system_information_trimmed
):
statistics["cpu"]["amd"]["zen+"].add(user)
statistics["cpu_core_count"]["4"].add(user)
statistics["cpu_x86_features"]["avx2"].add(user)
elif (
"ryzen52400g" in system_information_trimmed
or "ryzen2400g" in system_information_trimmed
):
statistics["cpu"]["amd"]["zen+"].add(user)
statistics["cpu_core_count"]["4"].add(user)
statistics["cpu_x86_features"]["avx2"].add(user)
elif (
"ryzen32300x" in system_information_trimmed
or "ryzen2300x" in system_information_trimmed
):
statistics["cpu"]["amd"]["zen+"].add(user)
statistics["cpu_core_count"]["4"].add(user)
statistics["cpu_x86_features"]["avx2"].add(user)
elif (
"ryzen32200g" in system_information_trimmed
or "ryzen2200g" in system_information_trimmed
):
statistics["cpu"]["amd"]["zen+"].add(user)
statistics["cpu_core_count"]["4"].add(user)
statistics["cpu_x86_features"]["avx2"].add(user)
elif (
"ryzen71800x" in system_information_trimmed
or "ryzen1800x" in system_information_trimmed
):
statistics["cpu"]["amd"]["zen+"].add(user)
statistics["cpu_core_count"]["8"].add(user)
statistics["cpu_x86_features"]["avx2"].add(user)
elif (
"ryzen71700x" in system_information_trimmed
or "ryzen1700x" in system_information_trimmed
):
statistics["cpu"]["amd"]["zen+"].add(user)
statistics["cpu_core_count"]["8"].add(user)
statistics["cpu_x86_features"]["avx2"].add(user)
elif (
"ryzen71700" in system_information_trimmed
or "ryzen1700" in system_information_trimmed
):
statistics["cpu"]["amd"]["zen+"].add(user)
statistics["cpu_core_count"]["8"].add(user)
statistics["cpu_x86_features"]["avx2"].add(user)
elif (
"ryzen51600x" in system_information_trimmed
or "ryzen1600x" in system_information_trimmed
):
statistics["cpu"]["amd"]["zen+"].add(user)
statistics["cpu_core_count"]["6"].add(user)
statistics["cpu_x86_features"]["avx2"].add(user)
elif (
"ryzen51600" in system_information_trimmed
or "ryzen1600" in system_information_trimmed
):
statistics["cpu"]["amd"]["zen+"].add(user)
statistics["cpu_core_count"]["6"].add(user)
statistics["cpu_x86_features"]["avx2"].add(user)
elif (
"ryzen51500x" in system_information_trimmed
or "ryzen1500x" in system_information_trimmed
):
statistics["cpu"]["amd"]["zen+"].add(user)
statistics["cpu_core_count"]["4"].add(user)
statistics["cpu_x86_features"]["avx2"].add(user)
elif (
"ryzen51400" in system_information_trimmed
or "ryzen1400" in system_information_trimmed
):
statistics["cpu"]["amd"]["zen+"].add(user)
statistics["cpu_core_count"]["4"].add(user)
statistics["cpu_x86_features"]["avx2"].add(user)
elif (
"ryzen31300x" in system_information_trimmed
or "ryzen1300x" in system_information_trimmed
):
statistics["cpu"]["amd"]["zen+"].add(user)
statistics["cpu_core_count"]["4"].add(user)
statistics["cpu_x86_features"]["avx2"].add(user)
elif (
"ryzen31200" in system_information_trimmed
or "ryzen1200" in system_information_trimmed
):
statistics["cpu"]["amd"]["zen+"].add(user)
statistics["cpu_core_count"]["4"].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)
# NOTE: In this scanning, laptop GPUs are only separated from desktop GPUs since Ampere.
# This may not be reliable in all cases if the user has removed the "Mobile"
# or "Laptop" suffix from the model name.
if (
"rtx4090" in system_information_trimmed
or "geforce4090" in system_information_trimmed
or "nvidia4090" 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 (
"4090laptop" in system_information_trimmed
or "4090mobile" 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 (
"rtx4080" in system_information_trimmed
or "geforce4080" in system_information_trimmed
or "nvidia4080" 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 (
"4080laptop" in system_information_trimmed
or "4080mobile" 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 (
"rtx4070ti" in system_information_trimmed
or "geforce4070ti" in system_information_trimmed
or "nvidia4070ti" 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
or "geforce4070" in system_information_trimmed
or "nvidia4070" 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 (
"4070laptop" in system_information_trimmed
or "4070mobile" 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 (
"rtx4060ti" in system_information_trimmed
or "geforce4060ti" in system_information_trimmed
or "nvidia4060ti" 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
or "geforce4060" in system_information_trimmed
or "nvidia4060" 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 (
"4060laptop" in system_information_trimmed
or "4060mobile" 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 (
"4050laptop" in system_information_trimmed
or "4050mobile" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_ada_lovelace"].add(user)
statistics["gpu_vram"]["6_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
or "geforce3090" in system_information_trimmed
or "nvidia3090" 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
or "geforce3080ti" in system_information_trimmed
or "nvidia3080ti" 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 (
"3080tilaptop" in system_information_trimmed
or "3080timobile" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_ampere"].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 (
"rtx3080" in system_information_trimmed
or "geforce3080" in system_information_trimmed
or "nvidia3080" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_ampere"].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 (
"3080laptop" in system_information_trimmed
or "3080mobile" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_ampere"].add(user)
statistics["gpu_vram"]["6_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 (
"rtx3070ti" in system_information_trimmed
or "geforce3070ti" in system_information_trimmed
or "nvidia3070ti" 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 (
"3070tilaptop" in system_information_trimmed
or "3070timobile" 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 (
"rtx3070" in system_information_trimmed
or "geforce3070" in system_information_trimmed
or "nvidia3070" 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 (
"3070laptop" in system_information_trimmed
or "3070mobile" 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 (
"3060tilaptop" in system_information_trimmed
or "3060timobile" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_ampere"].add(user)
statistics["gpu_vram"]["6_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
or "geforce3060" in system_information_trimmed
or "nvidia3060" 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 (
"3060laptop" in system_information_trimmed
or "3060mobile" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_ampere"].add(user)
statistics["gpu_vram"]["6_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 (
"3050tilaptop" in system_information_trimmed
or "3050timobile" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_ampere"].add(user)
statistics["gpu_vram"]["6_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
or "geforce3050" in system_information_trimmed
or "nvidia3050" 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 (
"3050laptop" in system_information_trimmed
or "3050mobile" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_ampere"].add(user)
# Assume 4 GB variant, which is much more widespread than the 6 GB one.
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 (
"rtx2080ti" in system_information_trimmed
or "geforce2080ti" in system_information_trimmed
or "nvidia2080ti" 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
or "geforce2080super" in system_information_trimmed
or "nvidia2080super" 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
or "geforce2080" in system_information_trimmed
or "nvidia2080" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_turing"].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 (
"rtx2070super" in system_information_trimmed
or "geforce2070super" in system_information_trimmed
or "nvidia2070super" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_turing"].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 (
"rtx2070" in system_information_trimmed
or "geforce2070" in system_information_trimmed
or "nvidia2070" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_turing"].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 (
"rtx2060super" in system_information_trimmed
or "geforce2060super" in system_information_trimmed
or "nvidia2060super" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_turing"].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 (
"rtx2060" in system_information_trimmed
or "geforce2060" in system_information_trimmed
or "nvidia2060" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_turing"].add(user)
statistics["gpu_vram"]["6_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
or "geforce1660ti" in system_information_trimmed
or "nvidia1660ti" 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
or "geforce1660super" in system_information_trimmed
or "nvidia1660super" 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
or "geforce1660" in system_information_trimmed
or "nvidia1660" 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
or "geforce1650super" in system_information_trimmed
or "nvidia1650super" 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
or "geforce1650" in system_information_trimmed
or "nvidia1650" 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
or "geforce1630" in system_information_trimmed
or "nvidia1630" 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
or "geforce1080ti" in system_information_trimmed
or "nvidia1080ti" 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
or "geforce1080" in system_information_trimmed
or "nvidia1080" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_pascal"].add(user)
statistics["gpu_vram"]["8_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
or "geforce1070ti" in system_information_trimmed
or "nvidia1070ti" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_pascal"].add(user)
statistics["gpu_vram"]["8_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
or "geforce1070" in system_information_trimmed
or "nvidia1070" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_pascal"].add(user)
statistics["gpu_vram"]["8_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
or "geforce1060" in system_information_trimmed
or "nvidia1060" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_pascal"].add(user)
# Assume 6 GB variant, which is much more widespread than the 3 GB one.
# This also applies to the Passmark score, as its 6 GB variant is faster
# than the 3 GB thanks to additional CUDA cores.
statistics["gpu_vram"]["6_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
or "geforce1050ti" in system_information_trimmed
or "nvidia1050ti" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_pascal"].add(user)
statistics["gpu_vram"]["4_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
or "geforce1050" in system_information_trimmed
or "nvidia1050" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_pascal"].add(user)
statistics["gpu_vram"]["4_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
or "geforce980ti" in system_information_trimmed
or "nvidia980ti" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_maxwell"].add(user)
statistics["gpu_vram"]["4_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
or "geforce980" in system_information_trimmed
or "nvidia980" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_maxwell"].add(user)
statistics["gpu_vram"]["4_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
or "geforce970" in system_information_trimmed
or "nvidia970" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_maxwell"].add(user)
# Count as a GPU with 3 GB of VRAM, since only 3.5 GB of VRAM
# (out of 4 GB physically present) are full-speed on a GeForce GTX 970.
statistics["gpu_vram"]["3_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
or "geforce960" in system_information_trimmed
or "nvidia960" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_maxwell"].add(user)
statistics["gpu_vram"]["2_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
or "geforce950" in system_information_trimmed
or "nvidia950" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_maxwell"].add(user)
statistics["gpu_vram"]["2_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
or "geforce750ti" in system_information_trimmed
or "nvidia750ti" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_maxwell"].add(user)
statistics["gpu_vram"]["2_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
or "geforce750" in system_information_trimmed
or "nvidia750" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_maxwell"].add(user)
statistics["gpu_vram"]["1_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
or "geforce690" in system_information_trimmed
or "nvidia690" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_kepler"].add(user)
# Dual-GPU card; since Godot doesn't support multi-GPU, only account for the VRAM of a single GPU.
statistics["gpu_vram"]["2_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
or "geforce680" in system_information_trimmed
or "nvidia680" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_kepler"].add(user)
statistics["gpu_vram"]["2_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
or "geforce670" in system_information_trimmed
or "nvidia670" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_kepler"].add(user)
statistics["gpu_vram"]["2_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
or "geforce660ti" in system_information_trimmed
or "nvidia660ti" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_kepler"].add(user)
statistics["gpu_vram"]["2_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
or "geforce660" in system_information_trimmed
or "nvidia660" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_kepler"].add(user)
statistics["gpu_vram"]["2_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
or "geforce650ti" in system_information_trimmed
or "nvidia650ti" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_kepler"].add(user)
statistics["gpu_vram"]["1_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
or "geforce650" in system_information_trimmed
or "nvidia650" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_kepler"].add(user)
statistics["gpu_vram"]["1_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
or "geforce590" in system_information_trimmed
or "nvidia590" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_fermi"].add(user)
# Dual-GPU card; since Godot doesn't support multi-GPU, only account for the VRAM of a single GPU.
# 1.5 GB of VRAM per GPU; round down to 1 GB.
statistics["gpu_vram"]["1_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
or "geforce580" in system_information_trimmed
or "nvidia580" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_fermi"].add(user)
# 1.5 GB of VRAM; round down to 1 GB.
statistics["gpu_vram"]["1_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
or "geforce570" in system_information_trimmed
or "nvidia570" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_fermi"].add(user)
# 1.25 GB of VRAM; round down to 1 GB.
statistics["gpu_vram"]["1_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
or "geforce560ti" in system_information_trimmed
or "nvidia560ti" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_fermi"].add(user)
statistics["gpu_vram"]["1_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
or "geforce560" in system_information_trimmed
or "nvidia560" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_fermi"].add(user)
statistics["gpu_vram"]["1_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
or "geforce550ti" in system_information_trimmed
or "nvidia550ti" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_fermi"].add(user)
statistics["gpu_vram"]["1_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
or "radeon7900xtx" in system_information_trimmed
or "amd7900xtx" 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
or "radeon7900xt" in system_information_trimmed
or "amd7900xt" 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
or "radeon7600xt" in system_information_trimmed
or "amd7600xt" 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
or "radeon6950xt" in system_information_trimmed
or "amd6950xt" 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
or "radeon6900xt" in system_information_trimmed
or "amd6900xt" 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
or "radeon6850xt" in system_information_trimmed
or "amd6850xt" 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
or "radeon6800xt" in system_information_trimmed
or "amd6800xt" 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 (
"rx6800" in system_information_trimmed
or "radeon6800" in system_information_trimmed
or "amd6800" 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
or "radeon6750xt" in system_information_trimmed
or "amd6750xt" 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
or "radeon6700xt" in system_information_trimmed
or "amd6700xt" 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
or "radeon6700" in system_information_trimmed
or "amd6700" 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
or "radeon6650xt" in system_information_trimmed
or "amd6650xt" 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
or "radeon6600xt" in system_information_trimmed
or "amd6600xt" 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 (
"rx6600" in system_information_trimmed
or "radeon6600" in system_information_trimmed
or "amd6600" 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
or "radeon6500xt" in system_information_trimmed
or "amd6500xt" 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
or "radeon6400" in system_information_trimmed
or "amd6400" 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 (
"rx5700xt" in system_information_trimmed
or "radeon5700xt" in system_information_trimmed
or "amd5700xt" in system_information_trimmed
):
statistics["gpu"]["amd"]["dedicated_rdna1"].add(user)
statistics["gpu_vram"]["8_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 (
"rx5700" in system_information_trimmed
or "radeon5700" in system_information_trimmed
or "amd5700" in system_information_trimmed
):
statistics["gpu"]["amd"]["dedicated_rdna1"].add(user)
statistics["gpu_vram"]["8_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 (
"rx5600xt" in system_information_trimmed
or "radeon5600xt" in system_information_trimmed
or "amd5600xt" in system_information_trimmed
):
statistics["gpu"]["amd"]["dedicated_rdna1"].add(user)
statistics["gpu_vram"]["6_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 (
"rx5500xt" in system_information_trimmed
or "radeon5500xt" in system_information_trimmed
or "amd5500xt" in system_information_trimmed
):
statistics["gpu"]["amd"]["dedicated_rdna1"].add(user)
statistics["gpu_vram"]["4_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 "radeonvii" in system_information_trimmed:
statistics["gpu"]["amd"]["dedicated_gcn5.0"].add(user)
statistics["gpu_vram"]["4_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 "vega64" in system_information_trimmed:
statistics["gpu"]["amd"]["dedicated_gcn5.0"].add(user)
statistics["gpu_vram"]["8_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 "vega56" in system_information_trimmed:
statistics["gpu"]["amd"]["dedicated_gcn5.0"].add(user)
statistics["gpu_vram"]["8_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 (
"rx590" in system_information_trimmed
or "radeon590" in system_information_trimmed
or "amd590" in system_information_trimmed
):
statistics["gpu"]["amd"]["dedicated_gcn4.0"].add(user)
statistics["gpu_vram"]["8_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 (
"rx580" in system_information_trimmed
or "radeon580" in system_information_trimmed
or "amd580" in system_information_trimmed
):
statistics["gpu"]["amd"]["dedicated_gcn4.0"].add(user)
statistics["gpu_vram"]["8_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 (
"rx570" in system_information_trimmed
or "radeon570" in system_information_trimmed
or "amd570" in system_information_trimmed
):
statistics["gpu"]["amd"]["dedicated_gcn4.0"].add(user)
statistics["gpu_vram"]["4_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 (
"rx560" in system_information_trimmed
or "radeon560" in system_information_trimmed
or "amd560" in system_information_trimmed
):
statistics["gpu"]["amd"]["dedicated_gcn4.0"].add(user)
statistics["gpu_vram"]["4_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 (
"rx550" in system_information_trimmed
or "radeon550" in system_information_trimmed
or "amd550" in system_information_trimmed
):
statistics["gpu"]["amd"]["dedicated_gcn4.0"].add(user)
statistics["gpu_vram"]["2_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 (
"rx480" in system_information_trimmed
or "radeon480" in system_information_trimmed
or "amd480" in system_information_trimmed
):
statistics["gpu"]["amd"]["dedicated_gcn4.0"].add(user)
statistics["gpu_vram"]["8_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 (
"rx470" in system_information_trimmed
or "radeon470" in system_information_trimmed
or "amd470" in system_information_trimmed
):
statistics["gpu"]["amd"]["dedicated_gcn4.0"].add(user)
statistics["gpu_vram"]["4_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 (
"rx460" in system_information_trimmed
or "radeon460" in system_information_trimmed
or "amd460" in system_information_trimmed
):
statistics["gpu"]["amd"]["dedicated_gcn4.0"].add(user)
statistics["gpu_vram"]["2_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 "radeon" in system_information_trimmed:
statistics["gpu"]["amd"]["unknown"].add(user)
if "a780" in system_information_trimmed:
statistics["gpu"]["intel"]["dedicated_arc_alchemist"].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 "a770" in system_information_trimmed:
statistics["gpu"]["intel"]["dedicated_arc_alchemist"].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 "a750" in system_information_trimmed:
statistics["gpu"]["intel"]["dedicated_arc_alchemist"].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 "a580" in system_information_trimmed:
statistics["gpu"]["intel"]["dedicated_arc_alchemist"].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 "a380" in system_information_trimmed:
statistics["gpu"]["intel"]["dedicated_arc_alchemist"].add(user)
statistics["gpu_vram"]["6_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 "a350" in system_information_trimmed:
statistics["gpu"]["intel"]["dedicated_arc_alchemist"].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 "a310" in system_information_trimmed:
statistics["gpu"]["intel"]["dedicated_arc_alchemist"].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 "uhd770" in system_information_trimmed:
statistics["gpu"]["intel"]["integrated_gen12"].add(user)
statistics["gpu_raytracing"]["integrated"]["no"].add(user)
statistics["gpu_vrs"]["integrated"]["yes"].add(user)
statistics["gpu_mesh_shaders"]["integrated"]["no"].add(user)
elif "uhd750" in system_information_trimmed:
statistics["gpu"]["intel"]["integrated_gen12"].add(user)
statistics["gpu_raytracing"]["integrated"]["no"].add(user)
statistics["gpu_vrs"]["integrated"]["yes"].add(user)
statistics["gpu_mesh_shaders"]["integrated"]["no"].add(user)
elif "uhd730" in system_information_trimmed:
statistics["gpu"]["intel"]["integrated_gen12"].add(user)
statistics["gpu_raytracing"]["integrated"]["no"].add(user)
statistics["gpu_vrs"]["integrated"]["yes"].add(user)
statistics["gpu_mesh_shaders"]["integrated"]["no"].add(user)
elif "uhd710" in system_information_trimmed:
statistics["gpu"]["intel"]["integrated_gen12"].add(user)
statistics["gpu_raytracing"]["integrated"]["no"].add(user)
statistics["gpu_vrs"]["integrated"]["yes"].add(user)
statistics["gpu_mesh_shaders"]["integrated"]["no"].add(user)
elif "irisplus655" in system_information_trimmed:
statistics["gpu"]["intel"]["integrated_gen9.5"].add(user)
statistics["gpu_raytracing"]["integrated"]["no"].add(user)
statistics["gpu_vrs"]["integrated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["integrated"]["no"].add(user)
elif "irisplus645" in system_information_trimmed:
statistics["gpu"]["intel"]["integrated_gen9.5"].add(user)
statistics["gpu_raytracing"]["integrated"]["no"].add(user)
statistics["gpu_vrs"]["integrated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["integrated"]["no"].add(user)
elif "uhd630" in system_information_trimmed:
statistics["gpu"]["intel"]["integrated_gen9.5"].add(user)
statistics["gpu_raytracing"]["integrated"]["no"].add(user)
statistics["gpu_vrs"]["integrated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["integrated"]["no"].add(user)
elif "uhd620" in system_information_trimmed:
statistics["gpu"]["intel"]["integrated_gen9.5"].add(user)
statistics["gpu_raytracing"]["integrated"]["no"].add(user)
statistics["gpu_vrs"]["integrated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["integrated"]["no"].add(user)
elif "uhd617" in system_information_trimmed:
statistics["gpu"]["intel"]["integrated_gen9.5"].add(user)
statistics["gpu_raytracing"]["integrated"]["no"].add(user)
statistics["gpu_vrs"]["integrated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["integrated"]["no"].add(user)
elif "uhd615" in system_information_trimmed:
statistics["gpu"]["intel"]["integrated_gen9.5"].add(user)
statistics["gpu_raytracing"]["integrated"]["no"].add(user)
statistics["gpu_vrs"]["integrated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["integrated"]["no"].add(user)
elif "uhd610" in system_information_trimmed:
statistics["gpu"]["intel"]["integrated_gen9.5"].add(user)
statistics["gpu_raytracing"]["integrated"]["no"].add(user)
statistics["gpu_vrs"]["integrated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["integrated"]["no"].add(user)
elif "irisplus650" in system_information_trimmed:
statistics["gpu"]["intel"]["integrated_gen9.5"].add(user)
statistics["gpu_raytracing"]["integrated"]["no"].add(user)
statistics["gpu_vrs"]["integrated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["integrated"]["no"].add(user)
elif "irisplus640" in system_information_trimmed:
statistics["gpu"]["intel"]["integrated_gen9.5"].add(user)
statistics["gpu_raytracing"]["integrated"]["no"].add(user)
statistics["gpu_vrs"]["integrated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["integrated"]["no"].add(user)
elif "hd630" in system_information_trimmed:
statistics["gpu"]["intel"]["integrated_gen9.5"].add(user)
statistics["gpu_raytracing"]["integrated"]["no"].add(user)
statistics["gpu_vrs"]["integrated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["integrated"]["no"].add(user)
elif "hd620" in system_information_trimmed:
statistics["gpu"]["intel"]["integrated_gen9.5"].add(user)
statistics["gpu_raytracing"]["integrated"]["no"].add(user)
statistics["gpu_vrs"]["integrated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["integrated"]["no"].add(user)
elif "hd615" in system_information_trimmed:
statistics["gpu"]["intel"]["integrated_gen9.5"].add(user)
statistics["gpu_raytracing"]["integrated"]["no"].add(user)
statistics["gpu_vrs"]["integrated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["integrated"]["no"].add(user)
elif "hd610" in system_information_trimmed:
statistics["gpu"]["intel"]["integrated_gen9.5"].add(user)
statistics["gpu_raytracing"]["integrated"]["no"].add(user)
statistics["gpu_vrs"]["integrated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["integrated"]["no"].add(user)
elif (
"iris580" in system_information_trimmed
): # Originally "irispro580", but we stripped "pro" to make parsing Ryzen PRO easier.
statistics["gpu"]["intel"]["integrated_gen9"].add(user)
statistics["gpu_raytracing"]["integrated"]["no"].add(user)
statistics["gpu_vrs"]["integrated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["integrated"]["no"].add(user)
elif "iris550" in system_information_trimmed:
statistics["gpu"]["intel"]["integrated_gen9"].add(user)
statistics["gpu_raytracing"]["integrated"]["no"].add(user)
statistics["gpu_vrs"]["integrated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["integrated"]["no"].add(user)
elif "iris540" in system_information_trimmed:
statistics["gpu"]["intel"]["integrated_gen9"].add(user)
statistics["gpu_raytracing"]["integrated"]["no"].add(user)
statistics["gpu_vrs"]["integrated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["integrated"]["no"].add(user)
elif "hd530" in system_information_trimmed:
statistics["gpu"]["intel"]["integrated_gen9"].add(user)
statistics["gpu_raytracing"]["integrated"]["no"].add(user)
statistics["gpu_vrs"]["integrated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["integrated"]["no"].add(user)
elif "hd520" in system_information_trimmed:
statistics["gpu"]["intel"]["integrated_gen9"].add(user)
statistics["gpu_raytracing"]["integrated"]["no"].add(user)
statistics["gpu_vrs"]["integrated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["integrated"]["no"].add(user)
elif "hd515" in system_information_trimmed:
statistics["gpu"]["intel"]["integrated_gen9"].add(user)
statistics["gpu_raytracing"]["integrated"]["no"].add(user)
statistics["gpu_vrs"]["integrated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["integrated"]["no"].add(user)
elif "hd510" in system_information_trimmed:
statistics["gpu"]["intel"]["integrated_gen9"].add(user)
statistics["gpu_raytracing"]["integrated"]["no"].add(user)
statistics["gpu_vrs"]["integrated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["integrated"]["no"].add(user)
elif (
"iris6200" in system_information_trimmed
): # Originally "irispro6200", but we stripped "pro" to make parsing Ryzen PRO easier.
statistics["gpu"]["intel"]["integrated_gen8"].add(user)
statistics["gpu_raytracing"]["integrated"]["no"].add(user)
statistics["gpu_vrs"]["integrated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["integrated"]["no"].add(user)
elif "iris6100" in system_information_trimmed:
statistics["gpu"]["intel"]["integrated_gen8"].add(user)
statistics["gpu_raytracing"]["integrated"]["no"].add(user)
statistics["gpu_vrs"]["integrated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["integrated"]["no"].add(user)
elif "hd6000" in system_information_trimmed:
statistics["gpu"]["intel"]["integrated_gen8"].add(user)
statistics["gpu_raytracing"]["integrated"]["no"].add(user)
statistics["gpu_vrs"]["integrated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["integrated"]["no"].add(user)
elif "hd5600" in system_information_trimmed:
statistics["gpu"]["intel"]["integrated_gen8"].add(user)
statistics["gpu_raytracing"]["integrated"]["no"].add(user)
statistics["gpu_vrs"]["integrated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["integrated"]["no"].add(user)
elif "hd5500" in system_information_trimmed:
statistics["gpu"]["intel"]["integrated_gen8"].add(user)
statistics["gpu_raytracing"]["integrated"]["no"].add(user)
statistics["gpu_vrs"]["integrated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["integrated"]["no"].add(user)
elif "hd5300" in system_information_trimmed:
statistics["gpu"]["intel"]["integrated_gen8"].add(user)
statistics["gpu_raytracing"]["integrated"]["no"].add(user)
statistics["gpu_vrs"]["integrated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["integrated"]["no"].add(user)
elif (
"iris5200" in system_information_trimmed
): # Originally "irispro5200", but we stripped "pro" to make parsing Ryzen PRO easier.
statistics["gpu"]["intel"]["integrated_gen7.5"].add(user)
statistics["gpu_raytracing"]["integrated"]["no"].add(user)
statistics["gpu_vrs"]["integrated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["integrated"]["no"].add(user)
elif "iris5100" in system_information_trimmed:
statistics["gpu"]["intel"]["integrated_gen7.5"].add(user)
statistics["gpu_raytracing"]["integrated"]["no"].add(user)
statistics["gpu_vrs"]["integrated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["integrated"]["no"].add(user)
elif "hd5000" in system_information_trimmed:
statistics["gpu"]["intel"]["integrated_gen7.5"].add(user)
statistics["gpu_raytracing"]["integrated"]["no"].add(user)
statistics["gpu_vrs"]["integrated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["integrated"]["no"].add(user)
elif "hd4600" in system_information_trimmed:
statistics["gpu"]["intel"]["integrated_gen7.5"].add(user)
statistics["gpu_raytracing"]["integrated"]["no"].add(user)
statistics["gpu_vrs"]["integrated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["integrated"]["no"].add(user)
elif "hd4400" in system_information_trimmed:
statistics["gpu"]["intel"]["integrated_gen7.5"].add(user)
statistics["gpu_raytracing"]["integrated"]["no"].add(user)
statistics["gpu_vrs"]["integrated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["integrated"]["no"].add(user)
elif "hd4200" in system_information_trimmed:
statistics["gpu"]["intel"]["integrated_gen7.5"].add(user)
statistics["gpu_raytracing"]["integrated"]["no"].add(user)
statistics["gpu_vrs"]["integrated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["integrated"]["no"].add(user)
elif "hd4000" in system_information_trimmed:
statistics["gpu"]["intel"]["integrated_gen7"].add(user)
statistics["gpu_raytracing"]["integrated"]["no"].add(user)
statistics["gpu_vrs"]["integrated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["integrated"]["no"].add(user)
elif "hd2500" in system_information_trimmed:
statistics["gpu"]["intel"]["integrated_gen7"].add(user)
statistics["gpu_raytracing"]["integrated"]["no"].add(user)
statistics["gpu_vrs"]["integrated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["integrated"]["no"].add(user)
elif "hd3000" in system_information_trimmed:
statistics["gpu"]["intel"]["integrated_gen6"].add(user)
statistics["gpu_raytracing"]["integrated"]["no"].add(user)
statistics["gpu_vrs"]["integrated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["integrated"]["no"].add(user)
elif "hd2000" in system_information_trimmed:
statistics["gpu"]["intel"]["integrated_gen6"].add(user)
statistics["gpu_raytracing"]["integrated"]["no"].add(user)
statistics["gpu_vrs"]["integrated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["integrated"]["no"].add(user)
elif (
"irisxe" in system_information_trimmed
or "intelhd" in system_information_trimmed
):
statistics["gpu"]["intel"]["unknown"].add(user)
for info in user_system_infos:
print(info["user"], " \t", info["system_information"])
print(f"Number of scannable reports: {len(user_system_infos)}")
print()
print(statistics)
if __name__ == "__main__":
main()