Direct RGBA receive: allocation pooling measurements

Configuration and method

The host uses an Apple M2, 8 logical CPUs, 24 GiB of memory and Darwin 23.6.0.

These hardware values come from retained host metadata, not from an in-run sample.

Timing runs use synth.testPattern with pattern 0 and gridSize 4.

Positive and negative controls use pattern 5 and gridSize 16.

The compiled state and shader uniforms match these values before and after each run.

Both configurations use GLSL and write to output o0.

These task-local research fixtures send 1920 × 1080 RGBA packets from Noisedeck A to Noisedeck B.

Native camera publication remains active. B receives direct RGBA over HTTP with a BYOB reader, not through the camera.

BYOB means that the reader supplies a buffer for incoming bytes.

The receiver pooling arm reuses its cleanup notification state and reads image size through the public getter.

The uploader arm also reuses storage for saved GL state and errors. It still queries current GL state before each upload.

Each row describes one complete run. Each run has 180 complete seconds and a separate final partial interval.

Unique pair rates use the full elapsed duration. The observer checks input markers against markers from the same render.

Each context requires fresh positive and poison-negative controls with full pixel comparisons.

Measurement results

RunElapsed sPairsInput uniqueFinal uniqueInput duplicatesFinal duplicatesFinal unique/sInput minFinal minInput <50 sFinal <50 s
BYOB receiver · web180.0143001068610686106860059.361951454555
BYOB receiver · desktop180.0051001074010740107400059.664976424233
Receiver pooling · web180.0112001076810768107680059.818500525200
Receiver pooling · desktop180.0076001074510745107450059.691924484811
Receiver and uploader pooling · web180.0113001068410684106840059.351830323255
Receiver and uploader pooling · desktop180.0118001075310753107530059.734973353511
RunPartial interval msInput uniqueFinal unique
BYOB receiver · web14.29999901
BYOB receiver · desktop5.10000011
Receiver pooling · web11.19999900
Receiver pooling · desktop7.60000000
Receiver and uploader pooling · web11.29999911
Receiver and uploader pooling · desktop11.79999911
RunInput mean age msInput max age msFinal mean age msFinal max age ms
BYOB receiver · web26.03821627.308217
BYOB receiver · desktop20.46518321.689184
Receiver pooling · web29.49413330.700134
Receiver pooling · desktop20.03216421.234165
Receiver and uploader pooling · web25.97016527.244167
Receiver and uploader pooling · desktop31.26118032.437182
web complete-second counts on a zero to sixty-six scale
Web: final unique counts for each complete second. The partial interval appears only in the table. Open the full-size web chart.
desktop complete-second counts on a zero to sixty-six scale
Desktop: final unique counts for each complete second. The partial interval appears only in the table. Open the full-size desktop chart.
RunA browserB browserAC samplesAC observations
BYOB receiver · webChrome/152.0.7977.83Chrome/152.0.7977.8355
BYOB receiver · desktopChrome/148.0.7778.180Chrome/148.0.7778.18055
Receiver pooling · webChrome/152.0.7977.83Chrome/152.0.7977.8355
Receiver pooling · desktopChrome/148.0.7778.180Chrome/148.0.7778.18055
Receiver and uploader pooling · webChrome/152.0.7977.83Chrome/152.0.7977.8355
Receiver and uploader pooling · desktopChrome/148.0.7778.180Chrome/148.0.7778.18055
RunController start UTCController finish UTC
BYOB receiver · web2026-09-09T04:29:47.779Z2026-09-09T04:33:05.697Z
BYOB receiver · desktop2026-09-09T03:44:48.663Z2026-09-09T03:48:04.134Z
Receiver pooling · web2026-09-09T04:51:19.932Z2026-09-09T04:54:37.370Z
Receiver pooling · desktop2026-09-09T04:56:24.368Z2026-09-09T04:59:41.056Z
Receiver and uploader pooling · web2026-09-09T05:10:47.690Z2026-09-09T05:14:08.799Z
Receiver and uploader pooling · desktop2026-09-09T05:14:08.964Z2026-09-09T05:17:28.580Z
RunNative lifetime sNative partial cell nsSlow eventsRetainedOverwritten
BYOB receiver · web186.6400046400035001191190
BYOB receiver · desktop186.38628038627954268680
Receiver pooling · web186.16273816273770835350
Receiver pooling · desktop186.20939320939333352520
Receiver and uploader pooling · web188.12063012063045883830
Receiver and uploader pooling · desktop186.83596083596041732320
RunNative stageCountMean msMax ms
BYOB receiver · webingestGap1106616.850696156.965000
BYOB receiver · webtapCopy109880.74480046.000000
BYOB receiver · webcameraPublish110660.74555498.768000
BYOB receiver · webwriteSubmit109863.69635956.443000
BYOB receiver · webwriteCallback109863.75973456.448000
BYOB receiver · webackCallback1098513.998458148.717000
BYOB receiver · desktopingestGap1110116.779492169.967000
BYOB receiver · desktoptapCopy110270.7285515.590000
BYOB receiver · desktopcameraPublish111010.73275014.808000
BYOB receiver · desktopwriteSubmit110272.55967958.557000
BYOB receiver · desktopwriteCallback110272.59102058.935000
BYOB receiver · desktopackCallback1102611.349618164.140000
Receiver pooling · webingestGap1113016.714093118.081000
Receiver pooling · webtapCopy110700.69677311.032000
Receiver pooling · webcameraPublish111300.67105019.878000
Receiver pooling · webwriteSubmit110694.07845138.404000
Receiver pooling · webwriteCallback110694.17443538.413000
Receiver pooling · webackCallback1106815.527268100.021000
Receiver pooling · desktopingestGap1111216.746222153.023000
Receiver pooling · desktoptapCopy110480.73251616.811000
Receiver pooling · desktopcameraPublish111120.73961956.057000
Receiver pooling · desktopwriteSubmit110472.46091718.655000
Receiver pooling · desktopwriteCallback110472.49137818.659000
Receiver pooling · desktopackCallback1104611.116840124.490000
Receiver and uploader pooling · webingestGap1113616.880272166.182000
Receiver and uploader pooling · webtapCopy109840.69504510.464000
Receiver and uploader pooling · webcameraPublish111360.74214622.365000
Receiver and uploader pooling · webwriteSubmit109843.66725131.115000
Receiver and uploader pooling · webwriteCallback109843.72932031.121000
Receiver and uploader pooling · webackCallback1098313.79868568.831000
Receiver and uploader pooling · desktopingestGap1115416.737052186.310000
Receiver and uploader pooling · desktoptapCopy110550.4601903.718000
Receiver and uploader pooling · desktopcameraPublish111540.52940817.143000
Receiver and uploader pooling · desktopwriteSubmit110544.17796821.516000
Receiver and uploader pooling · desktopwriteCallback110544.26034838.190000
Receiver and uploader pooling · desktopackCallback1105316.03704962.232000

The tables retain input and final counts separately. The plots show every complete second without smoothing.

Each plot uses its own B page clock. The plots do not align separate runs in wall time.

These runs do not establish a consistent benefit for frame gaps.

Failed attempts

BYOB receiver · web · web-observe180-byobv1-a1.

The source renderer stopped during the run. The cause remains unresolved.

The recorded failure stage is measurement. Overall cleanup complete is false.

Receiver pooling · desktop · desktop-observe180-poolv1-a1.

The controller received the wrong negative-control path. It rejected the attempt before measurement.

The recorded failure stage is host-power. Overall cleanup complete is true.

Limitations

The runs occurred sequentially. They do not establish a causal ranking or repeatability.

These results do not establish performance of the released product, external camera delivery or hours-long operation.

The tests do not isolate garbage collection as the cause of any frame gap.

Marker observation adds diagnostic work. Its allocation costs differ from those of the product renderer.

Power checks sample AC status at controller cuts. They do not provide continuous power measurements.

Native stage totals include setup and cleanup. They use a separate monotonic clock and do not share the B measurement interval.

Native slow-event retention can overwrite earlier events. The table retains the actual loss count.

Source references

Hardware and source configuration proofs · Metrics and source digests · Report text · Checksums

RunResult SHA-256
BYOB receiver · web57a3a6df0d4a8e8e0d35a8d1a980ae62b1ed0571e4af1c2a4a58fb100a9b5de3
BYOB receiver · desktop5156e1af56b29b43cb05b0378e3b8b8e80a88a9bbb7490d25c66e027af7b38df
Receiver pooling · webe55cf112df3e85ec6956418f883a5573269ff3102db1dfcfa8608976a069df81
Receiver pooling · desktop7e9ada5c6bf769499f6abd89f1a3f85d821bb3f1f73e01b3bc13afd7544f4333
Receiver and uploader pooling · webabfeb46bf53ebc54ccebe7e6a5f21f69f5a65736322e8510db34835a52866b3f
Receiver and uploader pooling · desktop6a49a012699af867352f5fdbcbd41af63abfbde56c54b077eb5d6e4d317cb395

The metrics include result, control, source-manifest, journal and native-receipt digests.

SHA256SUMS identifies every public file. The report does not include the private receipts.