60 FPS w Firefoksie: projekt Silk obiecuje naprawdę płynny interfejs przeglądarki Strona główna Aktualności30.01.2015 13:13 Udostępnij: O autorze Adam Golański @eimi Silniki skryptowe, środowiska uruchomieniowe – to wszystko może być szybkie jak błyskawica, ale jeśli interfejs użytkownika za nimi nie nadąży, to użytkownicy i tak będą narzekali, że „muli”. Zrozumiał to szybko Microsoft. Mimo że Windows Phone nie jest zbyt wydajnym systemem, skutecznie sprawia wrażenie wydajnego dzięki dynamice animacji interfejsu. Teraz zaczyna to rozumieć też Mozilla. Projekt Silk to szansa na uzyskanie płynnie działającego UI przeglądarki, odświeżanego w 60 FPS. By zapewnić należytą płynność animacji interfejsu, Firefox stara się dziś rysować swój interfejs w tempie zgodnym ze sprzętem – jedna klatka co 16,6 milisekund, tak by nadążyć za standardową częstotliwością synchronizacji wyświetlacza (w wypadku monitorów ciekłokrystalicznych pamięci obrazu monitora) z dopływającymi do niego informacjami o obrazie. To tzw. synchronizacja pionowa, vsync, której utrata prowadzi do rozmaitych zaburzeń wyświetlania. Stara się – ale nie zawsze to „liskowi” wychodzi. Planujący rysowanie kolejnych klatek co 16,6 ms timer jest bowiem zrealizowany całkowicie programowo, wskutek czego bazujące na nim animacje otrzymują czasoznaczki o niejednorodnych interwałach. Odchylenia nie przekraczają 1%, ale to wystarczy, by ludzkie oko zauważyło, że coś jest nie tak. Co więcej, zdarza się, że software'owy timer będzie przesunięty względem pionowej synchronizacji. Wtedy sprzęt, nie czekając na działanie oprogramowania i tak wyświetli kolejną klatkę według swojego sprzętowego zegara. Jeśli potok renderowania nie zdąży na czas z kolejną klatką, w pamięci obrazu pozostanie poprzednia. Wystarczy tu minimalne przesunięcie, by program zgubił jedną klatkę i musiał czekać do następnego sygnału vsync z jej nadrobieniem. Silnik renderujący Firefoksa (Gecko) w teorii powinien bez problemu uporać się w ciągu 16,6 ms z przeprowadzeniem trzech operacji: narysowaniem nowej klatki w głównym wątku, przesłaniem zaktualizowanej treści do kompozytora obrazu oraz złożeniem w całość nowej treści. W praktyce często dzieje się inaczej – kroki te nie tylko nie mają nic wspólnego z synchronizacją pionową, ale też korzystają z niezależnych timerów. Obecny cykl potoku renderowania: można spodziewać się zakłóceń Spięcie renderowania z vsync: zapomnijmy o zacinających się animacjach Projekt Silk ma sprawić, że interfejs Firefoksa będzie gładki jak jedwab, dzięki spięciu całego potoku renderowania z synchronizacją pionową. Wszystkie wykonywane w głównym wątku animacje będą otrzymywały ujednolicone co do interwałów czasoznaczki. Kolejne operacje od rysowania po kompozycję będą rozpoczynane w ściśle określonych momentach. Firefox będzie też mógł sobie znacznie lepiej radzić z interfejsami dotykowymi – nie będzie musiał odpowiadać na zdarzenia dotykowe, których nie ma na ekranie, płynniej będzie przewijał zawartość stron za ruchem palca. Okazało się też, że Silk umożliwił przyspieszenie samego czasu kompozycji obrazu, a co za tym idzie, zmniejszył obciążenie procesora i przez to zużycie energii. Już niebawem rozwiązania opracowane w ramach Silk pojawią się na urządzeniach mobilnych z Firefox OS-em. Następnie trafić mają na inne platformy, zaczynając od Androida. Nie podano jeszcze żadnych konkretnych terminów wprowadzenia Silk na wersje desktopowe tej przeglądarki. Więcej na ten temat można poczytać na łamach bloga hacks.mozilla.org. Oprogramowanie Udostępnij: © dobreprogramy Zgłoś błąd w publikacji Zobacz także 60 FPS w mobilnym YouTube. Google przygotowuje się do rozdeptania Twitcha 2 lip 2015 Adam Golański Oprogramowanie 38 Firefox 75 dostępny do pobrania. Mozilla chwali ulepszony pasek adresu 7 kwi 2020 Oskar Ziomek Oprogramowanie Internet 91 Mozilla Firefox w wersji 73 już jest. Sprawdzamy, co nowego 11 lut 2020 Jakub Krawczyński Oprogramowanie Internet 98 Nowy Firefox powstanie na czas, ale koronawirus może wpłynąć na późniejszy rozwój 30 mar 2020 Oskar Ziomek Oprogramowanie Internet Biznes Koronawirus 62
Udostępnij: O autorze Adam Golański @eimi Silniki skryptowe, środowiska uruchomieniowe – to wszystko może być szybkie jak błyskawica, ale jeśli interfejs użytkownika za nimi nie nadąży, to użytkownicy i tak będą narzekali, że „muli”. Zrozumiał to szybko Microsoft. Mimo że Windows Phone nie jest zbyt wydajnym systemem, skutecznie sprawia wrażenie wydajnego dzięki dynamice animacji interfejsu. Teraz zaczyna to rozumieć też Mozilla. Projekt Silk to szansa na uzyskanie płynnie działającego UI przeglądarki, odświeżanego w 60 FPS. By zapewnić należytą płynność animacji interfejsu, Firefox stara się dziś rysować swój interfejs w tempie zgodnym ze sprzętem – jedna klatka co 16,6 milisekund, tak by nadążyć za standardową częstotliwością synchronizacji wyświetlacza (w wypadku monitorów ciekłokrystalicznych pamięci obrazu monitora) z dopływającymi do niego informacjami o obrazie. To tzw. synchronizacja pionowa, vsync, której utrata prowadzi do rozmaitych zaburzeń wyświetlania. Stara się – ale nie zawsze to „liskowi” wychodzi. Planujący rysowanie kolejnych klatek co 16,6 ms timer jest bowiem zrealizowany całkowicie programowo, wskutek czego bazujące na nim animacje otrzymują czasoznaczki o niejednorodnych interwałach. Odchylenia nie przekraczają 1%, ale to wystarczy, by ludzkie oko zauważyło, że coś jest nie tak. Co więcej, zdarza się, że software'owy timer będzie przesunięty względem pionowej synchronizacji. Wtedy sprzęt, nie czekając na działanie oprogramowania i tak wyświetli kolejną klatkę według swojego sprzętowego zegara. Jeśli potok renderowania nie zdąży na czas z kolejną klatką, w pamięci obrazu pozostanie poprzednia. Wystarczy tu minimalne przesunięcie, by program zgubił jedną klatkę i musiał czekać do następnego sygnału vsync z jej nadrobieniem. Silnik renderujący Firefoksa (Gecko) w teorii powinien bez problemu uporać się w ciągu 16,6 ms z przeprowadzeniem trzech operacji: narysowaniem nowej klatki w głównym wątku, przesłaniem zaktualizowanej treści do kompozytora obrazu oraz złożeniem w całość nowej treści. W praktyce często dzieje się inaczej – kroki te nie tylko nie mają nic wspólnego z synchronizacją pionową, ale też korzystają z niezależnych timerów. Obecny cykl potoku renderowania: można spodziewać się zakłóceń Spięcie renderowania z vsync: zapomnijmy o zacinających się animacjach Projekt Silk ma sprawić, że interfejs Firefoksa będzie gładki jak jedwab, dzięki spięciu całego potoku renderowania z synchronizacją pionową. Wszystkie wykonywane w głównym wątku animacje będą otrzymywały ujednolicone co do interwałów czasoznaczki. Kolejne operacje od rysowania po kompozycję będą rozpoczynane w ściśle określonych momentach. Firefox będzie też mógł sobie znacznie lepiej radzić z interfejsami dotykowymi – nie będzie musiał odpowiadać na zdarzenia dotykowe, których nie ma na ekranie, płynniej będzie przewijał zawartość stron za ruchem palca. Okazało się też, że Silk umożliwił przyspieszenie samego czasu kompozycji obrazu, a co za tym idzie, zmniejszył obciążenie procesora i przez to zużycie energii. Już niebawem rozwiązania opracowane w ramach Silk pojawią się na urządzeniach mobilnych z Firefox OS-em. Następnie trafić mają na inne platformy, zaczynając od Androida. Nie podano jeszcze żadnych konkretnych terminów wprowadzenia Silk na wersje desktopowe tej przeglądarki. Więcej na ten temat można poczytać na łamach bloga hacks.mozilla.org. Oprogramowanie Udostępnij: © dobreprogramy Zgłoś błąd w publikacji