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
vvvuzyxz媽帉帍崗~亜們剝墬暁洐櫅潔寧彁拹摙¥イЕ獥棛潨洖煱�辈党郸Η&Ж�蓟技两蜡背北渤放伺撬颂徒究揪棵琳言刂刎偃韧释掏洼蒉揶揶辴vwvwxtz妽寠帒悘}儍們剢棖晽棛殭寠崘帎帋!。ΖЖ晿櫃洑湜�鞍背悲あアДぇ焊够杭宦�辈泊泊破迫墒噬唤骄坷览延友抑自攀墒适仕茌茌葺茌qouttwvx垑墜崐寧|{亐€倖剸晿棔櫃槈噵媼嫀憿牎ⅳΗ�枠槜殬毆��鞍礌ⅳГぃ�富患浇江��吵蹬魄魄缮羌换患靠疽蚁醒哉仪惹热嗜哨圹谯圮踧rptrrtu墘厞垑寣}€}~�儍敃枙枟棜噲垔媼崓�ⅰⅳˉ敄槚棛櫇┈���牏ⅲィ(饭泛负缓���暗侣萌扰巳饭夯蓟拷邢闲杏佑媚瞧乔缮谮谮谮仝oqsooqrs唶唹垐垑|{|~|~儝晳挆挌枆噴帄實姛潫煚牏�晻晽暀櫔�爱��牎煚い4腹负构俯���擦晾屡们煞泛辜杭教彝蜗右用呐牌牌秦儇刭儋賚nqouqrs唴唴妸増}|z{€}~彂憮拻挅噮増垕噷湙灎灑 拺枓棗棜┉���灍�、牐冻犯腹阜����铝苛瞧婆陡汉讣够掏型行研谅们闷牌重刈刈刎nlonrpqq倓厖唵妴zwx|y|}~悜彄憫敃儑唶垑妸櫅潩洜牏憮憱敃棓Θè┈�灎潪、牐膊卜父陡èì��懒览滥闷吵档旱蓟趟掏滔逃懒铝屡门照终种种jolpmoqs倗儏儏垐yu{{z{}~憥悜崕搻€厓垉噰垰洕洔潪�憭摀敂摠エě��潬灎潪灠吵创复掸ī���良谅谅枚反贩阜蝗释淌瓮欣柯柯聊脑赵栽照誾~z}}z|乷soqrvst唶増墜實~|{€倯敃挄枠槉垑妺寣専煚ⅱⅰ�晼晼殮槵���睜�#ぅジ垢换讣警��贝甭琶破排藕构夯壕嘉行涡延新寐侣侣脀zzz{}€乶rqqtrvu厗噳増噳{{|~|~亜憦摂枛晽墘垑寢嫀湞湣灒�摀晼敃槚�┇��灎牎ⅳ#反倒构夯М�爱�撩媚呐牌陡购够郊舷窝幸涎铝亮侣侣uxzwx}}ynlnrqtrr垏噰垔坹{zz{~|彁悜枠枙厙墖垎妼洐牉潫#搼晹摌晽┄���灋潪潰煛党反炊构���艾览玖谅昧锤焊悍负烫送刑邢揪览懒览xuz{yyz{ljnpnnrr亗倖唶墕z|{z}}}憥悜憮摀唵唴唵妶櫆煗潩煛拹挃挅枖Ε�┈�洓潫灎%当炒吹坊����揪驴谅拿倍兜父狗伤饰舷衔坷靠靠揽wwwxyx||mkmnmlqp�亐儍噳wwyy{}{}帊帍悞彃儌唫噲垏棜櫄潩灑弽帋摉摂ぅウΘ�湠潫煙洘钞卑吵刀ΘК��郊究柯寐荡捶父父颓仁涛嗡窘揪揪窘xuvswvxxhljlknoo�}亜倓剉wusxx{{姀實帋悞}倐倗剣垰枦湜潩泹寪帋拻挔Εぅī�殯洖湡灠�辈炒处Г��┗冀净揪茂膊暗斗镀嗜壬烫屎技冀郊絩psvwwxvfkjmkjml~€倓€亞wwvtxzw{妿帉寢弿倎儏儏棓槚洏湞崓媽憥搼イ&ウЁ櫆櫃潧殰��背泊ぅエ┄�还唤患览�巢按档破墒扇适汉缓缓夯qrpsrwsveekigikj|€�儊僶rrtvwwy垕媿寣妽儉€儏儉晹槝殬潣墡帇嫀崙煛ⅲあЖ殫槝洓洘���按牐ィЖΙ辜患患冀��吵档侨婆侨仁腹购构购]abbbcefsxvx{{z}inoonnrq剟儍剝唴twvzxz|嫀弿彃拹儎垏唶垕洑潩潧�帎悜敀敃ЁЗ┆�潨煘灋煚安捶闯蹈│���季撩懒亮驳驳兜贩迫热壬扇b_aa`beetxxwyuzzlimmkmnp�倐厒噯xvvzy{z~嫄悕憫摀剟儎厗唶棝櫁櫇煙弾弾搾拻いЗェī槣槡湠灍膊辈巢洞│ī�Л痪究谰滥泊渤荡荡惹侨侨热_\^bacacsuttuvv{jjikllpn亙剝儌twuxwv|{妺帎寣悜亝亜倓剤敆殯棡櫇崒崗憫憭。·Ζ│櫇湜殰灎鞍膊创捕&ォè┆患豢拷亮脖�创荡牌破魄破Z^\^_\absussvuuugihkkljn~倎儐qwyuwxxv垑帄嫃寧~儌儑剼檿櫂櫄湈媼悕攽懀¥ⅲΚ�晽洑湞湰隘膊按播%エえ┖郊杭蓟话�氨膊茨呐排呐臱_\___b]rqsptttufhfkigmi~}亇亊�rrttwwxx噲寜寣嫃倉~儌倕償晻棙殮殜垕悑弿専煚うゥ�棗洑殰湴��辈病ウ·Ε�憾咕窘景�鞍渤趁媚妹拿腪ZZZ][_^omqptstsfehfghjl}z}|}~~roqtstrt垎墛媹寜}{~€亗€敂敂晼枟噵姀妺悗潪 ぃ!憲枟枠潥����牊�ゥé饭芳焦窘�氨隘舶铝侣侣侣[WYW^[\\moqsppspbebhhfihxyz}}~€€rpsrqput垏唵墝墛{{{~~€€倲搾敂槜枃唺墜垗対�、煛�憰晿枟棲��爱睙ぁⅲⅱ�抖饭附韩�爱��亮晾缆罶VZWYYZ^kjpnnoprbdcechhjxzy{|yz乷rqptotr厗厙妷垎x{x{}儝挀敃敄槄剢墖垐嫕潨湠�瀿晹摋枛棭è��瓰灐�、⒊斗沟汉宫┉���坷揽靠纄dggjjik][X\^]a`qrrsuuwydghhhink}~亖價trtwuvx妸妺寪弾~亇}儍們枛槝暀殭崓寜崘崕。牐%う敇棙殱洕�脖�氨ⅵぃΙΘ饭患技郊����fgbgehfgXY[]_\a^mmqqrstuejdihfij~|~€€倐€otsvrwuw墘噲寜帉~~~儊剶摋晽枡槈媺崓嫀悹煚ⅳ!�様棙棛湱���睜煠Ηい┓坊还胶含���璫dcfiefhZ\Z^[Y]]qnrpqsrrecfdhigjxz|€亐€oprsrutw剣妺媻媷}}~~}亖仏憯枓敆槇垖媼崗悵潬、牐�棓棜櫄毇К��睜、�%ジ苟焊汉邯���玝bbeddhfWWXZ[ZZ\monpprspbechfeeg||zz{€}nnmrpstu剤厛墜妸{z|~�儘拻摋晿梽唴噷崓尀潬、煠�枖槝棗毃Ι��盁潰ⅰゥ7抖垢父供┆��猔c`aefddXWUVZYYYomlnnnosdcbbfehfxyyy{y|ylnqpoorr亞厓剦増}zz~{{}摂憪挃晹厛噵媶垔湜潨牎 搼憰棖棔í┇í�湡灋煡 刀反锤陡èè┄┅^`^_^bfcTVVXYYYYkllmpnprbabcgchfsxvxwz|xmmkpmqpo亙唭垎噴zw|z}|{{悗彃彂挃唴垐厜墘潪洓潪潫拺拺摂枙'Κ��洕灉牋潰吵车贩范ЁЁЁЕ`\_ba_`eTSTTYUZWgkkimkpn]`abbbbcuuvx{wxxinlnloon個剝唲垎yvxyz{y~實憣拻悡儍倖垐噳洔櫆煗灎彂憭悢悥èェ�┅湚殰牉潰�驳荡档ウウΖΕ^]Z]]`a^RRTTVTWXfhkjilkm_]a```ddrwvtvy{{fklnmoon}倓倓噰wvzxxzy|妿寪審彁儍厔唭噯棙槢洐灊崓彂弿憯ⅱЁíǐ櫅洑灊潩�吵潮吹ゥイイいHJJMPLMQ_acaecegUWVWXZ[Ykmnloqpo`aeebfghu{zz{|}}pmqqqqts儐厗噰噵|zz}~彂摀拻摂噳妶墘妺煖湢牊牐敃摃枠枠í�┉�煚灐、ⅲ巢渤炒炒HJMJINLO_``^cecfUZUVX\YYllnmpqqr`babgcehxvvy|yy}olmonqrr儊厔噮厛y|{|}憥攷摀敀噮厔垑墛洑潪湡灎搾憮摂槚┅ī��洕潧牊牎膊膊渤吵FFKJJLJL^a]^baaaTTUVTUVWlkkklkom`b_accegssuwz|zxnlljlpsr亖倕厖唹vyy{z{~{崕彁搼挃剛剢唴媷潥殰殹煝彁彅搻挄ウΔ��殯潪湡�卑卑北北FGHIHHKH]]___aaaTUSTTUUWkhillmjq``_b^ccdsuwuwz}zjonmlrnq亗€亖儏唙vwxwxyx嫀憢悞晸亜厔噮垑槚櫇潩灋崗搸憭憯ΖぉΙ┅洕湞潨牅鞍�隘鞍EFFHGEIK[Z\\`]__NPRTRSUVjfkjhmll]Z]_^a`esssxxwxxjiknmlpo€~€�亜twxxxyyz媽媼帒搻€倓厔厗倴晼櫅櫆潕姀悙帗挦¥#Θ�殬殰潩洰���瓼CFDEHHI\[[[]\_]QPOQQQRXeeijjkoh\[[[_^_arpsutuvvhikikkml€�~亐€僺vuuxuzy墛姀寢帊倎倓剟厴枟棙棝泴媽弽帎挓ぃΖЕ�櫁洑湜洬���瑼?FBFGEFY[Z[\[^_NONNRSQRbefhgjfi\[^^[`_`sqoqututghhijjjj{~~亗�rssrvwwv媻妸垗寧{�剚倎仈枟棗槡潎墠崓崘挐牋 &�暀棙櫃洦���珻B@AEFFEYXZZXZ[\NNMLPRRNcedhghhjWY[X\`^^oporotuufchhfigk{~}}}€€ospturuu厞垖崑崏~}€�仈枔晻槝檵垐崑妽師煝ァィ�枛棗殭槳���㎡OPTSTWUHEFKHIII_]]]]__aQTTSTVVVghjllloo^\[^daeduttvyuwziillkonn倎亜剝剆vvywwz{妼實崙搾個€倓厔啎櫄櫇殱湉帋悙弿暍ウゥΗ�棛槝櫃極QRORRTUBGGHEHKK]\[Z[]^\OSQPTVWRgfjjlhkmZ[_a^]abrortvyvxijiillnn}�亖儊tswv{wxz妼媼帊崘~亗倐倐厴棛殮槤湆帊彃悙懁ЕΖェ�棗枟棗桲OOQNRORCFGGDHGJZ[]Z]^\_NPOPRSUTfhgiggij\_]^[a`_posutuuxdfifljhm}|倎亙價vswvtxz墘實崐帎€|個剟儏槝櫃槢洖媼寣嫀帒 "ぁウ枙晼枛枛OLNNOONP?BCFDDFE[XWZ]ZY\PNOORRORchfeehigYYY^Z^__qqqpqsstdgfjijkl|{~�}~spsrxtvu噴噵媺寧|~€€厔棐棖枛槞寣妽悑悘牋 ⅱⅲ摃敂敃晻JKKNNNLSB>BCDCBEVX[Y[Y[\KMNMQRROdbdefeghWX\ZZ[]^nqqqpqrreeefiikhxy|~€乸qsstpts唶垑墜墡}|€€亼枙枠枛棃妺媼帄彑煙牎、爺拻摀摀揔JJJLLPN@?BCCBBDTVZVX[\ZHMNNOMQNabddbcdfU[WYXZ[^ommmnqpqdcegghdhxzx|{}}€mppqosut剝垊増媼{{~€~亹憦摃敆梿増垔啂彍潬煙。爲悜憭拻扜JGINJNK?=>>A?CBXVUSVYY\KKJLNPNN__ccdcceUUYTWVZYlnlnporpebcbfdghx|{z|~{lmqporuv儊剝唸墕xyy|~亅彂憫摀晼噯唵媹墝潤湞洜�悜悙憫憪DGKGGJJL?;<@AA@BPRVTWWYWLFMKLMMKa_abbecbTTWWXYZ[iilomopoac`bccchrxwyyzz{kkonpspp亝唴厗唴wzv{{|~悘憦帒憯倐厛墖厜櫃洑潪灋弿弿悘悘96788::;KLIONKQQDBBEDEIGWXYXY\\[NMOOORORbdfegiel[[X]Z\`[oprpttrtfedhgjfl|{~|}~€qprstvwv厙妺妷媿~|}€剛搻晻殧晼媺實媼崑灋潪煙灍42664989JIKMLMKR=ABBEDBETXZYZ[\XMMNONRPS^a`deeffWXVVZ\[_nlplqqorbccggelhzywz|}}mppqsqrt厙唶妴垗||{|}~亜搼挅晻槝墔媻媼妺潩潩潨潨22265596HGLHJOLL<BA@AC@EVTXYZWZXJLKLMPOM``acafgfUXVWZ\[[oknnprssfaccfghgx{zzy||losnrrst噮剢唸増z|}|亃個憫憭様摋剤厜噳墛殯洓洔湝11341346FIIGIHLK;?@>?A?ATRTTTXXXHIIKLMPLbc^_a^bbUTVVXY[]kmnkomnn`cadcdefxuwzz|}}kpnopprq亞剝唶垎zyz{}|~帎拺悡晸唵垎垑墛櫃櫄洑櫅/3/13443EHJHGHML<<=>><?CTRRQTUWYHJIIIKOL]]a`ccbeRRURTUXZiijijlkp^cacdceettzzxy{|komnqppp剟厔厓唶xyzy|y~|崗憦悡憰剟厜剢噮槞櫃櫃殭/1032143CEEGHGLI;9?;@@B?QPQQTVQTEGHIIHNH`\]^]cccRQSSVUXWjhkmmplo`^]`bddcvsvwwyx|jjjnojmp亖們厑噮xw{yvxz|帍弸悘拹厓倖唵啑槜棙槝�,.//0020DCDCHIEF:;;;><==MQOVQSSTDEIGEGKL]\Z^^a_bMQQRRVWWegiijjjj_\_a`a`buqtxvxvvejkkomln}個倐倎唗vwuwuz}媽悗帊悜亐厖剟厔敃枛枛枟*-01-/.0D@CCGFGI:6;<:><;QMQQOQORDEDEFJGI[Y[]^\\^QQSQRSTTdgdhgiik`^]^`_^aqqsuvvvygighijnm|~~~€€剟qswyvxtx墛垕媿彃€亗剚剝剶晹晹晻�=<;=<@?@20044486FFGLKKKL;:????@CSSTWZWUVIJJGIKNO\a_`eaccTVVXVYZXljllmnoma`dccedduvzw|z{}lllnoops儐唭厛唵vxxzz|~}帍彃拻憮亙儍儍儍:9:<<><>11-/2753FDIIIFJL88>=??>ARPSSWXWWGGHKKJLJ^]__``bcUSUVTWWWikmmjnnnab__addfwvuux{~|ilimnopo倐倐儍噧xv{z|}yz崓帎帓悞儌儌倐們89:::<<<.,./..01EEGGHJGK9:=9@?>=NPQSPTUSHGDIIIKK]\^^`aabPPSVUWXVfhijiknm\_b``bbcuttuwxv{gkkpiqnn亗儌亙剟vuwzv|yz寣彂崙悙亐€亖亖�658:<;;=*+---30/@ACDFIEH;7<:=??@PMNRRSQUFFHJIJKI\][]_Z]^OQOSSSWUjggfljik_a`_```crtvrvuwymilokonn€亗們亗倂uuwyzy{妸寣帊崗}€亐亐�588:8:<9-/-1/422?BECHHCI99=<=>=?MPPPRRRRCDGHEHJKY][_[^^aPOPTQVRTeffhhgml\\]]a^dbprrvtvtwhhikmllo{~~€倐倅vuxy{y|垐崓崐實~€€€€€€331544:71--1/105?B@CBBEG7;8:==><LLONONOPDEEIGKIIWUY^]Y_]SPSRUSTUdffefejh_]]````dprqrtqrvijhjmqqo|}~個}乼uxwvwyz妸媻妼媽~€€€€€32646478-..-2/01?>ABCEAC99;7=>;BIJLMLOPRBEGFHHIHVXYW\W][NTSQUVSScceggchf^`]^b`_cnooortstfhhimmjmz|}~|€€uwuw|wwz噮噰妺妺~€€€€亐214455760,/01004?@>>BAAC;=;=:=><JKOKJPNKDFGFHJJHRUWWYZ[ZNPSTQRVSbaedeede`^`_`_canmorospuhfjknlnpz{x~}|~tttwvxx{厜厙厛垑}€€€€€€€'+(&++*.86898:<=142796:7BCBCDFGF=@>AABCDOPORSRTSJMLJMNOO[[[`]_^\VWTXX\ZZcdfjgllkcceghgefrrtstwwvqknqmrsw~~€儌儎亇|{}}~€~増墘妸墛&)))+),/1585:78820434668>ABEDFEFA?@DCBDCMLMOQQRQLJNMLLPMYYX]]Z[`XWUYWYX_cffigglmeccdiegfppqsrttumqorrpsr}€}|€~€{{{~||噲垐垐垐&$*&)))*6447539744527498BAACADBEA>?C@EECKNMONMQQGIKNLMNPYYYZ\^]]TVXZW\[^eagggfghbbcfgehhpsqpqtrsknqtqsptzz~~亇亃z||}噯唶噰噰(&(('(*+1226588503434968?A>AA@?E=>?ACCD@IKJLKMMRKMIKLNOOWTWXVYW\TXXZ[Z[[ccedeiii_bcgdgegnmomnstrqnmmosssy}{|||~||~|€剟厗唵唵$')**'+.23234766/5444878?@;??@BB=??CB@?DEIIKMMNLHILOOOPPVUUVXXZXWW[XYZZZb`dcdfdgdabecfgfnlnmnootlnmortsqz{{{z}€~}z}yy|~厔剠剠厖'%'&*)+*/.10246512462557;<:>?AC?;<A=>DACJIIIKIKLMJJJLMNPWSUXUYXYUWXW[Z\Z^a`cccdd^bcdefegjklolmonlpnrqusnyyzy{{{{{|{{~|}倎們儍儍$(%*&'+)-//0364142365876;9=>=;@??=?@?AEEIFHGGKMIIMKMKJOLQQTRVVXWSUWXXXY\\^``^`baadddbfcekilnlloookooqptsuuv{{z{|zx{|{|}€€倐倐倐�%*&+&)(+./,0/004053438678::9;<;<@?A@?@BBFFGEJHLKGGLNLMOOQOSUVSWWUW[YZZZ[\\`^^`bc^feefdehjfjkjlloomnpqqrrutuwyyx|w||{}}€€亐亖� |