WebRender

Материал из Неолурк, народный Lurkmore
Перейти к навигации Перейти к поиску

WebRender — это такая хитровыдуманная вундервафля от сумрачных гениев из Мозиллы, призванная спасти Firefox от окончательного скатывания в УГ на фоне всеобщего засилья Хромонога. Суть проста как мычание: вместо того, чтобы по старинке насиловать центральный процессор отрисовкой очередной страницы Вконтактика с гигабайтом жабоскрипта и тонной стилей, WebRender перекладывает эту грязную работёнку на плечи (и шейдерные блоки) вашей игровой видеокарты. Да-да, той самой, которую вы покупали для Киберсранка, а теперь она будет потеть над корявой версткой сайта местной шаурмячной.

Зачем оно вообще надо?[править]

Долгие годы браузеры, включая престарелого Gecko, рендерили веб-страницы, опираясь в основном на CPU. Пока веб был текстом и парой картинок, это ещё как-то работало. Но потом пришли вебмакаки 2.0, обмазались жабоскриптом, HTML5, CSS3-анимациями по самые помидоры и начали лепить монстров, от которых даже топовые айдевятые начинали плакать кровавыми слезами и уходить в троттлинг. Прокрутка дёргалась, анимации лагали, а пользователь Анонимус грустно вздыхал, глядя на слайд-шоу вместо плавной ленты новостей.

Раньше как было? Нарисовали прямоугольник, залили цветом, написали текст. Всё! А теперь? Тени, градиенты, размытия, трансформации, анимации на каждый чих! Тут без зелёной или красной артиллерии уже не справиться!

Вот тут-то на сцену и выкатился WebRender, изначально рождённый в недрах экспериментального движка Servo. Написанный на модном-молодёжном Расте (что само по себе повод для отдельного холивара о безопасности головного мозга), он обещал миру плавность, скорость и райские кущи 60 FPS даже на самых тяжёлых сайтах. Идея была в том, чтобы подходить к рендерингу веб-страницы так же, как игровые движки подходят к рендерингу 3D-сцены: распараллелить всё, что можно, и задействовать GPU на полную катушку. Вместо последовательного рисования элементов — батчинг, атласы текстур и прочие страшные слова из мира OpenGL/DirectX/Vulkan.

А оно взлетело?[править]

Как водится, реальность оказалась несколько сложнее рекламных буклетов. Да, во многих случаях WebRender действительно давал заметный прирост производительности и плавности, особенно на страницах с кучей визуальных свистоперделок. Но одновременно с этим вылезли и проблемы:

Драйвера, будь они неладны! То, что прекрасно работало на одной видяхе с одной версией дров, могло превращать браузер в тыкву на другой конфигурации. Анонимусы с ноутов с интегрированной графикой Intel или старыми картами AMD/Nvidia познали всю боль отладки и танцев с бубном в about: config.

Баги, баги, баги. Новая сложная система = новые интересные глюки. То шрифты не те, то артефакты рендеринга, то внезапные вылеты. Мозилла, конечно, героически боролась, но процесс был небыстрым.

А есть ли профит? На простых сайтах разница между старым рендером и WebRender могла быть вообще незаметна, а иногда WR умудрялся даже тормозить больше из-за накладных расходов на общение с GPU.

В итоге, включение WebRender по умолчанию для всех пользователей растянулось на годы, сопровождаясь стонами и криками на багтрекерах и форумах. Кому-то он действительно принёс долгожданную плавность, а кто-то, наоборот, спешно откатывался на старые рельсы или отключал его вручную, матеря криворуких кодеров.

App.png Весьма полезная вещь, позволяет машинам работать с помощью коммандычей
МетаПрограммаDRM (SecuROMStarForceАналоговая дыра) • БагБот (Автоответчик) • Варез (Repack) • ГлюкГуйДонатКопирайт (By design) • ЛогНюкРут (Не работай под рутом) • Спортивное программированиеМегапиксельКомпьютерВерсия 2.0КодОбфускацияСкриншотДатамайнПлагинТекстовый файлБольшие данныеАльфа и бета-тестыТаймстампКэшШаблоныHello WorldНейросетиФайлИнсталляцияВидеоМощный сбой Microsoft 19 июля 2024 годаCrowdStrikeПроект GNUUserscriptDxvkVkd3dБратан хорош давай давай впередКонечный автоматLumenЗаступник (приложение)NeeUnreal MCP
ФичиБагрепорт12309BSODCookiesEmbrace, extend and extinguishFL StudioSheep.exeWinlogon.exeБубенЗащита от дуракаКостыльМашинный переводПасхальные яйцаСвистелки и перделкиСм. рис. 1Съешь ещё этих мягких французских булокTermuxGNU MetroИндусский кодНескучные обои • Сжатие (За сжатие ДжипегаШакалШкала) • Работает — не трогайРандомайзерPDF (Распознавание PDF) • Дело Google в ФАСЧат-ботXMLМакросКритическая ошибкаФреймворкСинонимайзерSourceТрёхмерное отслеживаниеТрассировка фотоновHZB OcclusionДаунгрейд RTX 4070TressFXАвтопереводчикVSCodiumThorium Browser
ВредоносноеБотнетБрутфорсВинлокЗвонилкаКитайские пингвиныПиксель смертиТроянЧервь МоррисаBonziBuddyMediaGetBrowser hijackingTinderМиссис МажорУтечка буфера обменаWin 10 TweakerОпараш Mozilla FirefoxЯндекс.МузыкаКрэкерБезопасность через умолчаниеGrifter.aviTrojan.Winlock.DeathМиссис МажорСредаDirectStorageDriverpackГенератор случайных чиселDisable Core 0РомхакингDDrawCompatWingetCreateWinGetCoowonЯндекс МессенджерVCPkgSELinuxXfireYouTube Auto-ResumeTape OperatorBotFatherMTProtoSignalDoubleClickFixGitee
КомпанииApple / Apple (AppleScript) • GoogleMicrosoftSAPЯндексExiled Exchange 2BraveAdNauseamСкурвление FirefoxCafe BazaarAMD FEMFXPPSSPPАвтохукQuick machine recoveryMAXBypassNROWizTreeJTubeGallium NineFalconRu-WireGuardМобильное приложениеWebRenderСмс-бомбер
Движения8-bitOpen source (КрасноглазикиЛинуксоиды) • Вирусная сценаДаунгрейдДемосценаМоддингMMDDirectDrawЛагиБлокировка Дискорда в РоссииOpera GXНесоответствие MIME-типаRenoisePygameLs (UNIX)МетаданныеПатчNginxПиксельЭмуляторSearxТамТамMallocСвязный списокSOLIDGreasemonkeyПлатные сообщенияFlatpakNouveauFuse.js
Офис3DS MAXGIMPGNU EmacsMovie MakerMS Paint • OpenOffice • PowerPointviMicrosoft WordExcelБлокнотФотошопАнтивирус КасперскогоAvast!TikZShareXAlternativeToСкрепышMicrosoft OfficeТекстовый редакторWeChatZoomДиспетчер задачMicrosoft CortanaWinampBallonTranslatorKerish DoctorОбщая ошибкаFirefox: Как один баг сломал весь YouTubeМеждулициеMeld StudioLadybirdCheat EngineTotal Commander
ОСAndroidBSDDOSMenuetOSReactOSWindows (Phone 7Phone 878Vista) / МаздайЛинуксРусская ОСФантом ОСIndex.phpCompassУход мэйнтейнера NouveauБойкот лаунчеровAria2cNoiceMinecraft-Installer.exe
БраузерыInternet ExplorerОпера / Opera • Тормозилла (ОгнелисLolifoxMozilla FirefoxFirefoxFirefox Klar) • Хром (шпионаж) • SafariЯндекс.БраузерУведомления в браузереVivaldiTor-браузерЗосимаФронтенд
ИнтернетAdobe Systems (Flash) • I2PLow Orbit Ion CannonTorTunatic • Чат−клиенты (MirandaQIPSkypeЖабберDiscordVIPole) • HTTPSПрокси-сервер (Proxifier) • Торрент (Magnet-ссылкаΜTorrent) • JavaScriptCSSHTMLБаннермейкерИзменение TTL сетевых пакетовКапчаICQFiddlerViberZonaSteamSillyTavernWickr Me
РазработкаBrainFuckCC++C#JavaHaskellАссемблерChaos ConstructionsBATMySQLGitHubAutoHotKey (AutoHotInterception) • Sublime TextAPK (APKPureзапрет) • BASICPerlPythonPHPФоркUnity3DSAISIPСАПРФлагUTAUФласк макросАуработRaidCallAdobe MingОфициальный™ список кошерных программDevOpsНиколай Дуров
ЛюдиВеб-мастерLovinGODБалмерГейтсГенерал ФейлорДжобсМитникПоттерингде РаадтСпольскиСтоллманТорвальдсШахиджанянAche666Марк ЦукербергЕвгений ПоповДенис КумпонМассовая компьютерная безграмотность
КостылиCygwin • PunkBusterT9WineWishmasterАнтивирусыХакинтошСборки WindowsDenuvoЧистая установкаКалькулятор Consul WarMicrosoft StoreUBlock OriginLightshotAdBlockSearchApp.exeCPU-ZГуглPhotoshopКаптча с пчёламиВзлом Windows через MetasploitЩЩ Мессенджер
Команды^H^WAlt+F4Ctrl+Alt+Delman/me/quitrm -rf