Fórum Root.cz

Ostatní => Odkladiště => Téma založeno: Vietnanka 17. 05. 2022, 12:10:12

Název: Odlišné PNG na apple (zprávička)
Přispěvatel: Vietnanka 17. 05. 2022, 12:10:12
U této novinky PNG může vypadat jinak na Apple a na jiných zařízeních - root.cz (https://www.root.cz/zpravicky/png-muze-vypadat-jinak-na-apple-a-na-jinych-zarizenich/), znamená to, že ten jiný obrázek se ukáže vždy a nebo s určitou pravděpodobností? (Byla tam zmínka o paralelním dekodéru a race condition)
Název: Re:Odlišné PNG na apple (zprávička)
Přispěvatel: RDa 17. 05. 2022, 13:47:41
Nejde o race condition (timing bug), ale o false-assumption / over-optimalization.

viz:
https://github.com/DavidBuchanan314/parallel-png-proposal/issues/3

Soubor PNG obsahuje segmenty, na ktere se odkazuje indexem z tabulky. Pokud mate paralelni dekoder, kazde vlakno si jede svoji malou cast - od urciteho offsetu. Pokud mate single thread dekoder, tak se indexova tabulka ignoruje a procesuje se cely soubor sekvencne.

Chyba je spise na strane single thread dekoderu, ktery namisto toho, aby vstup rozsekal podle indexu na segmenty s omezenou delkou, procesuje vse co mu prijde - i kdyby indexova tabulka byla zkonstruovana takovym zpusobem, ze budou v souboru diry ktere se nemaji dekodovat.