Direct RGBA receive: allocation pooling, round two

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.

The ACK and source-encoder arms extend the uploader independently.

The ACK arm retains the acknowledgement header writer and its fixed generation.

The source-encoder arm retains fixed frame-encoding views and uses a stable completion callback.

The source-encoder arm does not include the ACK pooling change.

The native-message arm uses the original BYOB browser and a different native executable.

The Message-vector pool retains empty message slots. The existing decoder still reuses its non-sensitive payload buffer.

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

The late BYOB web reference repeat appears separately. It does not replace the earlier baseline.

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

Each arm has same-context positive and poison-negative controls with full pixel comparisons.

The new arms use fresh controls.

The late BYOB reference reuses and revalidates the exact original web controls. It has no new pixel controls or five-second qualification.

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
Receiver, uploader and ACK pooling · web180.0067001003410034100340055.74237022222828
Receiver, uploader and ACK pooling · desktop180.0098001074810748107480059.707860454522
Receiver, uploader and source-encoder pooling · web180.0138009841984198410054.66803128283333
Receiver, uploader and source-encoder pooling · desktop180.0135001055410554105540058.628936282888
Native message pooling with the BYOB receiver · web180.0208001023210232102320056.83787716162222
Native message pooling with the BYOB receiver · desktop180.0105001056110561105610058.668800343499
BYOB receiver · reference repeat · web180.0206001015710157101570056.42132119192323
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
Receiver, uploader and ACK pooling · web6.70000111
Receiver, uploader and ACK pooling · desktop9.80000111
Receiver, uploader and source-encoder pooling · web13.79999911
Receiver, uploader and source-encoder pooling · desktop13.50000001
Native message pooling with the BYOB receiver · web20.80000122
Native message pooling with the BYOB receiver · desktop10.50000011
BYOB receiver · reference repeat · web20.60000012
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
Receiver, uploader and ACK pooling · web28.61721530.125217
Receiver, uploader and ACK pooling · desktop29.63218330.898184
Receiver, uploader and source-encoder pooling · web29.15429830.792300
Receiver, uploader and source-encoder pooling · desktop28.59926530.031267
Native message pooling with the BYOB receiver · web29.84536631.251368
Native message pooling with the BYOB receiver · desktop31.19226632.530268
BYOB receiver · reference repeat · web31.05834932.479350
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
Receiver, uploader and ACK pooling · webChrome/152.0.7977.83Chrome/152.0.7977.8355
Receiver, uploader and ACK pooling · desktopChrome/148.0.7778.180Chrome/148.0.7778.18055
Receiver, uploader and source-encoder pooling · webChrome/152.0.7977.83Chrome/152.0.7977.8355
Receiver, uploader and source-encoder pooling · desktopChrome/148.0.7778.180Chrome/148.0.7778.18055
Native message pooling with the BYOB receiver · webChrome/152.0.7977.83Chrome/152.0.7977.8355
Native message pooling with the BYOB receiver · desktopChrome/148.0.7778.180Chrome/148.0.7778.18055
BYOB receiver · reference repeat · webChrome/152.0.7977.83Chrome/152.0.7977.8355
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
Receiver, uploader and ACK pooling · web2026-09-09T05:35:43.888Z2026-09-09T05:39:04.634Z
Receiver, uploader and ACK pooling · desktop2026-09-09T05:39:04.813Z2026-09-09T05:42:24.986Z
Receiver, uploader and source-encoder pooling · web2026-09-09T05:58:28.136Z2026-09-09T06:01:49.630Z
Receiver, uploader and source-encoder pooling · desktop2026-09-09T06:01:49.818Z2026-09-09T06:05:10.917Z
Native message pooling with the BYOB receiver · web2026-09-09T06:19:08.784Z2026-09-09T06:22:28.259Z
Native message pooling with the BYOB receiver · desktop2026-09-09T06:22:28.446Z2026-09-09T06:25:49.504Z
BYOB receiver · reference repeat · web2026-09-09T06:25:56.669Z2026-09-09T06:29:17.968Z
RunBrowser parentNative implementationNative SHA-256
BYOB receiver · webbaseoriginal-byobf809442eecf292fbfdb91eb51af5e5d4ec7dc7f44e2b4dfe169eddab5316416e
BYOB receiver · desktopbaseoriginal-byobf809442eecf292fbfdb91eb51af5e5d4ec7dc7f44e2b4dfe169eddab5316416e
Receiver pooling · webbyoboriginal-byobf809442eecf292fbfdb91eb51af5e5d4ec7dc7f44e2b4dfe169eddab5316416e
Receiver pooling · desktopbyoboriginal-byobf809442eecf292fbfdb91eb51af5e5d4ec7dc7f44e2b4dfe169eddab5316416e
Receiver and uploader pooling · webpooloriginal-byobf809442eecf292fbfdb91eb51af5e5d4ec7dc7f44e2b4dfe169eddab5316416e
Receiver and uploader pooling · desktoppooloriginal-byobf809442eecf292fbfdb91eb51af5e5d4ec7dc7f44e2b4dfe169eddab5316416e
Receiver, uploader and ACK pooling · webuploadoriginal-byobf809442eecf292fbfdb91eb51af5e5d4ec7dc7f44e2b4dfe169eddab5316416e
Receiver, uploader and ACK pooling · desktopuploadoriginal-byobf809442eecf292fbfdb91eb51af5e5d4ec7dc7f44e2b4dfe169eddab5316416e
Receiver, uploader and source-encoder pooling · webuploadoriginal-byobf809442eecf292fbfdb91eb51af5e5d4ec7dc7f44e2b4dfe169eddab5316416e
Receiver, uploader and source-encoder pooling · desktopuploadoriginal-byobf809442eecf292fbfdb91eb51af5e5d4ec7dc7f44e2b4dfe169eddab5316416e
Native message pooling with the BYOB receiver · webbyobmessage-batch-storage-poold7edd7d1a17ba5fcab3f44aa93b4904b799998917cdaee1dd6cf3cd1ab04b713
Native message pooling with the BYOB receiver · desktopbyobmessage-batch-storage-poold7edd7d1a17ba5fcab3f44aa93b4904b799998917cdaee1dd6cf3cd1ab04b713
BYOB receiver · reference repeat · webbaseoriginal-byobf809442eecf292fbfdb91eb51af5e5d4ec7dc7f44e2b4dfe169eddab5316416e
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
Receiver, uploader and ACK pooling · web187.04731847318458524256268
Receiver, uploader and ACK pooling · desktop186.93216493216441646460
Receiver, uploader and source-encoder pooling · web188.446475446474917642256386
Receiver, uploader and source-encoder pooling · desktop187.051914519140831471470
Native message pooling with the BYOB receiver · web186.962272962271917400256144
Native message pooling with the BYOB receiver · desktop186.9445639445626251481480
BYOB receiver · reference repeat · web187.121889121889250436256180
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
Receiver, uploader and ACK pooling · webingestGap1044517.894644222.337000
Receiver, uploader and ACK pooling · webtapCopy103350.75045547.513000
Receiver, uploader and ACK pooling · webcameraPublish104450.84444633.220000
Receiver, uploader and ACK pooling · webwriteSubmit103354.38047580.900000
Receiver, uploader and ACK pooling · webwriteCallback103354.52391580.906000
Receiver, uploader and ACK pooling · webackCallback1033415.159625131.200000
Receiver, uploader and ACK pooling · desktopingestGap1115316.746467135.636000
Receiver, uploader and ACK pooling · desktoptapCopy110500.46695437.730000
Receiver, uploader and ACK pooling · desktopcameraPublish111530.5417276.372000
Receiver, uploader and ACK pooling · desktopwriteSubmit110504.12278896.300000
Receiver, uploader and ACK pooling · desktopwriteCallback110504.20285296.320000
Receiver, uploader and ACK pooling · desktopackCallback1104915.39673796.967000
Receiver, uploader and source-encoder pooling · webingestGap1030918.266421277.969000
Receiver, uploader and source-encoder pooling · webtapCopy101410.815552127.633000
Receiver, uploader and source-encoder pooling · webcameraPublish103091.01093431.651000
Receiver, uploader and source-encoder pooling · webwriteSubmit101394.910669244.205000
Receiver, uploader and source-encoder pooling · webwriteCallback101395.026554244.212000
Receiver, uploader and source-encoder pooling · webackCallback1013815.307543276.758000
Receiver, uploader and source-encoder pooling · desktopingestGap1097517.028635271.647000
Receiver, uploader and source-encoder pooling · desktoptapCopy108640.50430628.433000
Receiver, uploader and source-encoder pooling · desktopcameraPublish109750.61116133.591000
Receiver, uploader and source-encoder pooling · desktopwriteSubmit108563.99022080.065000
Receiver, uploader and source-encoder pooling · desktopwriteCallback108564.064945114.850000
Receiver, uploader and source-encoder pooling · desktopackCallback1085514.874052179.861000
Native message pooling with the BYOB receiver · webingestGap1064217.555259205.955000
Native message pooling with the BYOB receiver · webtapCopy105370.65449442.208000
Native message pooling with the BYOB receiver · webcameraPublish106420.77487085.109000
Native message pooling with the BYOB receiver · webwriteSubmit105314.814113117.539000
Native message pooling with the BYOB receiver · webwriteCallback105314.941748117.622000
Native message pooling with the BYOB receiver · webackCallback1053115.618339172.753000
Native message pooling with the BYOB receiver · desktopingestGap1096917.031413230.017000
Native message pooling with the BYOB receiver · desktoptapCopy108620.48655617.430000
Native message pooling with the BYOB receiver · desktopcameraPublish109690.61402743.582000
Native message pooling with the BYOB receiver · desktopwriteSubmit108624.49956452.289000
Native message pooling with the BYOB receiver · desktopwriteCallback108624.57466252.303000
Native message pooling with the BYOB receiver · desktopackCallback1086116.013571230.865000
BYOB receiver · reference repeat · webingestGap1054117.737762314.697000
BYOB receiver · reference repeat · webtapCopy104340.59830990.651000
BYOB receiver · reference repeat · webcameraPublish105410.75610467.384000
BYOB receiver · reference repeat · webwriteSubmit104344.975384135.324000
BYOB receiver · reference repeat · webwriteCallback104345.061196135.331000
BYOB receiver · reference repeat · webackCallback1043415.888781147.939000

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.

The table describes individual runs. It does not estimate the effect of each code change.

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 three-minute observations do not establish sustained 60 frames/s.

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.

Separate renderer and pressure diagnostic drafts are not part of these throughput comparisons.

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
Receiver, uploader and ACK pooling · webb74b2dc7e9645105505f7ffc5ae698eec7b826062b142b4b4747eb847f96920d
Receiver, uploader and ACK pooling · desktop01bde21d34c439a2867ba22dac66b482845436e426dee356f5fe78ca66c43d94
Receiver, uploader and source-encoder pooling · webfd82e4f7ae99f841c18c97b25eda909957709c2362814c38b199716b59958583
Receiver, uploader and source-encoder pooling · desktopcafee69dc92ae082c8cd0431f802c52678aaa5735dfca03b8fdaf06a52bd310c
Native message pooling with the BYOB receiver · web987ca5b99db5885050658a2fc2bb6b13b89cc1219a87edff56b45d7721531977
Native message pooling with the BYOB receiver · desktopd583a7f22d936a3f0663404efd76b792df1c4bad0bcc14628bd51c7e3c2c4079
BYOB receiver · reference repeat · web0bb20392ce70ccf63826423ab7cad6e310c443992001566ea0e40b4efc396b56

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.