gpu-atlas 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -15,7 +15,7 @@ device description it is about.
15
15
  | | desktop | tablet | phone |
16
16
  |---|---|---|---|
17
17
  | GPU | NVIDIA Lovelace | Apple | Adreno 7xx |
18
- | browser | Chrome 151 | Safari 26.6 | Samsung Internet 30 |
18
+ | browser | Chrome 151, Edge 152 | Safari 26.6 | Samsung Internet 30 |
19
19
  | OS | Windows | iPadOS | Android 16 |
20
20
 
21
21
  The tablet is an iPad, and finding that out took longer than it should have.
@@ -72,6 +72,30 @@ phone reports `rgba8unorm` — an easy thing to build on and have fail on phones
72
72
  `maxStorageBufferBindingSize` spans 16x (2.1GB / 716MB / 134MB) and
73
73
  `maxBufferSize` 3x.
74
74
 
75
+ ### The browser barely matters; the device does
76
+
77
+ Chrome and Edge on the same machine, same GPU, same driver:
78
+
79
+ | benchmark | Chrome 151 | Edge 152 | ratio |
80
+ |---|---:|---:|---:|
81
+ | triangle throughput | 4,246 MTri/s | 3,906 | 1.09x |
82
+ | texture sampling | 254 GSample/s | 241 | 1.06x |
83
+ | bind group switching | 4,067,797 /s | 4,353,742 | 1.07x |
84
+ | fill rate | 127,117 MPixel/s | 132,129 | 1.04x |
85
+ | fragment ALU | 3,122 MPixel/s | 2,994 | 1.04x |
86
+ | pipeline switching | 1,904,762 /s | 2,170,543 | 1.14x |
87
+
88
+ Everything lands within 1.14x, against the 65x that separates devices. Draw call
89
+ overhead appeared to differ by 1.63x — but the Chrome run of that benchmark came
90
+ back flagged `unreliable` at 21% variation, so the one axis that looked
91
+ interesting is the one the tool declines to stand behind. That is the flag
92
+ working, not a finding.
93
+
94
+ Two caveats worth stating: this is Chrome 151 against Edge on Chromium 152, so
95
+ it is not a clean same-version comparison, and Edge declares
96
+ `subgroup-size-control` where Chrome 151 does not — a feature that moved between
97
+ Chromium releases rather than anything Edge added. Declared limits are identical.
98
+
75
99
  ### Browsers quantize GPU timestamps, and by different amounts
76
100
 
77
101
  `timestamp-query` results are rounded into buckets as a Spectre mitigation.
@@ -80,10 +104,11 @@ Measured rather than assumed:
80
104
  | | GPU timer | `performance.now()` |
81
105
  |---|---|---|
82
106
  | Chrome 151 | 65,536 ns (2^16) | 0.1 ms |
107
+ | Edge 152 | 65,536 ns (2^16) | 0.1 ms |
83
108
  | Samsung Internet 30 | 65,536 ns (2^16) | 0.1 ms |
84
109
  | Safari 26.6 | no quantization detected | 1 ms |
85
110
 
86
- Both Chromium browsers return exactly 2^16 despite different GPU vendors and
111
+ All three Chromium browsers return exactly 2^16 across two GPU vendors and two
87
112
  operating systems, while WebKit does not quantize the GPU timer at all — this is
88
113
  browser policy, not hardware.
89
114