Improve web interface, add NVIDIA GPU performance scores

This commit is contained in:
Hugo Locurcio
2023-06-30 19:04:34 +02:00
parent 6be44f5e40
commit fdd4a5216f
2 changed files with 274 additions and 84 deletions

View File

@@ -11,9 +11,28 @@
line-height: 1.6;
}
h2 {
border-top: 0.125rem solid hsla(0, 0%, 50%, 0.4);
padding-top: 0.5rem;
h3 {
/* Put subheadings closer to the charts to save vertical space. */
margin-top: -1rem;
margin-bottom: -0.5rem;
/* Line up subheadings with the charts. */
margin-left: 2rem;
}
h3:not(:first-of-type) {
/* Put subsequent subheadings in a block even closer to the chart to save more vertical space. */
margin-top: -3rem;
}
summary {
/* Make accordion titles look more like headings. */
font-weight: bold;
font-size: 1.25rem;
}
.chart-caption {
font-size: 0.9rem;
font-style: italic;
}
</style>
<script src="thirdparty/frappe-charts.umd.min.js"></script>
@@ -147,6 +166,7 @@
labels: Object.keys(dataset).map(label => getRemappedString(label)),
datasets: [{ values: chartDatatype == ChartDatatype.INDIVIDUAL ? Object.values(dataset) : Object.values(dataset).map(subObject => Object.values(subObject).reduce(sum, 0)) }],
},
height: 145, // Make charts slightly more compact (default height is 168 in our case).
type: "percentage",
colors: Object.keys(dataset).map(label => getChartColor(label)),
});
@@ -186,7 +206,7 @@
createChart("#chart-gpu-vrs-integrated", ChartDatatype.INDIVIDUAL, statistics.gpu_vrs.integrated);
createChart("#chart-gpu-mesh-shaders-dedicated", ChartDatatype.INDIVIDUAL, statistics.gpu_mesh_shaders.dedicated);
createChart("#chart-gpu-mesh-shaders-integrated", ChartDatatype.INDIVIDUAL, statistics.gpu_mesh_shaders.integrated);
//createChart("#chart-gpu-passmark", ChartDatatype.INDIVIDUAL, statistics.gpu_passmark_score);
createChart("#chart-gpu-passmark", ChartDatatype.INDIVIDUAL, statistics.gpu_passmark_score);
});
</script>
</head>
@@ -209,100 +229,183 @@
issues with identical hardware/software configuration.
</p>
<h2>Operating system</h2>
<details open>
<summary>Operating system</summary>
<div id="chart-operating-system"></div>
</details>
<h3>Windows version</h3>
<details open>
<summary>Windows version</summary>
<div id="chart-windows-version"></div>
</details>
<h3>macOS version</h3>
<details open>
<summary>macOS version</summary>
<div id="chart-macos-version"></div>
</details>
<h3>Linux distribution</h3>
<details open>
<summary>Linux distribution</summary>
<div id="chart-linux-distribution"></div>
</details>
<h3>Android version</h3>
<details open>
<summary>Android version</summary>
<div id="chart-android-version"></div>
</details>
<h3>iOS version</h3>
<details open>
<summary>iOS version</summary>
<div id="chart-ios-version"></div>
</details>
<h3>Web browser</h3>
<em>The web browser used when reporting issues related to the web editor or web export.</em>
<details open>
<summary>Web browser</summary>
<div id="chart-web-browser"></div>
<div class="chart-caption">
The web browser used when reporting issues related to the web editor or web export.
</div>
</details>
<h2>CPU vendor</h2>
<details open>
<summary>CPU vendor</summary>
<div id="chart-cpu-vendor"></div>
</details>
<h3>AMD CPU generation</h3>
<details open>
<summary>AMD CPU generation</summary>
<div id="chart-cpu-amd"></div>
</details>
<h3>Intel CPU generation</h3>
<em>Laptop CPUs are currently categorized as "Other/Unknown".</em>
<details open>
<summary>Intel CPU generation</summary>
<div id="chart-cpu-intel"></div>
<div class="chart-caption">
Laptop CPUs are currently categorized as "Other/Unknown".
</div>
</details>
<h2>CPU physical core count</h2>
<em>For CPUs with hybrid (big.LITTLE) topologies, both "big" cores and "little" cores are summed together.</em>
<details open>
<summary>CPU physical core count</summary>
<div id="chart-cpu-core-count"></div>
<div class="chart-caption">
For CPUs with hybrid (big.LITTLE) topologies, both "big" cores and "little" cores are summed together.
</div>
</details>
<h2>Highest supported x86 CPU instruction set</h2>
<em>
Support for a new instruction set implies support for older instruction sets. For instance, supporting AVX-512 implies supporting AVX2, AVX and SSE4.2.<br>
Godot currently only requires SSE2 for official binaries, which is supported on all x86_64 CPUs.
</em>
<details open>
<summary>Highest supported x86 CPU instruction set</summary>
<div id="chart-cpu-x86-features"></div>
<div class="chart-caption">
Support for a new instruction set implies support for older instruction sets. For instance, supporting
AVX-512 implies supporting AVX2, AVX and SSE4.2.<br>
Godot currently only requires SSE2 for official binaries, which is supported on all x86_64 CPUs.
</div>
</details>
<!-- <h2>CPU multi-thread performance score</h2>
<em>Scores sourced from <a href="https://www.cpubenchmark.net/">PassMark</a>.</em>
<!-- <details open>
<summary>CPU multi-thread performance score</summary>
<div id="chart-cpu-passmark-multi"></div>
<div class="chart-caption">
Scores are sourced from <a href="https://www.cpubenchmark.net/">PassMark</a>.
</div>
</details>
<h2>CPU single-thread performance score</h2>
<em>Scores sourced from <a href="https://www.cpubenchmark.net/">PassMark</a>.</em>
<div id="chart-cpu-passmark-single"></div> -->
<details open>
<summary>CPU single-thread performance score</summary>
<div id="chart-cpu-passmark-single"></div>
<div class="chart-caption">
Scores are sourced from <a href="https://www.cpubenchmark.net/">PassMark</a>.
</div>
</details> -->
<h2>GPU vendor</h2>
<details open>
<summary>GPU vendor</summary>
<div id="chart-gpu-vendor"></div>
</details>
<h3>AMD GPU generation</h3>
<details open>
<summary>AMD GPU generation</summary>
<div id="chart-gpu-amd"></div>
</details>
<h3>Intel GPU generation</h3>
<details open>
<summary>Intel GPU generation</summary>
<div id="chart-gpu-intel"></div>
</details>
<h3>NVIDIA GPU generation</h3>
<details open>
<summary>NVIDIA GPU generation</summary>
<div id="chart-gpu-nvidia"></div>
</details>
<h2>GPU video memory</h2>
<em>Only dedicated GPUs are taken into account.</em>
<details open>
<summary>GPU video memory</summary>
<div id="chart-gpu-vram"></div>
<div class="chart-caption">
Only dedicated GPUs are taken into account.
</div>
</details>
<h2>GPU hardware-accelerated raytracing support</h2>
<em>
Raytracing is currently not used in Godot.<br>
This metric only checks whether it's supported in hardware, not whether the GPU is fast enough for hardware-accelerated raytracing to be viable for gaming.
</em>
<details open>
<summary>GPU hardware-accelerated raytracing support</summary>
<h3>Dedicated GPUs</h3>
<div id="chart-gpu-raytracing-dedicated"></div>
<h3>Integrated GPUs</h3>
<div id="chart-gpu-raytracing-integrated"></div>
<div class="chart-caption">
Raytracing is currently not used in Godot.
<br><br>
This metric only checks whether it's supported in hardware, not whether the GPU is fast enough for
hardware-accelerated raytracing to be viable for gaming.
</div>
</details>
<h2>GPU variable rate shading support</h2>
<em>Variable rate shading can be optionally used in Godot 4.</em>
<details open>
<summary>GPU variable rate shading support</summary>
<h3>Dedicated GPUs</h3>
<div id="chart-gpu-vrs-dedicated"></div>
<h3>Integrated GPUs</h3>
<div id="chart-gpu-vrs-integrated"></div>
<div class="chart-caption">
Variable rate shading can be optionally used in Godot 4.
</div>
</details>
<h2>GPU mesh shaders support</h2>
<em>Mesh shaders are currently not used in Godot.</em>
<details open>
<summary>GPU mesh shaders support</summary>
<h3>Dedicated GPUs</h3>
<div id="chart-gpu-mesh-shaders-dedicated"></div>
<h3>Integrated GPUs</h3>
<div id="chart-gpu-mesh-shaders-integrated"></div>
<div class="chart-caption">
Mesh shaders are currently not used in Godot.
</div>
</details>
<!-- <h2>GPU performance score</h2>
<em>Scores sourced from <a href="https://www.videocardbenchmark.net/">PassMark</a>.</em>
<div id="chart-gpu-passmark"></div> -->
<details open>
<summary>GPU performance score</summary>
<div id="chart-gpu-passmark"></div>
<div class="chart-caption">
Scores are sourced from <a href="https://www.videocardbenchmark.net/">PassMark</a>.<br>
For reference, here are some example GPUs that roughly match each score threshold:
<ul>
<li><strong>2,500 points:</strong> GeForce GT 1030, GeForce GTX 850M, Radeon HD 8950, Ryzen 5 5600G IGP,
Intel Iris Xe</li>
<li><strong>5,000 points:</strong> GeForce GTX 1050, Quadro P2000 with Max-Q Design, Radeon HD 7970,
Radeon R9 M295X</li>
<li><strong>10,000 points:</strong> GeForce RTX 1060, GeForce RTX 3050 Ti Laptop GPU, Radeon R9 Fury X
</li>
<li><strong>15,000 points:</strong> GeForce GTX 1080, GeForce RTX 2080 Mobile, Radeon RX 6600, Radeon RX
7600S</li>
<li><strong>20,000 points:</strong> GeForce RTX 3060 Ti, GeForce RTX 3080 Ti Laptop GPU, Radeon RX 6700
XT</li>
<li><strong>25,000 points:</strong> GeForce RTX 3080, Radeon RX 6800 XT</li>
<li><strong>30,000 points:</strong> GeForce RTX 3090 Ti, GeForce RTX 4090 Laptop GPU, Radeon RX 7900 XTX
</li>
</ul>
</div>
</details>
<footer>
© 2023-present Hugo Locurcio and contributors<br>

105
main.py
View File

@@ -26,7 +26,7 @@ def main() -> None:
# TODO: Retry requests a few times if they fail.
num_queries = 30
for i in range(num_queries):
print(f"Running query #{i + 1} of {num_queries}...")
print(f"Running query {i + 1}/{num_queries}...")
query = gql(
"""
query($cursor: String) {
@@ -1411,7 +1411,6 @@ def main() -> None:
"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, Athlons and Threadrippers.
@@ -1731,6 +1730,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
statistics["gpu_passmark_score"][">30000"].add(user)
elif (
"4090laptop" in system_information_trimmed
or "4090mobile" in system_information_trimmed
@@ -1740,6 +1740,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
statistics["gpu_passmark_score"]["25000-30000"].add(user)
elif (
"tx4080" in system_information_trimmed
or "geforce4080" in system_information_trimmed
@@ -1750,6 +1751,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
statistics["gpu_passmark_score"][">30000"].add(user)
elif (
"4080laptop" in system_information_trimmed
or "4080mobile" in system_information_trimmed
@@ -1759,6 +1761,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
statistics["gpu_passmark_score"]["25000-30000"].add(user)
elif (
"tx4070ti" in system_information_trimmed
or "geforce4070ti" in system_information_trimmed
@@ -1769,6 +1772,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
statistics["gpu_passmark_score"][">30000"].add(user)
elif (
"tx4070" in system_information_trimmed
or "geforce4070" in system_information_trimmed
@@ -1779,6 +1783,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
statistics["gpu_passmark_score"]["25000-30000"].add(user)
elif (
"4070laptop" in system_information_trimmed
or "4070mobile" in system_information_trimmed
@@ -1788,6 +1793,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
statistics["gpu_passmark_score"]["15000-20000"].add(user)
elif (
"tx4060ti" in system_information_trimmed
or "geforce4060ti" in system_information_trimmed
@@ -1799,6 +1805,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
statistics["gpu_passmark_score"]["20000-25000"].add(user)
elif (
"tx4060" in system_information_trimmed
or "geforce4060" in system_information_trimmed
@@ -1809,6 +1816,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
statistics["gpu_passmark_score"]["15000-20000"].add(user)
elif (
"4060laptop" in system_information_trimmed
or "4060mobile" in system_information_trimmed
@@ -1818,6 +1826,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
statistics["gpu_passmark_score"]["15000-20000"].add(user)
elif (
"4050laptop" in system_information_trimmed
or "4050mobile" in system_information_trimmed
@@ -1827,16 +1836,29 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
statistics["gpu_passmark_score"]["15000-20000"].add(user)
elif (
"tx3090ti" in system_information_trimmed
or "geforce3090ti" in system_information_trimmed
or "nvidia3090ti" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_ampere"].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)
statistics["gpu_passmark_score"]["25000-30000"].add(user)
elif (
"tx3090" 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_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)
statistics["gpu_passmark_score"]["25000-30000"].add(user)
elif (
"tx3080ti" in system_information_trimmed
or "geforce3080ti" in system_information_trimmed
@@ -1847,6 +1869,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
statistics["gpu_passmark_score"]["25000-30000"].add(user)
elif (
"3080tilaptop" in system_information_trimmed
or "3080timobile" in system_information_trimmed
@@ -1856,6 +1879,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
statistics["gpu_passmark_score"]["20000-25000"].add(user)
elif (
"tx3080" in system_information_trimmed
or "geforce3080" in system_information_trimmed
@@ -1867,6 +1891,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
statistics["gpu_passmark_score"]["25000-30000"].add(user)
elif (
"3080laptop" in system_information_trimmed
or "3080mobile" in system_information_trimmed
@@ -1876,6 +1901,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
statistics["gpu_passmark_score"]["15000-20000"].add(user)
elif (
"tx3070ti" in system_information_trimmed
or "geforce3070ti" in system_information_trimmed
@@ -1886,6 +1912,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
statistics["gpu_passmark_score"]["20000-25000"].add(user)
elif (
"3070tilaptop" in system_information_trimmed
or "3070timobile" in system_information_trimmed
@@ -1895,6 +1922,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
statistics["gpu_passmark_score"]["15000-20000"].add(user)
elif (
"tx3070" in system_information_trimmed
or "geforce3070" in system_information_trimmed
@@ -1905,6 +1933,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
statistics["gpu_passmark_score"]["20000-25000"].add(user)
elif (
"3070laptop" in system_information_trimmed
or "3070mobile" in system_information_trimmed
@@ -1914,15 +1943,18 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
statistics["gpu_passmark_score"]["15000-20000"].add(user)
elif (
"3060tilaptop" in system_information_trimmed
or "3060timobile" in system_information_trimmed
"tx3060ti" in system_information_trimmed
or "geforce3060ti" in system_information_trimmed
or "nvidia3060ti" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_ampere"].add(user)
statistics["gpu_vram"]["6_gb"].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)
statistics["gpu_passmark_score"]["20000-25000"].add(user)
elif (
"tx3060" in system_information_trimmed
or "geforce3060" in system_information_trimmed
@@ -1934,6 +1966,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
statistics["gpu_passmark_score"]["15000-20000"].add(user)
elif (
"3060laptop" in system_information_trimmed
or "3060mobile" in system_information_trimmed
@@ -1943,6 +1976,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
statistics["gpu_passmark_score"]["10000-15000"].add(user)
elif (
"3050tilaptop" in system_information_trimmed
or "3050timobile" in system_information_trimmed
@@ -1952,6 +1986,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
statistics["gpu_passmark_score"]["10000-15000"].add(user)
elif (
"tx3050" in system_information_trimmed
or "geforce3050" in system_information_trimmed
@@ -1962,6 +1997,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
statistics["gpu_passmark_score"]["10000-15000"].add(user)
elif (
"3050laptop" in system_information_trimmed
or "3050mobile" in system_information_trimmed
@@ -1972,6 +2008,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
statistics["gpu_passmark_score"]["5000-10000"].add(user)
elif (
"tx2080ti" in system_information_trimmed
or "geforce2080ti" in system_information_trimmed
@@ -1982,6 +2019,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
statistics["gpu_passmark_score"]["20000-25000"].add(user)
elif (
"tx2080super" in system_information_trimmed
or "geforce2080super" in system_information_trimmed
@@ -1992,6 +2030,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
statistics["gpu_passmark_score"]["15000-20000"].add(user)
elif (
"tx2080" in system_information_trimmed
or "geforce2080" in system_information_trimmed
@@ -2002,6 +2041,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
statistics["gpu_passmark_score"]["15000-20000"].add(user)
elif (
"tx2070super" in system_information_trimmed
or "geforce2070super" in system_information_trimmed
@@ -2012,6 +2052,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
statistics["gpu_passmark_score"]["15000-20000"].add(user)
elif (
"tx2070" in system_information_trimmed
or "geforce2070" in system_information_trimmed
@@ -2022,6 +2063,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
statistics["gpu_passmark_score"]["15000-20000"].add(user)
elif (
"tx2060super" in system_information_trimmed
or "geforce2060super" in system_information_trimmed
@@ -2032,16 +2074,21 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["yes"].add(user)
statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
statistics["gpu_passmark_score"]["15000-20000"].add(user)
elif (
"tx2060" in system_information_trimmed
or "geforce2060" in system_information_trimmed
or "nvidia2060" in system_information_trimmed
):
statistics["gpu"]["nvidia"]["dedicated_turing"].add(user)
# Assume 6 GB variant, which is much more widespread than the 12 GB one.
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)
# 6 GB variant is slower than the 12 GB one;
# the 12 GB one is in the 15000-20000 performance bracket.
statistics["gpu_passmark_score"]["10000-15000"].add(user)
elif (
"gtx1660ti" in system_information_trimmed
or "geforce1660ti" in system_information_trimmed
@@ -2052,6 +2099,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
statistics["gpu_passmark_score"]["10000-15000"].add(user)
elif (
"gtx1660super" in system_information_trimmed
or "geforce1660super" in system_information_trimmed
@@ -2062,6 +2110,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
statistics["gpu_passmark_score"]["10000-15000"].add(user)
elif (
"gtx1660" in system_information_trimmed
or "geforce1660" in system_information_trimmed
@@ -2072,6 +2121,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
statistics["gpu_passmark_score"]["10000-15000"].add(user)
elif (
"gtx1650super" in system_information_trimmed
or "geforce1650super" in system_information_trimmed
@@ -2082,6 +2132,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
statistics["gpu_passmark_score"]["10000-15000"].add(user)
elif (
"gtx1650" in system_information_trimmed
or "geforce1650" in system_information_trimmed
@@ -2092,6 +2143,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
statistics["gpu_passmark_score"]["5000-10000"].add(user)
elif (
"gtx1630" in system_information_trimmed
or "geforce1630" in system_information_trimmed
@@ -2102,6 +2154,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
statistics["gpu_vrs"]["dedicated"]["yes"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["yes"].add(user)
statistics["gpu_passmark_score"]["2500-5000"].add(user)
elif (
"gtx1080ti" in system_information_trimmed
or "geforce1080ti" in system_information_trimmed
@@ -2112,6 +2165,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
statistics["gpu_vrs"]["dedicated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
statistics["gpu_passmark_score"]["15000-20000"].add(user)
elif (
"gtx1080" in system_information_trimmed
or "geforce1080" in system_information_trimmed
@@ -2122,6 +2176,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
statistics["gpu_vrs"]["dedicated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
statistics["gpu_passmark_score"]["15000-20000"].add(user)
elif (
"gtx1070ti" in system_information_trimmed
or "geforce1070ti" in system_information_trimmed
@@ -2132,6 +2187,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
statistics["gpu_vrs"]["dedicated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
statistics["gpu_passmark_score"]["10000-15000"].add(user)
elif (
"gtx1070" in system_information_trimmed
or "geforce1070" in system_information_trimmed
@@ -2142,6 +2198,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
statistics["gpu_vrs"]["dedicated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
statistics["gpu_passmark_score"]["10000-15000"].add(user)
elif (
"gtx1060" in system_information_trimmed
or "geforce1060" in system_information_trimmed
@@ -2155,6 +2212,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
statistics["gpu_vrs"]["dedicated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
statistics["gpu_passmark_score"]["10000-15000"].add(user)
elif (
"gtx1050ti" in system_information_trimmed
or "geforce1050ti" in system_information_trimmed
@@ -2165,6 +2223,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
statistics["gpu_vrs"]["dedicated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
statistics["gpu_passmark_score"]["5000-10000"].add(user)
elif (
"gtx1050" in system_information_trimmed
or "geforce1050" in system_information_trimmed
@@ -2175,6 +2234,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
statistics["gpu_vrs"]["dedicated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
statistics["gpu_passmark_score"]["5000-10000"].add(user)
elif (
"gtx980ti" in system_information_trimmed
or "geforce980ti" in system_information_trimmed
@@ -2185,6 +2245,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
statistics["gpu_vrs"]["dedicated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
statistics["gpu_passmark_score"]["10000-15000"].add(user)
elif (
"gtx980" in system_information_trimmed
or "geforce980" in system_information_trimmed
@@ -2195,6 +2256,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
statistics["gpu_vrs"]["dedicated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
statistics["gpu_passmark_score"]["10000-15000"].add(user)
elif (
"gtx970" in system_information_trimmed
or "geforce970" in system_information_trimmed
@@ -2207,6 +2269,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
statistics["gpu_vrs"]["dedicated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
statistics["gpu_passmark_score"]["5000-10000"].add(user)
elif (
"gtx960" in system_information_trimmed
or "geforce960" in system_information_trimmed
@@ -2217,6 +2280,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
statistics["gpu_vrs"]["dedicated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
statistics["gpu_passmark_score"]["5000-10000"].add(user)
elif (
"gtx950" in system_information_trimmed
or "geforce950" in system_information_trimmed
@@ -2227,6 +2291,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
statistics["gpu_vrs"]["dedicated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
statistics["gpu_passmark_score"]["5000-10000"].add(user)
elif (
"gtx750ti" in system_information_trimmed
or "geforce750ti" in system_information_trimmed
@@ -2237,6 +2302,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
statistics["gpu_vrs"]["dedicated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
statistics["gpu_passmark_score"]["2500-5000"].add(user)
elif (
"gtx750" in system_information_trimmed
or "geforce750" in system_information_trimmed
@@ -2247,17 +2313,20 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
statistics["gpu_vrs"]["dedicated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
statistics["gpu_passmark_score"]["2500-5000"].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.
# Dual-GPU card; since Godot doesn't support multi-GPU,
# only account for the VRAM and performance 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)
statistics["gpu_passmark_score"]["5000-10000"].add(user)
elif (
"gtx680" in system_information_trimmed
or "geforce680" in system_information_trimmed
@@ -2268,6 +2337,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
statistics["gpu_vrs"]["dedicated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
statistics["gpu_passmark_score"]["5000-10000"].add(user)
elif (
"gtx670" in system_information_trimmed
or "geforce670" in system_information_trimmed
@@ -2278,6 +2348,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
statistics["gpu_vrs"]["dedicated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
statistics["gpu_passmark_score"]["5000-10000"].add(user)
elif (
"gtx660ti" in system_information_trimmed
or "geforce660ti" in system_information_trimmed
@@ -2288,6 +2359,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
statistics["gpu_vrs"]["dedicated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
statistics["gpu_passmark_score"]["2500-5000"].add(user)
elif (
"gtx660" in system_information_trimmed
or "geforce660" in system_information_trimmed
@@ -2298,6 +2370,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
statistics["gpu_vrs"]["dedicated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
statistics["gpu_passmark_score"]["2500-5000"].add(user)
elif (
"gtx650ti" in system_information_trimmed
or "geforce650ti" in system_information_trimmed
@@ -2308,6 +2381,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
statistics["gpu_vrs"]["dedicated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
statistics["gpu_passmark_score"]["2500-5000"].add(user)
elif (
"gtx650" in system_information_trimmed
or "geforce650" in system_information_trimmed
@@ -2318,18 +2392,21 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
statistics["gpu_vrs"]["dedicated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
statistics["gpu_passmark_score"]["<2500"].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.
# Dual-GPU card; since Godot doesn't support multi-GPU,
# only account for the VRAM and performance 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)
statistics["gpu_passmark_score"]["2500-5000"].add(user)
elif (
"gtx580" in system_information_trimmed
or "geforce580" in system_information_trimmed
@@ -2341,6 +2418,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
statistics["gpu_vrs"]["dedicated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
statistics["gpu_passmark_score"]["2500-5000"].add(user)
elif (
"gtx570" in system_information_trimmed
or "geforce570" in system_information_trimmed
@@ -2352,6 +2430,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
statistics["gpu_vrs"]["dedicated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
statistics["gpu_passmark_score"]["2500-5000"].add(user)
elif (
"gtx560ti" in system_information_trimmed
or "geforce560ti" in system_information_trimmed
@@ -2362,6 +2441,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
statistics["gpu_vrs"]["dedicated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
statistics["gpu_passmark_score"]["2500-5000"].add(user)
elif (
"gtx560" in system_information_trimmed
or "geforce560" in system_information_trimmed
@@ -2372,6 +2452,7 @@ def main() -> None:
statistics["gpu_raytracing"]["dedicated"]["no"].add(user)
statistics["gpu_vrs"]["dedicated"]["no"].add(user)
statistics["gpu_mesh_shaders"]["dedicated"]["no"].add(user)
statistics["gpu_passmark_score"]["2500-5000"].add(user)
elif (
"gtx550ti" in system_information_trimmed
or "geforce550ti" in system_information_trimmed
@@ -2382,13 +2463,19 @@ def main() -> None:
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:
statistics["gpu_passmark_score"]["<2500"].add(user)
elif (
"gt710" in system_information_trimmed
or "geforce710" in system_information_trimmed
or "nvidia710" 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)
statistics["gpu_passmark_score"]["<2500"].add(user)
elif "nvidia" in system_information_trimmed:
statistics["gpu"]["nvidia"]["unknown"].add(user)