HDR в Firefox
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+, и можно будет заводить новый мета-баг.