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
ssxvvxy{寧崒崕悞亖倓厙剟棛槝櫃洓崕崕崗憫#ДウΘ洓櫄湡潯�卑鞍兜ΕウЁ�辜览焕拷�钡创吹魄派乔伤季玖吕晾杂渍字僮侍释伤掏蒉葺蒉揶vvrtxuzx墝崕寪帋}€亙噲敇棗槢湞媽帎弾悜 ⅲΖΕ枛湗櫅潨��巢驳Δⅴè�泛痪净纠�床巢蹈热迫汕倘脊唤揽览矣找衷棕粕侨仕侍苘蒈葺葺rrstuxtz唹寣帊媽~€亖€儍償敃枛櫃泧墜媽悘憻!煝ア�枡槢殮潿��鞍常·ⅳΗü坊冀壕化�碑挡绰绕颇巧始几交靠姥性延诱陨那汕怂授圳圹圹躵suqtuww噲噴崍寣|~亊亊儊晳摉枛暀剫垕妿崗牆�牑う敆晼枡湙���鞍。煠エウ父缓交豢�隘爱�科婆粕膳桓竞浇揽掏弦已行萌破惹是仝仝谯谮qorsqsut唶噳噴妺z{~亖�挀摃枔棔噯噴墢妿灋灒牊ⅱ摋棖枡暀����煙牐¥В狗导泛冀���膊昧撩那排汗悍辜唤蜗盐涎釉拿娜婆乔棕刭儇刭oprqrqrq唴儏噴墛{{}~|}€|彄敂搼棑唴唸妸墜湠牊牎煛搼拻棗晻����潯 ¥ⅳ贝锤斗岛����晾颗媚泼阜购缓夯衔侍弦幸侣穆屡排种刎棕刎nllpoprp€倖倓噲妜zxz{|}|弾彁搼摂儎噮妼妷殮湞潫煝悘拻枔檿ウЗ┅�洖湣�、创蹈斗逗┆���拷韭缕琶炒捣蹈购墒咸翁臀亮履琶妹终终种终jmnmmnon們唵噧垏yz{{z{~悗彁彂悢倓唸妷垐湙煖潨 悘挃挀敃éЁě�殯灊灐�巢暗荡抖īЖ��纠兰滥寐贝捶贩贩侍蜗巳拖揪每牧昧艺栽栽照}}~{|€}乹trtuuuv噳墘垐媽y~}€個憭敃挅晽噰墜墝嫃湠牋煚%敃棔枡敇┇��氨灎牏%ェ陡垢贩几���隘谅琶呐牌坊腹换患挝幸醒蜒旅旅妹妹z{{{|znqrqtpqq剠噯墝垐zy~�}€憫拺摃敆唶墘垏寣湡灍·牐摂敂枟枡íō��ⅰ牋ⅵ#刀犯阜逗����昧妹拿魄荡焊负浇烫贤邢行铝亮侣铝wzzy{z||lpoopqtq厐垎唵墛|}{z|~彁敀挀晻墑唴垔媻櫉湞煗湢挄挃敇晻í���湣煘�ぃ膊狗犯豆����苛寐旅饶刀阜负够褪屯蜗涡靠览懒亮yvzyvz|zkllpopsq厔€們噳墆vx||}z}帎拸憯挄儎唴唻墘洓洕灍�悙帒挅枙Ёí��湙灍煘煟巢创闯逗���鞍嚼镁懒拍洞捕购刀饰滔挝蜗烤览靠揽tuvyyzyzjlnlomoo}剘儎噯噕wy|yxz€帉嫃悘彅噭唵剢厗湙殰湝灉弽彁彆敁うΗ┃�洔煘灊灍氨潮党闯ぉЖ┈�患骄缆烂冻炒澈狗适送趟瓮技骄揪窘rvrxyxvxkliklnms個倐儁xtxxz{{寢帉帒悘儉剝剣厖櫀洐洔湝崓嫀帓憯うДΙИ櫂湜煘灋�巢倍扯ェ┄�┆冀苛柯玖幢暗炒捣纳松怂仕郊技浇技psrswsx{ijjhllmm|個個剚剈uvuvv{y垔實憥憪們個儍亝槙洏殬湜媽帍彁搻ⅲ(ぅé棗殮湚洕�隘炒创ЕД┄┅够窘拷娇�闯驳膊牌缮热伤换汉换换qosqswutehijgikl|~~儌乻ttwuyvw垕媽悗帊�亗儊儎敃暅櫁殯媼姀崗彄牎牐Γ'敄櫄洕洓��北脖あゥォí缓焊伎郊卑渤膊兜哪善扇缮垢汉汉汉`aaaccdguvwuxwy~kklnprpq儈倎儐噯vyyx|zz}崗崚彄拻噭剠垑垕櫃殯湠潩悙彁敀敊ΔΘИ�櫆牋煛煝辈闯炊沟Ёí��揪纠懒妹炒贝吹捣壬热扇壬^]c_b_acvwvxvvyxhjmolmpq亖們厒垍xxzwxx{{崐寪悞帗亐厓垊墑槡槜湝潩弾拹拹憰ぅЕ┃í櫇灋湡煛北创驳付ē┅��郊坷苛晾恫背冻捣魄侨热热]]\_`^`ctxuvwuwxhlkkmmkl~~們厓剈xtzxyyw寠崗憥憪個儍剝厙槡槡棟殰崘崗悙彃ⅲⅳエΙ櫃殰湚�帛�俺床ΖΚ┈Й炯技坷久卑渤扯捕排牌乔破\[]]^ab_qsuttxutihiikjjn亗亗剟ssuuvvyy媼妼弽崗~倓亜剟枟枟槚湚墡崗媽彂アⅲィΓ洍槡殮潩���扯#Δェ┈汉航豪骄�隘安炒哪拍呐拍Y[\\[^^]nrtsstuwcigfkjmm}~~個€乻qqtwtrt噸墛崒崗~�倎剚儞枙枟槝檵媽審崘悽ⅱ煡В�槝櫄殭湱���怠イ#ウ└泛辜己划悲渤脖猜媚媚哪腫Z[Z^[`\oqsrspsuedfefhhi{|{{~亖~pstputsv噲墛妺媻}~z€~仈挄晼枠枅墛崒寪崰煠ˉˇ�槚枟槣洰���保牔ぃⅳù汗贩骄疆�碍氨甭侣侣侣耊W[VXY]]qqnrppqwddgghgjkzzz}~~}乶qprrstu唶垔唸媻{{亊亙~儞摃摂枡檱墘妼嫀寽牋灎!�悡晿槜毄���睙�ⅱィУ饭富蓟府���傲坷亮懒罺YWYXZ[\nklqpqppcaeeceggyxzzzzy|mooooopr唴唵媻増y{{}~�悙拹晸挅噯墕墜媺湝湠ⅰ煛彃枔棙棗Λó��灍灋!ⅴ创父阜垢┈���靠靠靠览efhghlkh[Z[\[__]rrqtttuuiifihmjj{~}~}�價vuvwwww墘妷崒審€€剝倓厱敇棖棞湆垖嫃彂悾#'¥�殯櫆殯潿��钡并ˇⅴЁЦ郊航冀划���甧eegehjjY[X\__\bnnrqtrtsbhghgjik|}|€}卹svvrtuu垔墜媽崒|}~€€倎晵摉枠槞垕妼弽帋牅煛ⅴう棙枠槝櫅��艾驳ⅰ¥ぅォ汗悍购杭����aedcddhfVX\Z[\\\ospqrtttcdeegfki{||{}}俹oqpsrsw唴墛媻媼||~~€€倫悢敃槚檱垖妽妽崲灐�ⅲ�晽枛枠灙┈��雹牑いィ4傅倒购华���玙bbbffehVWXXZ^Z]nmlmnopqcabgfghky{}z~}}}oorsqrsu唴墖垐妺~{|{~~€€悡挄挅枡噯墘媼媺湝潬牋 彄敃棙槡┅���煗ˉⅵ、创犯泛垢┆���^b_`accgVVVZV][Zjpmooqmq``dccfggzxwzzzx~lpponrqt倓唵垐増y|}zz~€~彂悡摂敄厛噲崍寣潧潬灎ⅰ憮敁枖棙īК��灍牉い、炒捶范饭è┄┅ī_a`ba`bdUSTXV[UZhlomnlmna`b`bedgvuzzwz~{lkqknppr儌剢剤唹wwwx}{|~崙彂拹枒噭唺垎噴殯洖煙殻憦憭敂摂�Й��灋潰煚 北吹车抖ΗЁЁЖ\\^_accbRSSVUVV[igjkkmnp^_a`b`fcvxy{xy{{ikmnmppq亜厒厓厜wywyz{}}弿憫悗悡儎儎厔増棜殬湝潬憦拹挃敇īΕЙ�櫄湞牋�潮泊泊兜ΔΖΖゥ[[]\^a_`RTSRSUWVdhimnkkj``a__``drtvuvx{{lknmmkon亗儐倓厗uyyyxzxy媼審彂悘亗亜剟唶殰湝櫄殰崗帊憪搾ΔゥИ┇櫆洑潩洘辈脖渤创ぃイゥぅHKKKMLNO^_dcaeffWXWWWYY[kkllompqaecfdefgwv}x{|}}mmrrsprq剝剢噲垕w~x|}}€亼悙拻枛枃噯噴寢嫗潪潫煝�摂晿枠櫒í��疄灋�煛⒊闯吵吵矵KLLLKOOb_`aecbbSUVVY]ZZknjlnnpr_b`cddcdwvwy}{~~mlpppppt厔唶噯垑ww||x}|}弿挀敀摂唵噯寜妷殱洕灋灓悙晵摋晽ī���潩湡煚ⅰ卑膊脖膊FIHLILJN_^`_^bccSRUTWVW[jiinnnmp```dcacbuvvxzyz|mjlkoqps儌儏剠墑vzw||z}帋帍悡憭唵剢剤増櫅洕湞�彂悞摀枛ДΙ┄�洔潫灋牊卑卑卑北EHIJGKIL]]^``_`aNQSUXSXWhjkjmmnn___`adbcxuvxuw{zjmlloolo儉倐厔噰yvxvwx{{寣寪崕挀唫儏倕噲洐湚潩潫嫃彁彆攼ォゥ�Ж灉湞湡灋�隘隘隘GFIGIELH[Z]]^_^`TPRRRUTXehhjjmkl]\a]_`bbsrsvxvwxhjklnnmo亗亜€倓tvyuwx{y崒弽弽審€剠亞厙問槝洏洕瀼崙彁悜懀ゥう│�櫆潧湞灝���瓺BGDEEHI[\Z^[[\\OLQRRUQVdghiikkk[^^]]]`_sqssxwwxfhjklhnl}€儍厓tuswwwzz妸寣崐帍亗亜儌剢摉棜櫆湚崒彁悘搹ぅあΗД枟殰洑洓����FAECFHIFU[Z[^Z^`OPOQPTRVgffiigijXZ[_Z\\cqtsqttvvehifhimm}|~€倓俽suttuwx墘媽寧嫃�剚剚敃棙棙櫄妺寧帊憪牎�ィЁ槜枟槡洓����?@BDDEDGV[YZX]]ZLNNPOQQSdedfhejfX[[\\Z^_oonspussdgfhilgjy}€~~個僴qrsvrvw垐妷媽嫀}~€亐儉€摉棗枟晽妷媿崕弻 煟ˇゥ棖晻棛棛����QOQPUSSWEHFFIFJLZZ]a`]_`RTTRWUWXgkijlkoi___b__aasuvwvszyhklmmmnq}€€倎儎僾uvw{w||嫃崕崕彂儌倓剤嚈殮湞潨瀽弽崙拻摛ⅵウォ�槞槞櫃橮ORPRRVUBDDFIHGKZZ\\]Z`bRQPTQWUVgffijillX]]^`^carruwuyzugklklmkl�~亙亗剉sywuwzy審審嫄悘亜剟倓厔晹櫃櫄槤嫃崘崗悜あ¥ⅵΘ枟枠棗棙MMNQQSQUBHEGEHFHZZ[[_[_\OQQTSRTPddfhhfhkY_^]`^`atssuuvuxfhhlikkk}}厒僺wsvvvwy媺墜審審€€們厐啑晻枤櫀潔崒實弿悽煝ぃ&�晻晼枛桳JJPNOOS@BEBCEFEVYZ[[^Z[KNQPOPTSffeegifgZZ\Z^]_^mtqusqrtfehfgjlh||{}€€}乺vvuvwvt墔媹墘墠~~}亐€償棑暁晼殝妸墜彂帪 ⅲ%�敃晹晻擬IMLLNMQB>@BFDFDYVVZZZX`KKNPORPOccdefejgX\^\[]\\nnnqqssxbdgffghg{z}|}{€€pputuuvv儏垑墜墝€€倓€挃枛敄槡妶墛妼帉灊煘 ぁ挀摂敂摀LKINHMNO??>>?DDEXUUXXW[[KLLMNPORcabeegfeVWWXZZ]^mlpopotudbggeffhxy|y~{npnssssr剢噰噴媻z|{}~~~彅摀彅敃唺妺噵垖灎牊牋 憭憭憭拻GJJKNMNM==>A??BBRTWXXXXZIJJLKNPP_bdacccdUVVVZWZYlmoqppstbcceecdgvxyw|z{~nnoppsqr儍噰噰垑{xz}~~|€帒敃晳攽儏噯垐妺灉煙牋煙悙悙悜憪EGIJJJLN;:A@?@?DQUVSWUWXIJIIJMOO^ab`adcdVTUXXZXXmljlmproaabbcdcdvyyx{y|zplmnklpr亙儎唵墔wxyz|~|悓悡拻挆剟厗噯厠湜湞灍灊崕弾弿弿65577;99NLPNMPPP@A@EFFFHVVXYW[[^LOMOOQPTbeeegegiZZYY[_^_lnprrqsufegehlkiz|}|~價tsstuus噰唸妸嫃|}€倎€仈敃棔棗枊噵墠崓崪灋灍灍�65668878KILKNMNQB?AAECAHZUYYX\W[KLMOQQPO`cedefdeTW[ZZ[][pnmtqotrdgbhfiifzyz}~~mqrrsrru剠噰垕墡|}~€~€晳憯摉晽垏妷妸寣潨潩湞潨34337449IGMJLKNN>?>B@ACETTYUVXVZJKNLKNOO`abcccfeXYWWY[Z\klnoqnrtb`cbffckxyy{|~|qpprntss厔噲墠媽}z}}}|亽晵摀摀棃噯垑妺姏湝湝洔�14145545FHHHJJLJ=?=@@A@@SSUUWWVWEKJJNNMO_a_acaedUUWVVYZ\knmloqop`_eedcghzy}w|zyllonqspr儉儏噰媺zx{{{~|憭彆憪敃唶厛唵唺櫄櫄殯殮.04.4423EFHHIHHL<<<>>B>?QRSUTTUWGKJILJMJ]___`_cdUUXTUXXXkimlmonq_^a_dccdwuuyuyzzkompporo剛厓厔噰yyy}|x}寧彂拹敀剠唲垎噰槞槞櫃櫃-.112023FDHDFHJL;9;>=?@AQOSRUVWTFFHKGHIK\_]__^c`STQURTVVeikjlokl[`^^adadutvvyxxymklmmnns}�倖剠坸wz{y|y|妽弻彄憭~剟倕唲垨棗棙槝�/--010/1GCCDEGFH98==;<==PQPQRUQUDEEEHGJK[]^]\_`_QQPQTTTVgifhljim]_^]^ac^utrvuxwxkjiimmmm|亗€剠厔wvtvzyvz崒崘悗帍€€儌厖厖枙枛枛枛,--+1021CB@DCGIG5779:<>?NNQQQPQSCEHFEJEHZ\Y^]]_`LQNSOTSUdfghjjjm\\_]]]castuvtstxfffklikpz€€儅亙剈swvuyvy増嫀崑帊~們€€儌儝晻晹晼�:=?:===?02015755IFIJFJKN;;>@>?@DSPTTUUXZIJJHHNOM^^aab`dcTWVWXWVYlkjnonpnb_`dfefewxvx{x|zlkopprrq儊剠厖妵zyw{|~}弿帗悙憭儍儍剟剟7;7:=;??1/143345EEFHJJHI:<>=?A@@SQTSSRWVFIFGIGML]^[a`b^cSVUVTYYUikkmlnno^abe`ed`vvvwywzzlkkknmnp儏亙剛唹vx}z{|y媿彂彁悙亗儊倎倐89=9=<<>0..01521FCEBFJIJ:9<=<>>>MPOTQTRSHIGFJIJK]^```\`aNQTTTTWWfgjfkjoo^`]aaadbtwvuwywyhlmklmpp€�倐儌唗yyzzx{~妺實帎帋€亖€€亖686;::<;--,/0023AABEEGIJ;8;:<9?>ONNORTUWEFDJJIHJZ\[]^_`bPRSRSVVVgiiijgml]^``_ba_ttvuvxyxgglnjnmo亙~剛噕xuwyvzy妷寧崒帎€€€€€亐747788<</.100222?AACCBCE;;<;:<=<MNQONRRPCGGGIIKHYZX\[]]bOSSVUWUWeceihikl[\\^aaa`qqspstuvgjkklmnl~z|亖個vtyw|vzw媻妸媿帉€€€€€€€�54637:6:,..01310@AA?ADEE::99?=?=LMPMQNQRDGEFIGJLYW[ZZY]^QQTSUSSVccegfdfj^\__`_dbnnsrtptuhikikklo|}€|亙svvyz{yx唹垑妸寢€€€€亐€€54567659,+//1123=@@B?BDE::9::;;>LLJNKOOPEECGGGGJYXZWX\[[NNRUTTTWdeebggeh[\\]a``bnpqopqusilhkmnpo|z{~|~€}uuwv|{{y媹妸妸妸€€€€€€02265356**,0-022>=@C>ABB78:;=;=?GIKMLOONCDGHIHKIVRUXZYV[PPSQUSTUedcbeeef_babc`dbmopppsptjnllllkmwz{|{|}vwwuvuzy厖厜噴唺€€€€€€€€''(')*+)5769:::=23336657@ADCDDHH<A@C@C?DPOQPRSSSHKLNNPPPYY\^[\]^UXXYZZ_Zdifgkijjabeeehghssqtutvzprqppvtv}€倎厒儁y||||}垑墛墘妸''**++,+6636667:30466388?D?CFDDF;>A>CC@BMMOQPRMSGJMMONPOV\Y]Z\]]UYXUX]X\fdffgiijcaeegehgqqrtsruwpqqqotss|}€倐{{|}||~噯垏垐垐&(&(+*,+346897882256554:@>B@@BDG=?<@DACDMLLPPRPOMIMLKKPPTV]XZ[][XWXV\W[\becgeijkddddeeejmosrssttnsoposvqzz}|~�z}{}}~噯唶噰噰)(&*()*+332575660/563575;=?BA@CB:=?=BAACJJJNMMOPJKMIOOMLSVWX]XY^VXYZ[[Y^baeceegedcbddgffopmqqrprpnrrqrstz}}{||€{}{|}~}剟唴唴唵%&((((()12233556/4454787=@><ACAD>=>BAA?BGIKMMMJOIKLKLLNLTRUXVXXXUVYXYX[[`ac`aaddbbgeggeioolpoqtsonosssoryz|z~~}{zz{{~~儍厖剠厖(('')(++-3012247024317:6;8>?<?@C==>@CCDCEFIJINJLMLMLMQLORUWWUXXZYWXYWWZZ]`_`debd_`dfdfgjlklomqnokpqpqottvwyy{{{~x~}||~}們儍儍儍&))()((,*1/220231136665:99><<=<?>A?A@BBCHEHHHIJKKLJNMOKORSTRUSYWTVZWX[\Z\\\`cb`bcbbffffigjmkmormlmposrqswwxzyyz}zy{~}~}}倐倎倐�")&'*++,0-,./243//446646897>===??=A@BCCFEEIGGIHHHKMLLMLPPQQRUTUUVWVZ[Z\Z]Z\`__acbb`ccfhghilmkjplopqpopqttvvuzx{yzx}}~~~€€亐亖亖 |