HDR в Firefox

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

HDR в Firefox — мифическая криптофича, обещанная юзерам во времена, когда динозавры еще помнили запуск первого Спутника. Пока Хром и даже Сафари давно показывают все цвета радуги и даже больше, Огнелис гордо держит знамя унылого SDR, ссылаясь на проклятый мета-баг. Является священным Граалем для немногочисленных фанатов, верящих в особый путь Mozilla и готовых ждать до второго пришествия.

Начало конца[править]

Все началось невинно, как и положено любому хорошему фильму ужасов. В далеком 2018 году репортер с ником :jya создал тикет с лаконичным описанием: This is a meta bug to track what it would take to support HDR content in Firefox/Gecko. В тот момент никто и не подозревал, что этот тикет станет порталом в бездну производственного ада, цифровым долгостроем и памятником неповоротливости корпоративной разработки. Первые пару лет баг жил своей тихой жизнью: разработчики судорожно добавляли и убирали зависимости, блокировали другие тикеты, создавая сложнейшее дерево багов, напоминающее генеалогию Габсбургов, где все зависят от всех и одновременно блокируют друг друга.

Время шло, Хром уже вовсю показывал сияющие HDR-ролики с котиками, Safari не отставал, а пользователи Firefox продолжали смотреть на выцветшую SDR-версию мира, задавая в комментариях сакраментальный вопрос: Ну когда уже?. Комментарии me-too и advocacy скрывались модераторами с регулярностью, достойной лучшего применения, но поток страждущих было не остановить.

Is there a roadmap for HDR photo support in FireFox? There is now true HDR support in Chrome, Brave, and Opera. Safari now supports tone mapping (currently in Tech Preview).

Так вопрошал один из анонимусов, выражая общую боль и недоумение. А ведь это было всего два года назад. Наивный.

Явление героя[править]

Настоящая драма развернулась, когда в тред ворвался пользователь Mark Rejhon, энтузиаст из Blur Busters. Этот человек не просто спросил когда, он провел полный аудит зависимости бага, расписал, что на что влияет, и даже предложил финансовую помощь в виде баунти и донатов. Его многостраничные комментарии — это отдельное произведение искусства, где он с дотошностью хирурга препарирует месиво из тикетов и указывает на самый главный блокирующий баг, мать всех бед — Bug 1889288, отвечающий за поддержку HDR самим движком рендеринга WebRender.

I declare #1889288 the bedrock item for adding HDR support to Windows.

If any open source developers are deciding where to begin; then here we go!

I’m willing to contribute a paid bug bounty, how do I begin?

Его героические усилия, конечно, были замечены, но воз и ныне там. Пока на фронтах Windows и macOS шла позиционная война, в параллельной вселенной линуксоидов разворачивалась своя, еще более эпичная битва. Bug 1642854, посвященный поддержке HDR на Linux, представляет собой монументальное полотно отчаяния. Здесь в игру вступают Wayland, протоколы для управления цветом, которые то принимают, то отклоняют, DMABufSurfaces, wl_surface_commit и лично товарищ Мартин Странски :stransky, который в одиночку тянет на себе этот неподъемный воз, отбиваясь от репортов о зеленых экранах, артефактах при скроллинге и неработающем VRR. Количество зависимостей в этом баге уже перевалило за сотню, и кажется, что для его закрытия потребуется переписать половину графического стека Linux.

Техноересь[править]

Тем временем, в основном треде развернулись нешуточные дебаты о святом. Как правильно смешивать альфа-канал в HDR? Использовать линейное цветовое пространство или sRGB? А может, rec2020-extended? Или вообще scRGB? Каждый второй комментарий превращался в мини-лекцию по колориметрии, вызывая у простых пользователей лишь один вопрос: Вы там работать собираетесь?

In my opinion, using linear than srgb transfer would be better. As there are some controversy about sRGB transfer function(piece-wise or power 2.2). Also for BT2020, I don’t think windows would accept BT2020 primaries + sRGB transfer.

Пока теоретики ломали копья, разработчики, кажется, наконец-то нащупали путь. Эшли Хейл :ahale озвучила план: использовать srgb-extended или rec2020-extended с форматом пикселя RGBA16F, что позволит сохранить совместимость и не сломать рендеринг всего остального веба. Это обнадёжило толпу, но, как водится, приоритетом сначала стали видео и WebGL, а простые картинки и CSS — потом. Когда-нибудь.

На сегодняшний день баг все еще открыт. Он оброс новыми зависимостями, пережил смену приоритетов и стал символом. Символом того, что в современном мире даже такая, казалось бы, базовая для 2025 года вещь, как HDR, требует титанических усилий, если ты — не Корпорация добра, а Mozilla Foundation. И пока разработчики продолжают свой крестовый поход, мы можем лишь наблюдать за этой комедией положений. Ведь к тому времени, как они его допилят, человечество наверняка изобретет что-нибудь вроде нейро-квантового Super-HDR+, и можно будет заводить новый мета-баг.

App.png Весьма полезная вещь, позволяет машинам работать с помощью коммандычей
МетаПрограммаDRM (SecuROMStarForceАналоговая дыра) • БагБот (Автоответчик) • Варез (Repack) • ГлюкГуйДонатКопирайт (By design) • ЛогНюкРут (Не работай под рутом) • Спортивное программированиеМегапиксельКомпьютерВерсия 2.0КодОбфускацияСкриншотДатамайнПлагинТекстовый файлБольшие данныеАльфа и бета-тестыТаймстампКэшШаблоныHello WorldНейросетиФайлИнсталляцияВидеоМощный сбой Microsoft 19 июля 2024 годаCrowdStrikeПроект GNUUserscriptDxvkVkd3dБратан хорош давай давай впередКонечный автоматLumenЗаступник (приложение)NeeUnreal MCPОптимизацияДрайверТестированиеТройная буферизацияQBitTorrentСинтезаторОбрыв загрузки файла на 99%Polycount.comГрок написал программу о себеВредоносTamTam
ФичиБагрепорт12309BSODCookiesEmbrace, extend and extinguishFL StudioSheep.exeWinlogon.exeБубенЗащита от дуракаКостыльМашинный переводПасхальные яйцаСвистелки и перделкиСм. рис. 1Съешь ещё этих мягких французских булокTermuxGNU MetroИндусский кодНескучные обои • Сжатие (За сжатие ДжипегаШакалШкала) • Работает — не трогайРандомайзерPDF (Распознавание PDF) • Дело Google в ФАСЧат-ботXMLМакросКритическая ошибкаФреймворкСинонимайзерSourceТрёхмерное отслеживаниеТрассировка фотоновHZB OcclusionДаунгрейд RTX 4070TressFXАвтопереводчикVSCodiumThorium BrowserShovelwareФайл подкачкиTea Dating AdviceSingle-Page Application
ВредоносноеБотнетБрутфорсВинлокЗвонилкаКитайские пингвиныПиксель смертиТроянЧервь МоррисаBonziBuddyMediaGetBrowser hijackingTinderМиссис МажорУтечка буфера обменаWin 10 TweakerОпараш Mozilla FirefoxЯндекс.МузыкаКрэкерБезопасность через умолчаниеGrifter.aviTrojan.Winlock.DeathМиссис МажорСредаDirectStorageDriverpackГенератор случайных чиселDisable Core 0РомхакингDDrawCompatWingetCreateWinGetCoowonЯндекс МессенджерVCPkgSELinuxXfireYouTube Auto-ResumeTape OperatorBotFatherMTProtoSignalDoubleClickFixGiteeБотофермаMalwareCeno Browser
КомпанииApple / Apple (AppleScript) • GoogleMicrosoftSAPЯндексExiled Exchange 2BraveAdNauseamСкурвление FirefoxCafe BazaarAMD FEMFXPPSSPPАвтохукQuick machine recoveryMAXBypassNROWizTreeJTubeGallium NineFalconRu-WireGuardМобильное приложениеWebRenderСмс-бомберInstaller-SHProton GEProcess LassoParkControlDolby AccessDevToolsDxWrapperБойкот мессенджера MaxFirejailLenza
Движения8-bitOpen source (КрасноглазикиЛинуксоиды) • Вирусная сценаДаунгрейдДемосценаМоддингMMDDirectDrawЛагиБлокировка Дискорда в РоссииOpera GXНесоответствие MIME-типаRenoisePygameLs (UNIX)МетаданныеПатчNginxПиксельЭмуляторSearxТамТамMallocСвязный списокSOLIDGreasemonkeyПлатные сообщенияFlatpakNouveauFuse.jsFellouИстория браузераCORE.exeHDR в FirefoxCodeberg.orgGiteaForgejoКопилефтCUDAISOGNU GPLCeph
Офис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.exeDirectX
Браузеры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