Direct RGBA receive: fixed source encoder

Configuration and method

These tests use an instrumented research fixture. Noisedeck A sends 1920 × 1080 RGBA packets through Sync to Noisedeck B.

Native camera publication remains active. B receives direct RGBA through an HTTP BYOB reader.

SCALAR is the parent fixture. ENCODER adds a private fixed-descriptor encoder and retained packet views to the source sink.

The parent decoder and ACK scalar changes remain in both arms. Both arms use the same native executable. Receiver credit remains one.

Each source packet contains 8,294,400 pixel bytes and a 64-byte header. Both source limits are 16,588,928 bytes.

The encoder still copies each payload into the packet. It does not remove that full-frame copy or the source readback.

The private encoder checks sequence and timestamp values on each call. Descriptor changes rebuild its retained state.

The source sink retains its pressure checks, actual send-return accounting and synchronous buffer ownership.

The tests use GLSL and synth.testPattern. Timing uses pattern 0 with gridSize 4. Pixel controls use pattern 5 with gridSize 16.

The source, compiled pattern and uniforms passed their existing identity checks.

Retained host metadata identifies an Apple M2, eight logical CPUs, 24 GiB of memory and Darwin 23.6.0.

This metadata is not an in-run thermal or frequency measurement.

All recorded power samples show AC power. The samples do not prove continuous AC power between reads.

ArmContextA browserB browserStart UTCEnd UTC
SCALARwebChrome/152.0.7977.83Chrome/152.0.7977.832026-09-09T08:37:45.290Z2026-09-09T08:41:03.603Z
SCALARdesktopChrome/148.0.7778.180Chrome/148.0.7778.1802026-09-09T08:46:04.735Z2026-09-09T08:49:29.303Z
ENCODERwebChrome/152.0.7977.83Chrome/152.0.7977.832026-09-09T10:15:05.256Z2026-09-09T10:18:25.023Z
ENCODERdesktopChrome/148.0.7778.180Chrome/148.0.7778.1802026-09-09T10:18:25.235Z2026-09-09T10:21:51.980Z

Measurement results

The report includes 16 valid runs and one rejected startup attempt. Each arm has web and desktop positive, poison-negative, five-second and three-minute runs.

The eight pixel controls passed. Each accepted observation refers to the exact controls for its arm and context.

The four long observations contain 720 complete seconds and four partial tails. The four short observations contain 20 complete seconds and their tails.

Input and final markers must match within the same render. Rates use each complete measurement interval, including its partial tail.

SCALAR web has no complete seconds below 50. ENCODER web has six, including one second with zero input and final pairs.

The ENCODER web cells starting at seconds 65 through 69 contain 14, 0, 19, 14 and 16 pairs.

The cell starting at second 149 contains 47 pairs. These cells remain in the totals and diagrams.

SCALAR desktop has five complete seconds below 50. ENCODER desktop has two. This does not establish sustained 60 frames/s.

ArmContextUnique pairsElapsed sInput pairs/sFinal pairs/sInput minFinal minInput seconds below 50Final seconds below 50
SCALARweb10776180.01210059.86264359.862643505000
SCALARdesktop10443180.00610058.01470158.014701404055
ENCODERweb10473180.00810058.18071558.1807150066
ENCODERdesktop10642180.01210059.11824859.118248434322
ArmContextRunDiagnosticScopeResult SHA256
SCALARwebpositivePassPixel control478d98a21834180f0a9bbc070e30a9b81f0947fa19fe5d2e725b77ead75ffdee
SCALARwebnegativePassPixel control87164487775bc6196c5ba9aa80cf1252632c15e5342065054a5abeca6f5a9059
SCALARwebobserve5PassObservationece0ac55d80f886a34be2f2117a695d531969e0a6a810b6cba9c9a5510c09eac
SCALARwebobserve180PassObservationfac92cd1fd7f1f0c685db9346eaefb5db4abbd0e1bdfae31a79ad03413107267
SCALARdesktoppositivePassPixel control729a8601e7426fadd816728b8aaf4518a93a7ff384ffc6038ddb02b4bd1a170b
SCALARdesktopnegativePassPixel controlbfa03c492fdd2af7e5ee3b75618deb234f187130b430cf71b0e5c903b9404a56
SCALARdesktopobserve5PassObservation7b2267d354d559bfe2c024d0e6c5cca53ff26759f06f9694ac386f3d9a9decc1
SCALARdesktopobserve180PassObservationa88b43811a3d67b971630e91d0164640d05d03a8d31d034b26df92e7aa7afb25
ENCODERwebpositivePassPixel control08a9fb1634706cc5a91c197dd260a102446a5a982318154af7c8c3053e9c1560
ENCODERwebnegativePassPixel control44322db4fb40896065e8c22ef00ae2171c75c24eba7fc3929e0d128526274dfc
ENCODERwebobserve5PassObservationab412c8ee9eb8b8b981c196ba7335d95dc451f8db07cf94d774f63372a041a8f
ENCODERwebobserve180PassObservationb69c3ea71da1f3c6c11a1c9ec72ee53df7cb38a96c2f7c53f7e72965d78c3e0a
ENCODERdesktoppositivePassPixel control748de7b6b93ad2c14f03a5c4ba8de55fac299300b169d4ff79dfff618a816c00
ENCODERdesktopnegativePassPixel control686adf12e15fec1f9ca613d578e74fa65b4fa3228604b52b4734d79b7b156b7b
ENCODERdesktopobserve5PassObservationea89cd8431f3ce5203b336ecdd4c8ed469301e8fb5d86d28c030d0ffe8cf9d61
ENCODERdesktopobserve180PassObservationbf0452194ea997db07d6e316763dc28bdd39e07179d87282c1f8cb1a8144a77e
ArmContextShort pairsElapsed msPairs/sInput minFinal minInput below 50Final below 50
SCALARweb3005006.69999885559159.919708606000
SCALARdesktop288500657.530963515100
ENCODERweb3005005.1000003814759.938862606000
ENCODERdesktop300500959.892194605900
ArmContextTail msInput tail pairsFinal tail pairsInput duplicatesFinal duplicates
SCALARweb12.1000003814697270000
SCALARdesktop6.1000003814697270000
ENCODERweb8.0999984741210941100
ENCODERdesktop12.1000003814697270100
Open full-size diagramB clocks remain separate. Input: dashed orange. Final: solid blue. All 720 complete seconds use a 0–66 scale. Dotted lines mark 50 and 60. Partial tails remain in the table.
B clocks remain separate. Input: dashed orange. Final: solid blue. All 720 complete seconds use a 0–66 scale. Dotted lines mark 50 and 60. Partial tails remain in the table.

Source pressure

The source checks its byte limit at admission, before encoding and after encoding.

A check rejects additional bytes above the limit. It also rejects observed queued bytes above the limit minus those additional bytes.

The remaining allowance is 8,294,464 bytes in both arms.

The recorder stores positive checks and actual drops. It does not store timed buffer values for passed checks.

SCALAR recorded 19 web drops and 128 desktop drops. ENCODER recorded 56 web drops and 101 desktop drops.

ENCODER web recorded 37 admission drops and 19 before encoding. Desktop recorded 64 and 37 in those phases.

No measured run recorded a drop after encoding. The tables retain all three phases.

A positive check and its actual drop are separate records for one decision. Drop counts include only actual drop records.

The inclusive byte thresholds describe observed positive checks. They do not predict delivery under another limit.

Each pressure diagram uses its own A clock. Each delivery diagram uses its own B clock.

A frame sequence can join identities across processes. It does not establish latency or simultaneous timing.

ArmContextA elapsed sOffersAcceptedReadsSentBusyPressure dropsPending change
SCALARweb180.06910000038147108051079210792107860190
SCALARdesktop180.07840000152591080510729107291067701280
ENCODERweb180.06480000114442105661052910529105100560
ENCODERdesktop180.0861080510741107411070401010
ArmContextPhaseChecksPassedPositiveActual dropsBuffer not read
SCALARwebAdmission108051079213130
SCALARwebBefore encoding1079210786660
SCALARwebAfter encoding1078610786000
SCALARdesktopAdmission108051072976760
SCALARdesktopBefore encoding107291067752520
SCALARdesktopAfter encoding1067710677000
ENCODERwebAdmission105661052937370
ENCODERwebBefore encoding105291051019190
ENCODERwebAfter encoding1051010510000
ENCODERdesktopAdmission108051074164640
ENCODERdesktopBefore encoding107411070437370
ENCODERdesktopAfter encoding1070410704000
ArmContextPhaseObservedMin bytesMedian bytesP95 bytesMax bytes≤64KiB≤256KiB≤1MiB≤one packet
SCALARwebAdmission1384752081000574412260992122609920000
SCALARwebBefore encoding688333121000574412260992122609920000
SCALARwebAfter encoding00000
SCALARdesktopAdmission7683316561033776813715760148947600000
SCALARdesktopBefore encoding528331656979812013575928148947600000
SCALARdesktopAfter encoding00000
ENCODERwebAdmission3784384001103892016199864164579280000
ENCODERwebBefore encoding1987484721095453616199864161998640000
ENCODERwebAfter encoding00000
ENCODERdesktopAdmission6483813441031753613490648145877760000
ENCODERdesktopBefore encoding3783813441111361613904088145877760000
ENCODERdesktopAfter encoding00000
Open full-size diagramA clocks remain separate. Points show positive checks only. Shapes identify phases. Dashed lines mark each remaining allowance. Dotted lines mark each source limit. There is no continuous buffer trace.
A clocks remain separate. Points show positive checks only. Shapes identify phases. Dashed lines mark each remaining allowance. Dotted lines mark each source limit. There is no continuous buffer trace.
Open full-size diagramA clocks remain separate. Each bar includes actual drops in that second or partial tail. Colors separate phases. Positive-check records do not add another drop.
A clocks remain separate. Each bar includes actual drops in that second or partial tail. Colors separate phases. Positive-check records do not add another drop.

Startup and diagnostic work

The raw data retains startup, warmup and cleanup events. These events do not enter the measured drop counts.

Startup generation history remains in the data. Measurement intervals use each source binding.

All accepted pressure journals have zero unread gaps. Ring overwrite counts remain explicit.

Each long observation has 21 pressure cuts. Each cut has a 250 ms deadline for capture, pressure drains and pressure-journal writes.

Cut durations include controller waiting and I/O. They are not CPU costs or measured effects on rendering.

Existing source checks and source-journal writes occur outside that pressure-cut deadline.

The recorder retains 393,312 bytes of numeric storage. Positive checks and drops add clock reads.

Constructor-count tests check the targeted encoder changes. They do not measure total allocation, retained heap or garbage collection.

ArmContextScopeEventsPositiveDropsGenerations
SCALARwebstartup000None
SCALARwebwarmup000None
SCALARwebmeasurement3819192
SCALARwebcleanup000None
SCALARweblifetime3819192
SCALARdesktopstartup000None
SCALARdesktopwarmup000None
SCALARdesktopmeasurement2561281282
SCALARdesktopcleanup000None
SCALARdesktoplifetime2561281282
ENCODERwebstartup000None
ENCODERwebwarmup000None
ENCODERwebmeasurement11256562
ENCODERwebcleanup000None
ENCODERweblifetime11256562
ENCODERdesktopstartup000None
ENCODERdesktopwarmup000None
ENCODERdesktopmeasurement2021011012
ENCODERdesktopcleanup000None
ENCODERdesktoplifetime2021011012
ArmContextCutsTotal cut msMaximum cut msUnread gapsOverwritesObserved AC samples
SCALARweb2148.407374000003984.875458000024082005
SCALARdesktop21187.5627059999878814.617708000005223005
ENCODERweb21135.428707000017328.71366599999601005
ENCODERdesktop2190.735042999986048.904167000000598005

Rejected attempt

SCALAR desktop-observe180-scalarv1-a1 failed before native startup or measurement. It has no accepted rate or pressure interval.

The harness requested debugger port 65535. Electron 42.3.0 selected port 49154 because its source excludes that upper boundary.

All owned browser processes exited. The unchanged desktop repeat passed and remains a separate result.

The startup failure is not a product performance measurement. ENCODER completed all eight gates on their first attempts.

AttemptStageNative startedMeasurement startedPhysical browser exit
desktop-observe180-scalarv1-a1app-BFalseFalseTrue

Native timing and retained events

Native elapsed times cover setup, measurement and cleanup. They are not CPU times.

The SCALAR desktop ring retained 256 of 462 slow events. It overwrote 206 individual records.

ENCODER retained all 110 web slow events and all 198 desktop slow events.

Aggregate stage counts, totals and maxima remain available. They do not reconstruct the lost individual events.

Native clocks have no measured alignment to either page clock. These maxima cannot identify a plotted B gap.

ArmContextLifetime sSlow eventsRetainedOverwrittenComplete event historyWrite-submit maximum ms
SCALARweb186.30044116721210True20.172
SCALARdesktop188.623489042462256206False61.347
ENCODERweb187.1024829581101100True38.812
ENCODERdesktop187.1078025421981980True38.523

Limitations

GPU contention on the busy test machine is a working hypothesis.

These tests did not measure GPU scheduling or contention.

This sequential comparison does not establish causation, repeatability or a performance ranking. It does not estimate statistical uncertainty.

Both arms use the same source limit. These observations do not establish an effect on end-to-end latency.

There is no uninstrumented comparison with the same scheduling conditions. The recorder does not measure continuous socket occupancy.

There are no in-run thermal or frequency measurements. These tests do not establish garbage collection as the cause of pressure.

The zero-pair cell does not identify a stop caller, a native stall or a GC event.

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

The earlier reports remain unchanged.

Source references

The numeric data includes result, control, source-manifest, native-receipt and journal digests.

SHA256SUMS identifies every public file. The exact private inputs remain outside the report.

ArmContextResult SHA256Pressure journal SHA256Native receipt SHA256
SCALARwebfac92cd1fd7f1f0c685db9346eaefb5db4abbd0e1bdfae31a79ad03413107267270abae50fe4d28c8b0fe0042ff5ff41f847f525de13fcca1675349b3235f5da4393b921cf7ca98272da59fe4bd499a3b2116fc522b75b03c5c4593493a6855c
SCALARdesktopa88b43811a3d67b971630e91d0164640d05d03a8d31d034b26df92e7aa7afb25bbe63860a37be7cc556fd1599d0606a8720de73991c375b8105619af928d743129467a3c8a8eb996f201f4e42c76217d668e9525dfba27e7f2de66ef5602b32e
ENCODERwebb69c3ea71da1f3c6c11a1c9ec72ee53df7cb38a96c2f7c53f7e72965d78c3e0a88553e0471eab14b9308209a3d185e43c6a2670a1b95ec5e9804edd3075875f3de664bae148cde563825ce5872052673d40739660073318ed1bec6a5e8e0b835
ENCODERdesktopbf0452194ea997db07d6e316763dc28bdd39e07179d87282c1f8cb1a8144a77ebf7753e651f68fa438b47a8d184e294915865dda98c7ff20738fdfba722408f70fb71a59c703fcc6e83131e22af100da00348ac43b6e8af8de611dafc4d77e00

Numeric data · Text report · Checksums

Earlier decoder and ACK report