739a5f76bf
ci / web (push) Successful in 1m3s
ci / docs-site (push) Successful in 58s
decky / build-publish (push) Successful in 16s
docker / build-push (--build-arg FEDORA_VERSION=44, ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora44-rpm) (push) Successful in 8s
docker / build-push (., web/Dockerfile, punktfunk-web) (push) Successful in 7s
docker / build-push (ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora-rpm) (push) Successful in 7s
docker / build-push (ci, ci/rust-ci.Dockerfile, punktfunk-rust-ci) (push) Successful in 8s
docker / build-push (docs-site, docs-site/Dockerfile, punktfunk-docs) (push) Successful in 43s
ci / bench (push) Successful in 5m21s
arch / build-publish (push) Successful in 10m58s
docker / deploy-docs (push) Successful in 28s
android / android (push) Successful in 13m23s
deb / build-publish (push) Successful in 12m58s
ci / rust (push) Successful in 18m5s
rpm / build-publish (43, bazzite, punktfunk-fedora-rpm) (push) Successful in 12m31s
rpm / build-publish (44, fedora-44, punktfunk-fedora44-rpm) (push) Successful in 12m56s
flatpak / build-publish (push) Successful in 5m53s
windows-host / package (push) Successful in 14m37s
windows-msix / package (arm64, C:\Users\Public\ffmpeg-arm64, --no-default-features, aarch64-pc-windows-msvc, C:\t-a64) (push) Successful in 4m9s
windows-msix / package (x64, C:\Users\Public\ffmpeg, , x86_64-pc-windows-msvc, C:\t) (push) Successful in 4m15s
windows / build (aarch64-pc-windows-msvc) (push) Successful in 5m12s
windows / build (x86_64-pc-windows-msvc) (push) Successful in 6m6s
apple / swift (push) Has been cancelled
apple / screenshots (push) Has been cancelled
release / apple (push) Has been cancelled
The Apple client now decodes PyroWave natively on the presenter's own MTLDevice —
no MoltenVK, no upstream C++ in the app. Completes and wires up the decoder whose
early working-tree snapshot rode along in 9127c346:
- MetalWaveletShaders.swift: wavelet_dequant + idwt hand-ported from the vendored
GLSL (STORAGE_MODE 0 only; subgroup scans → 32-wide simdgroups; DCShift spec
constant → function constant; precision-1 split: fp16 levels 0-1 / fp32 2-4).
- MetalWaveletDecoder.swift: Swift reimplementation of push_packet/decode_packet
incl. the Phase-4 chunk-aligned window walk (FRAG chains, zeroed missing shards,
the >half-blocks partial rule), init_block_meta's block-index space, and the
42-dequant + 13-idwt dispatch structure with encoder-boundary barriers. SOF-dims
changes rebuild the size-dependent resources, which is also the mid-stream
resize path. Ring of 4 output plane sets on the presenter's queue.
- Presenter: pf_frag_planar (3xR8, the planar_csc.frag twin) + renderPlanar with
a shared present tail; ReadyFrame carries an image enum (.video | .planar).
- Stage2Pipeline: a dedicated PyroWave pump — no VideoToolbox machinery, no
keyframe/re-anchor recovery (all-intra; partials render as localized blur by
design), newest-frame-index staleness guard for late partials.
- Opt-in: "PyroWave (wired LAN)" codec entry (probe-gated, ≈A13 floor via a real
kernel-compile probe), selecting it advertises + prefers the codec and forces
the session SDR (HDR/10-bit/4:4:4 caps dropped, plan contract).
- Core ABI: punktfunk_connection_shard_payload() — the Welcome's negotiated shard
payload, needed by native decoders to walk chunk-aligned AUs.
- Validation: golden fixtures generated by the host encoder + upstream's own
decoder (pyrowave_dump_golden, RTX 5070 Ti); the Metal decode PSNR-matches at
77-88 dB across all planes for dense AND chunk-aligned AUs, and a hole-punched
partial still decodes. Parser unit tests cover the window walk, FRAG chains,
broken chains, the half-blocks gate, and the block-index layout.
Tests: apple 134 green (mac; iOS/tvOS build), host 312 w/ pyrowave on .21,
core 148 w/ quic; clippy/fmt clean.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 line
9.0 KiB
Plaintext
1 line
9.0 KiB
Plaintext
tttrwwtw����xz~{|}{����������������𦹄﹞═圾����唂岱貝悟����熣筏秩陷窗ㄒ╮╪ㄩ飪蝶撮憎妣帑狎玷螃謐擢礬tutuvqw����w~~x||}~�����������������╰═�����言成夾辛����偺偃眷盛嵗﹜ㄓㄑ溢葭飯遘托帚版囿聶蕞臏醴pmtsrusv����vt|zz|�~����}�������������嵗╪����岫帘帖版����秣偽假盔��迚ㄐ兢陬飪熄貝貝足妒鄘噯臏謠pqotpors����x|wy|y~}����~~~��������������﹜����夾巧成豆����洵韋皎絞���ㄐ項絮給毽丰谷赤版噶壇臍鐘orsnnppq����xwxywzx~�����������������﹞﹛╮����ㄗ岳岱圻����重型鬼掖���﹛章陷給虜它圻坏扣遝播擰噶mnqoupqq����zxuw|xzy����}������������������𪈳ㄖ豆谷����䔮酊炯掠�椬��聦晰晰須閎丰炊爬死蕪蝦講緻lonspqp����wstxuwyy����{~�������������������╰“豆之����陋垂狗拳���╮斑絕眶硃ㄓ不尹之嗾瑰擦播kqmrmoqs����wrxxvwyz����y~{�z~~����������������﹞ㄔ尹ㄓ����帑車悌陋���辺假絨接雪ㄑ式弛夾匱遛謎遝��}�snpquqr����zwu{yyy|�����������������叚�═����貝赤爬狀����降拳乾悅����普雲須辣奶岫帕郃{����sqqsqvt����wwwyvy|�������������������������角尹豕貝����陋悅秤秣����毓絡飩晴見╪爭岳z~|}�}olorqtrq����杮wvuvzwz����}�}�����������������璍ㄖㄑ巨����𨯵洸洵洫�椬��𨺗散晰眺間╮豕成芒{���mkopomrq����wyxvzyy{�����~}}~�����������������式ㄓㄔ妨����囿悚限乾����捲眸溢順ㄓ忙圻它}~}~}�pmnonlrp����ttvuwyvy����|zz���������������������ㄒ丰����岳狀垣悌����雄假順項��ㄕ巨�|}y}|}~jolmlopp����urpttww����v|{{�}�����������������╮╰ㄓ中����貝物妝狗����秦偽接散攟不丐戎zw{}~}|hmlomlom����vutrvwtx����yx{z|~|}����������������𧚔�ㄑㄒ����挷成爭足����𧑐租陰秩�鴂奴豆屹zwzy~z|hhnkiklk����qprtutw����z~zz}|y�������������������╮����襍版爸岳����𨭬盔扇捲��鰊孕刃fggghjjy|~��oponnrq����qsrwtuxz����|}�~������������������ㄓ坐╞����慐垠神洵����𡆇絲絡斑搏egffgjj{�}znknnlnnp����vtswvxvz����~}|}}~����������������不╰丐忙����妞物洩垢����陸偌雯陷fbdigifh{}zz|}{�mjmnmqo����rvsutszx����{�z}z||�����������������╰不孕╡����赤妞洸限����秧捲雯絮aecdeagg|}{z~||{jlkmmnkp����ovxsuvus����xxy}{|������������������ㄐㄓ‘����𥚃洩夾豆����𧑐假掠結巢gcffeib{y{x||{{ilinkhok����qqsruuvu����~wx~||~|�����������������丑丑迚ㄒ����成ㄖ洵物����秩眼租結bbbaebfexuyx|{|zjikijjmn�����qnptqror����yuzxz{|y����~�������������鱝鴂叚����夾扛咩洮����戚眷盔陳d_a_fbccvxz}xw{wfiflkilk}}~���psqpnts����wvvyy{z}����}������������攟𢶠迚����岩它圻咧����洫祝偌陌[_d`aaaeuszwwwxzhigiflkn}�~��|}�sqpsnsp����tvsuxzz~����|{}�~~~�����������𢒰����藁戌見岳����氹戛租捲島pssvvsveb_bdcgfzzyz||~�fjjkjkpl����prprussv����x|wv|}{|�����������������中迚﹛����尼帚版酋����stosqtqr``bdgchduuzyzz{{ingmkhkl����nsrupuru����yyzx}zx}������������������𨯂�失����戎帘妣赤����pqpsvqrscebfb_dd{w{yy|yzjgjgkljl}~���opqrptru����yxyxw{{{������������������鱝迚����豕左戍岳����pporqqur`_`bcbacwxxzyz{wgjgliihi�~��nlqorrs����wvxyz}z~����{}|~�������������﹝����坏扣戍妒����oqnnstqpb`]^cb`ayxuxwww{ihgfjilj~~�}�|lorpoopp����zvuzvuwz����}�~�}~����������������蘂夾ㄒ岸����馪olmkoso^``abaaavwvwzwz{hfgglgljy~{}|�onlqmqpn����xsyvyxwv����}�}������������������不ㄔ豕言����oknqpmns_]^^c^c`rvvtwuzxbeggggfh|{|~�}|kpnoloon����wsuuwwtz����||z~��~�����������������迚ㄕ言角����nmilknol]]^^`]`arsvtsvuwfchefeiiy~}z|�gnnonqpn����杮txutwux����||~|{�~�����������������它丑孕����UXWZ]XY]mopnrprt^`^``ac_uwxuwzxveejifjjlz�~���pmqqqpsr����xuvzxyyy�����~�������������������袇忙ㄒ夾冊X[WV[Y\nnokqsps_d^_adbawvxvzzz{egfflfik~|{~�}�lmonprq����uxw|x{xz����}|{�����������������嫃之妒扛冉TYWWZWYmpklqoon_^__]^^_wvvuvuxvfhdfghikxy{}��|pmmjkpsr����ruvwvwzv����}z|~~|�����������������不ㄒ圻戌UTWXVUYUmlnnmoon__]]^_^`wssvvws{ffdgchhiz|}{}��lrpomtnq����tttustts����{}~}}������������������═忖巧奶TVTWUSVXkjlloknmYZ]_\]^`vrwurxwvd`cecgej{zz~}~}mlmpnmqp����ruvvuvuv����y{}~}}z����������������鰊嵗丹尼VRUSTVVWmkkjmknk]\Z[\[\cqqtvvvzrcbbafddgyw{|{|}|kkmkmmom����qussurxv����}{x{~}}~����������������边﹝�═QNVQVVSUjljllkmoZ[YY]^[\nqrtsvptcbfeafef|zwx}{|zkkklmlll����qrptuus����u}y~{{yz����}�����������黾嵗�ㄒTRPPUVUSkikkhjjk[ZXW\^]Wpspustsv_ab_cgedxxw{v|}|jflkilim�����rortprr����ywzz{|yz�����~������������╰丹bcchggjgWSUZVWVVollllnmo\_^]^___rttwwwyydb`cjfki|{z|{|�kkmmlpon�����sswtsvw����{xy{|}|~����������������cegbfehiQWWVSWZZmlkijlmjZ^\Z_`a[srvuwrvxaafgcbfgzvy{}�|~lmkknmoo�����putxtuw����w{|{{zz}����������������`ddfafbfSVWVRWUYklnimmjnZ\Z[]^_]sususrttdfdeagfdxw{|{|{ghlhokio����quqvtqvw����zv|y~}|}����������������檧adcccadORTVSSUTlihkmiik\Z[Z^]Y]pvrqqstra``e`efe{zzxyzzzgjhmlmmn�����oqpvqtr����wzyyzz~}����������������_aacccahSNRSTSQThjmjlikkXZZY]^]Zroqrrqss_`dbabddwzyzxxzyiihillnj}}����prssnrp����yzwz{yy{���������������嵖```baecQPSTSRQTfhmgilmkUZ[[[Y]Yopqroppr]d_`_bbexvuuwyxyhhilkkfk}|�~���pppmrsr����wvzzzzx{����~��{���������^a]_d`c`QOOOROSRkigegjjmXXVYZ\ZZnmqpqppr_^b\_]b`vxvwyxzwjggfjhjl}���mqporuu����tuuw{y|v����}}}���������腭_c^]a`aRMNRRRPScdifjhkhZS[XYZYWpmpqpsqo]]`aaabdtsuyvyyxgidghgglx~}~~~llpoqspn����tvqw{wwy����{z}�|���������NKLMLNMNaa^db_eeUSRVTTYVhjihilkj[Y[ZZ^Z]oqsqsupxdc`e`cgaxxzx|{y{jigljmhn�����pqrsuus����yzvwzy{������������JGKKHNLM`^abab_gNRSSVTQTfjkjllmhZZ[\Z^[^lnmqrqrr_a]]adafxtytyyvzfgfjjhpk}{~���lpooroqr����xwvwxx{�����|�������𣿯HGLJJNJ^]b^_daaMURQRTPUhfjklgkhWYWYZ\[Xomoqnstr^a^`bdbcytwwyz|{kfggjklj}�}��mosmrqqr����vxxw|u}{����||�~�����𡜺GJJFHIK]`_]_^a`MQRPPRPQgeffejiiVVVXXY]Xrrkmoknn_]`_aaceuwwuxvwueifighhi~{|~��pnpppqp����wvvwxwzy����~�}�����𨦉JEGIIJH]`b_^^cbONPOOMPTheecfgijVXVVVX]Yllpnqqor\\^Z]^`bsstssutycifhigih{z��}~��pnnrppp����uvwuxtyw����|}}�~{����GHGJHGJI[]]^_^c`NKRMSRTPecddficeTUVWWV\Tpklmkqqq\Z]]_^a_vsvxwzvxgcbegihh~z|}|~�lkppimp����utyvrtvw����x~|z�����CEFFGFIE]\]Z``[\NONNQNOOaebjdffgSTXVSUYZmlimmpmqX[\\\`a`psusutssebegffeg}xz|~{{flmmpnmn����ǐtuqtqvz����zy~}~{����BEHIDFEG^X\[_]_aNIOPMQNMfbeebdbeTTSTUYUWlikmnkjl\\^\\]^^psosrtsuhecdgecfxxz|}|}�ikhjklon����oquwsupu����{||�z~~����YWVXV[YYIGFKJJML^]^cab`aNLQQPPPSfffjlifgWWXSVX[[jonnsopp]`_a^ab_wtvuvwwugfjhhighz|�|���mlnooos����rttvuxyw����z}}~��VUUWVZVXHIDEHMJH^\aa`]abJJPORPORfcffjjiiVUVYYXYVnlnmnnpq`]__]__`tuxxtxwwhhdcfjik~|{{~��njmoppn����usxvyztu����}z}~}�}TUVUUWWWEDEEDCFG^^__`b^bMMPKSRPNaddfcggeXURWWVXXmkmmopoqZZ^a_aa_rstusuwvbehfegfg|z{{}~{�inlrisno����srtwryuv����|z{}RRUWXWVYBCDDDKGEXY[\^a\_OKPMPRRQdabfefdhUUWYWYYVlmklnhklZ[Z^]]`^vsrpwurufhgeffehy{~x|{}~pknqmpon����usrtvwvx����vzz{~{~|RVVXUWXUFHFJFLJJX\^[aaZaNMQPPQPRbeeefffeSTWXSWXZjnkojmmp\Z\_\a\^qrrssrxwdcddhdkhxzz~{}z}kklnonnp����usvwywy����yz}|�}~QQMRQPWSKGFJHJHMY[Y][[]`LQLOQQROaadbdbcdUVUYW[XXhfiomhol`\`^`^_`qrsqqpvshedghfgjx{xy|xy}mmkmqttq�����twuuvwx����z~||~~}QPURTQTUHIHFKHHIZX[[]_Y[OOPKRSOV^_bb`cefTVXWYYYWhjjhmfmj[b`^ac^^pprttosrhiefkhfkwwwwz|z{jllmqqlp���uwtv|vvy����{|~|}~}QPSRTRTSLGIJKIIM[[XW\ZZ\RTQSPRSQ`be`_fb_VXYXZ[ZXdfihkkkj\^`a^^b_posqrrppkhjghglhxvx{x{w~nknorprt��}���tuxvxwz����z��}~~EIECHHEKVSTVUVXYJMJPRNSN[\[[\^^]RUSUVVWXcecfgehf[^\Y]]^^lkkplomjbc`dcgddopqurwvulkmopnkmzy{y{~~|vnqupuvy����}{z||}}����DHGGIFIMORURWSUSMINLMOOPX[[^]^\]XUVZXWYWb`bdeefe][`^]\`]jihmmijoedbebddkosrurrwynlklqmnlxxyzx{{{qvsvusvt��~��{zz~{{~~����EBIDGGFGURRTROVSOOPLQNRQ][[\Z\Z]XTUYVZZX`dbdbaeeY[]_]^_ajjjkmnmlbcehcigjrnstsqrslkloonppy|yxx{yzpsvyuwsw~~���{{||~~}~����IEHGEGHIPPPTSVVRLOONNSPRZ\X[[YX^TUVXZYZU_a`a`bbf^a[]^`a`ieiifiglbfghihhgqprqrvvuhllqmqnoxvwuv{|zwtsrsxww~�����|{~|�~����DHIJJFJMRRQQSVTSKROPOSRRZ[UYXZ[[UWV[ZVUZ\`_acbc`[\_bbacbigghiijiffjgghggqnrpqrqtpllomopowvwuvwv|rtsuxzxu���|~zy}����IFHFKHKIOMPNQRTSOOQRNPQRVWUXY\^XSTYTV\XZa``_a_aab^^]``abjegjgkijeghfjikglpnqqqqpimnoppopttvxuvxusxtyx{ys�~}~}}|~����FJFKFGLIMOOORVSOROPSRTSRXUYYXUZYYUWYWY]]b]_^]ac^^b_b^^b^ddgehhjidfhghhhjkmnnkmomnqpomqmpvsvyuuxxwrvwxw{y|{|�~��~{}~~~~�����HMHMGKHKOOLPOOOSOSQQPVSTUVVUVWVWZY[YXYZZ___\a_cb]]ad`bccebfhieiifhljjkjjkkollnpqjsrqrppstpuutvvxxuvxyyyy}z{|~}|{~}������� |