Spaces:
Running
Running
GitHub Actions commited on
Commit ·
6df8b38
1
Parent(s): 53e685e
sync from abhijitramesh/webgpu-bench@3b29d4e1c8
Browse files- data/combined.json +3 -3
- js/run/device.js +12 -2
data/combined.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
| 7 |
"platform": "darwin",
|
| 8 |
"arch": "arm",
|
| 9 |
"totalMemoryGB": 4,
|
| 10 |
-
"submittedAt": "2026-04-25T20:
|
| 11 |
"resultCount": 6,
|
| 12 |
"passCount": 6,
|
| 13 |
"llamaCppCommit": null,
|
|
@@ -34,7 +34,7 @@
|
|
| 34 |
"platform": "darwin",
|
| 35 |
"arch": "arm",
|
| 36 |
"totalMemoryGB": 8,
|
| 37 |
-
"submittedAt": "2026-04-25T20:
|
| 38 |
"resultCount": 2,
|
| 39 |
"passCount": 2,
|
| 40 |
"llamaCppCommit": null,
|
|
@@ -58,7 +58,7 @@
|
|
| 58 |
"browsers": [
|
| 59 |
"chromium-147"
|
| 60 |
],
|
| 61 |
-
"generatedAt": "2026-04-25T20:
|
| 62 |
},
|
| 63 |
"results": [
|
| 64 |
{
|
|
|
|
| 7 |
"platform": "darwin",
|
| 8 |
"arch": "arm",
|
| 9 |
"totalMemoryGB": 4,
|
| 10 |
+
"submittedAt": "2026-04-25T20:57:10.721Z",
|
| 11 |
"resultCount": 6,
|
| 12 |
"passCount": 6,
|
| 13 |
"llamaCppCommit": null,
|
|
|
|
| 34 |
"platform": "darwin",
|
| 35 |
"arch": "arm",
|
| 36 |
"totalMemoryGB": 8,
|
| 37 |
+
"submittedAt": "2026-04-25T20:57:10.720Z",
|
| 38 |
"resultCount": 2,
|
| 39 |
"passCount": 2,
|
| 40 |
"llamaCppCommit": null,
|
|
|
|
| 58 |
"browsers": [
|
| 59 |
"chromium-147"
|
| 60 |
],
|
| 61 |
+
"generatedAt": "2026-04-25T20:57:10.784Z"
|
| 62 |
},
|
| 63 |
"results": [
|
| 64 |
{
|
js/run/device.js
CHANGED
|
@@ -153,19 +153,29 @@ export async function describeDevice() {
|
|
| 153 |
let uaArch = null;
|
| 154 |
let uaPlatform = null;
|
| 155 |
let uaPlatformVersion = null;
|
|
|
|
|
|
|
|
|
|
|
|
|
| 156 |
try {
|
| 157 |
const uad = navigator.userAgentData;
|
| 158 |
if (uad?.getHighEntropyValues) {
|
| 159 |
-
const hev = await uad.getHighEntropyValues([
|
|
|
|
|
|
|
| 160 |
uaArch = hev.architecture || null;
|
| 161 |
uaPlatform = hev.platform || null;
|
| 162 |
uaPlatformVersion = hev.platformVersion || null;
|
|
|
|
| 163 |
}
|
| 164 |
} catch { /* not Chromium or denied */ }
|
| 165 |
|
| 166 |
// UA-CH brands give us a clean { brand, version } pair without parsing
|
| 167 |
// the userAgent string. Filter out the "Not(A:Brand)" decoy entries.
|
| 168 |
-
|
|
|
|
|
|
|
|
|
|
| 169 |
.filter(b => b && !/not[^\w]*a[^\w]*brand/i.test(b.brand));
|
| 170 |
|
| 171 |
return {
|
|
|
|
| 153 |
let uaArch = null;
|
| 154 |
let uaPlatform = null;
|
| 155 |
let uaPlatformVersion = null;
|
| 156 |
+
// `fullVersionList` is the high-entropy version of `brands` and gives
|
| 157 |
+
// us the full dotted version (e.g. "147.0.7390.107") instead of just
|
| 158 |
+
// the major. The default `brands` is major-only.
|
| 159 |
+
let fullVersionList = null;
|
| 160 |
try {
|
| 161 |
const uad = navigator.userAgentData;
|
| 162 |
if (uad?.getHighEntropyValues) {
|
| 163 |
+
const hev = await uad.getHighEntropyValues([
|
| 164 |
+
'architecture', 'platform', 'platformVersion', 'fullVersionList',
|
| 165 |
+
]);
|
| 166 |
uaArch = hev.architecture || null;
|
| 167 |
uaPlatform = hev.platform || null;
|
| 168 |
uaPlatformVersion = hev.platformVersion || null;
|
| 169 |
+
fullVersionList = hev.fullVersionList || null;
|
| 170 |
}
|
| 171 |
} catch { /* not Chromium or denied */ }
|
| 172 |
|
| 173 |
// UA-CH brands give us a clean { brand, version } pair without parsing
|
| 174 |
// the userAgent string. Filter out the "Not(A:Brand)" decoy entries.
|
| 175 |
+
// Prefer `fullVersionList` (full dotted version) over the major-only
|
| 176 |
+
// default `brands` list.
|
| 177 |
+
const brandSource = fullVersionList || navigator.userAgentData?.brands || [];
|
| 178 |
+
const brands = brandSource
|
| 179 |
.filter(b => b && !/not[^\w]*a[^\w]*brand/i.test(b.brand));
|
| 180 |
|
| 181 |
return {
|