LINUX.ORG.RU

Есть VDPAU и VA-API. На каком GPU - что?

 , , , ,


2

1

Я составил таблички и пояснения к ним:

2008-2013 годы:
┌──────────────────────────┬─────┬─────┐
│                          │VDPAU│VAAPI│
├──────────────────────────┼─────┼─────┤
│NVIDIA (проприетарный)    │ [x] │ [ ] │
├──────────────────────────┼─────┼─────┤
│Catalyst (fglrx)          │ [ ] │ [x] │
├──────────────────────────┼─────┼─────┤
│Intel i965                │ [ ] │ [x] │
├──────────────────────────┼─────┼─────┤
│nouveau (открытый NVIDIA) │ [ ] │ [ ] │
├──────────────────────────┼─────┼─────┤
│radeon                    │ [ ] │ [ ] │
└──────────────────────────┴─────┴─────┘
2014 год (Ubuntu 13.10 или Linux Mint 16 + Oibaf PPA)
┌──────────────────────────┬─────┬─────┐
│                          │VDPAU│VAAPI│
├──────────────────────────┼─────┼─────┤
│NVIDIA (проприетарный)    │ [x] │ [ ] │
├──────────────────────────┼─────┼─────┤
│Catalyst (fglrx)          │ [ ] │ [x] │
├──────────────────────────┼─────┼─────┤
│Intel i965                │ [ ] │ [x] │
├──────────────────────────┼─────┼─────┤
│nouveau (открытый NVIDIA) │ [x] │ [ ] │
├──────────────────────────┼─────┼─────┤
│radeon                    │ [x] │ [ ] │
└──────────────────────────┴─────┴─────┘
2015 год
┌──────────────────────────┬─────┬─────┐
│                          │VDPAU│VAAPI│
├──────────────────────────┼─────┼─────┤
│NVIDIA (проприетарный)    │ [x] │ [ ] │
├──────────────────────────┼─────┼─────┤
│Catalyst (fglrx)          │ [ ] │ [x] │
├──────────────────────────┼─────┼─────┤
│Intel i965                │ [ ] │ [x] │
├──────────────────────────┼─────┼─────┤
│nouveau (открытый NVIDIA) │ [x] │ [x] │
├──────────────────────────┼─────┼─────┤
│radeon                    │ [x] │ [x] │
└──────────────────────────┴─────┴─────┘
2016 год - настоящее время
┌──────────────────────────┬─────┬─────┐
│                          │VDPAU│VAAPI│
├──────────────────────────┼─────┼─────┤
│NVIDIA (проприетарный)    │ [x] │ [ ] │
├──────────────────────────┼─────┼─────┤
│Intel i965                │ [ ] │ [x] │
├──────────────────────────┼─────┼─────┤
│nouveau (открытый NVIDIA) │ [x] │ [x] │
├──────────────────────────┼─────┼─────┤
│radeon/amdgpu/amdgpu-pro  │ [x] │ [x] │
└──────────────────────────┴─────┴─────┘

Первые 5 лет на NVIDIA был VDPAU, а на ATi и Intel - VA-API.

Потом в открытых драйверах Radeon и Nouveau стал поддерживаться VDPAU. Почему разработчики этих открытых* драйверов выбрали именно VDPAU? Может монетку кинули? А ведь было бы так красиво, если бы NVIDIA была единственная во второй таблице с поддержкой VDPAU! Но - что было, то было, и история не терпит сослагательного наклонения

Скорее всего, выбор объяснялся тем, что на YouTube был Flash Player, а он поддерживал только VDPAU. Однако в 2016 году YouTube отказался от Flash Player, а вместе с ним - и остальные сайты с онлайн видео и аудио. И тут мне следовало бы сказать «поэтому в radeon и nouveau добавили VA-API», но это произошло ещё в 2014, за два года до ухода YouTube с Flash Player

В декабре 2015 года была выпущена последняя версия проприетарного драйвера видеокарт Catalyst (также известного как fglrx). Последняя версия Ubuntu, в которой можно запустить версию 15.12 - 16.04, да и то нужно установить xserver из 15.10. Поэтому я убрал Catalyst из таблицы, и добавил amdgpu-pro, в который реинкарнировался Catalyst

★★★★★

Последнее исправление: ZenitharChampion (всего исправлений: 10)

* - термины «открытый» и «свободный» несколько отличаются. В кратце: термин «свободное ПО» придумали раньше «Открытого ПО», и многих смущало слово Free в нём. Придумали слово Open, которое вроде как синоним, но нет. Бывают лицензии на код Open, но не Free, например корпорация открыла код, на который разрешила «только смотреть». Или лицензия BSD является Open, но не Free, потому что она позволяет форкнуть код, распространять бинарники, и никому не показывать что ты внёс в код

В данном случае, драйвер radeon является именно «открытым», а не «свободным», потому что без проприетарного firmware он не работает

ZenitharChampion ★★★★★
() автор топика
Последнее исправление: ZenitharChampion (всего исправлений: 1)
Ответ на: комментарий от ZenitharChampion

Ты забыл сказать что в ангельском просто «free» в отношении ПО употребляется и в отношении закрытого (проприетарного), но свободно распространяемого на тех или иных условиях продукта — отсюда и путаница.

В данном случае, драйвер radeon является именно «открытым», а не «свободным»

Этот момент вообще срачегонный, вот дебиановцы такое ПО выделяют в отдельную категорию: не free, но и не non-free.

mandala ★★★★★
()
Ответ на: комментарий от mandala

Спасибо за пояснения. Вообще, «открытый» или «свободный» ли драйвер radeon - вопрос открыт...

ZenitharChampion ★★★★★
() автор топика

┌──────────────────────────┬─────┬─────┐
│                          │VDPAU│VAAPI│
│Intel i965                │ [ ] │ [x] │



На Intel можно vdpau через libvdpau-va-gl

annelion@westfalia:/data/volume1/Movies$ VDPAU_DRIVER=va_gl mpv -vo vdpau Lion.BDRip.1080p.mkv 
Playing: Lion.BDRip.1080p.mkv
 (+) Video --vid=1 (*) (h264 1920x802 23.976fps)
     Video --vid=2 [P] 'cover.jpg' (mjpeg)
 (+) Audio --aid=1 --alang=rus (*) (dts 6ch 48000Hz)
     Audio --aid=2 --alang=eng 'English' (dts 6ch 48000Hz)
     Subs  --sid=1 --slang=rus 'Russian (Dycall, penni, p_zombie)' (subrip)
     Subs  --sid=2 --slang=rus 'Russian' (subrip)
     Subs  --sid=3 --slang=eng 'English (Forced)' (subrip)
     Subs  --sid=4 --slang=eng 'English' (subrip)
     Subs  --sid=5 --slang=eng 'English (SDH)' (subrip)
     Subs  --sid=6 --slang=rus (subrip)
libva info: VA-API version 1.3.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_2
libva info: va_openDriver() returns 0
[vo/vdpau] VDPAU is most likely emulated via VA-API.
[vo/vdpau] This is inefficient. Use --vo=gpu instead.

annerleen ★★★★☆
()

А где NVDEC? Сейчас уже невозможно через vdpau задействовать всё, что умеют карты nvidia аппаратно, например, HEVC 10-bit только через NVDEC.

rbh-17m
()

а с недавних пор есть ещё intel media driver

tm4ig
()

fornlr, rbh-17m, в треде про аппаратное кодирование (не декодирование) написали коммент, из которого следует, что NVIDIA создала зоопарк из API:

nvresize (патч на исходники ffmpeg 3.0, который так и не был принят) в итоге вошёл в ffmpeg в виде scale_cuda. Однако ни первый, ни второй, уже не нужны, так как в библиотеке libnpp есть более качественная реализация scale_npp

cuvid это старое название nvdecode, там есть resize\crop\deinterlace. Какая часть там cuda, а какая использует аппаратный блок, даже сама nvidia уже не помнит

ZenitharChampion ★★★★★
() автор топика

Таблицы хорошие, молодец. Только толку от них. Сейчас имеет смысл использовать только VAAPI (кроме бедолаг, которые на проприетарном нвидиа драйвере). VAAPI работает лучше VDPAU на amd и так же хорошо на intel.

anonymous
()
Ответ на: комментарий от anonymous

От одного разработчика в комментариях Phoronix читал что поддержка VDPAU и VAAPI драйверами AMD одинаковая, кроме отсутствия VP8/VP9 в библиотеке и спецификации VDPAU и различий в реализациях приложений.

В любом случае NVIDIA забросила доработку VDPAU в 2015, патчи для VP8 валяются на мелководье интернета, но видно никому VDPAU не впёрся для декодирования когда Intel активно пилит VAAPI для декодирования и кодирования.

Сам скреб информацию с различных сайтов допиливая статью на ArchWiki не так давно. Если кто хочет может перевести, перевод немного устарел за года.

Deleted
()
Ответ на: комментарий от BceM_IIpuBeT

fglrx это модуль ядра fglrx.ko, драйвер Xorg fglrx_drv.so и fglrx-libglx.so, и libGL.so.1, не базирующийся на Mesa и являющийся проприетарным кодом

В драйвере amdgpu из всего этого оставили только последний пункт - файл OpenGL. Модуль ядра и драйвер Xorg теперь одни и те же для открытого и закрытого драйверов. А библиотеки OpenGL - разные: amdgpu это Mesa, а amdgpu-pro это проприетарная. Как я понял, libGL.so.1 из состава amdgpu-pro унаследован у fglrx

Подробнее можно прочитать здесь и здесь. Это ссылки на перевод новостей с Phoronix. Лучше смотреть оригинальные новости (там есть ссылка на источник), потому что там - слайды презентации. Они понятнее, чем абзацы текста

ZenitharChampion ★★★★★
() автор топика
Последнее исправление: ZenitharChampion (всего исправлений: 3)
Ответ на: комментарий от annerleen

Надо. Сравни выводы. И top промониторь.

[user@gentoo 55d569c3-d1da-4f59-a954-81c8ba60d0fe]$ mpv --vo=vdpau --hwdec=vdpau 
 (+) Video --vid=1 (*) (h264 1920x1080 23.976fps)
 (+) Audio --aid=1 (*) (ac3 2ch 48000Hz)
     Audio --aid=2 (ac3 2ch 48000Hz)
Using hardware decoding (vdpau).
AO: [pulse] 48000Hz stereo 2ch float
VO: [vdpau] 1920x1080 vdpau[yuv420p]
[vo/vdpau] Compositing window manager detected. Assuming timing info is inaccurate.
AV: 00:00:01 / 01:10:11 (0%) A-V:  0.000


Exiting... (Quit)
[user@gentoo 55d569c3-d1da-4f59-a954-81c8ba60d0fe]$ mpv --vo=vdpau 
 (+) Video --vid=1 (*) (h264 1920x1080 23.976fps)
 (+) Audio --aid=1 (*) (ac3 2ch 48000Hz)
     Audio --aid=2 (ac3 2ch 48000Hz)
AO: [pulse] 48000Hz stereo 2ch float
VO: [vdpau] 1920x1080 yuv420p
[vo/vdpau] Compositing window manager detected. Assuming timing info is inaccurate.
AV: 00:00:01 / 01:10:11 (0%) A-V:  0.000


Exiting... (Quit)
[user@gentoo 55d569c3-d1da-4f59-a954-81c8ba60d0fe]$ mpv --vo=vaapi 
 (+) Video --vid=1 (*) (h264 1920x1080 23.976fps)
 (+) Audio --aid=1 (*) (ac3 2ch 48000Hz)
     Audio --aid=2 (ac3 2ch 48000Hz)
AO: [pulse] 48000Hz stereo 2ch float
VO: [vaapi] 1920x1080 yuv420p
AV: 00:00:02 / 01:10:11 (0%) A-V:  0.000


Exiting... (Quit)
[user@gentoo 55d569c3-d1da-4f59-a954-81c8ba60d0fe]$ mpv --vo=vaapi --hwdec=vaapi
 (+) Video --vid=1 (*) (h264 1920x1080 23.976fps)
 (+) Audio --aid=1 (*) (ac3 2ch 48000Hz)
     Audio --aid=2 (ac3 2ch 48000Hz)
Using hardware decoding (vaapi).
AO: [pulse] 48000Hz stereo 2ch float
VO: [vaapi] 1920x1080 vaapi[nv12]
AV: 00:00:01 / 01:10:11 (0%) A-V:  0.000
steemandlinux ★★★★★
()
Ответ на: комментарий от annerleen

Лучше всего вместо vo=vaapi в mpv.conf прописать vo=gpu

vaapi
Intel VA API video output driver with support for hardware decoding. Note that there is absolutely no reason to use this, other than compatibility. This is low quality, and has issues with OSD. https://github.com/mpv-player/mpv/blob/master/DOCS/man/vo.rst

hwdec=auto, либо, в зависимости от железа, vaapi, nvdec или vdpau, если уверены, что вам конкретно нужно.

Вот что ещё интересно, установил intel-media-driver https://www.archlinux.org/packages/community/x86_64/intel-media-driver/ также установлен libva-intel-driver, как узнать, какую реализацию mpv будет по умолчанию использовать, старую или новую.

rbh-17m
()

Претендуешь на «историка», а на деле пишешь такую чушь, что за тебя аж стыдно. Какой ещё VA-API на Сatalyst в 2008-2013?! Не было его там. У них XvBA.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

https://wiki.archlinux.org/index.php/AMD_Catalyst#Video_acceleration

Catalyst supports hardware video acceleration via VA-API. Applications can take advantage of AMD Radeons UVD2 chipsets via AMD's X-Video Bitstream Acceleration (XvBA) library.

https://en.wikipedia.org/wiki/X-Video_Bitstream_Acceleration

In November 2009 a XvBA backend for Video Acceleration API (VA API) was released,[4] which means any software that supports VA API will also support XvBA.[3]

Deleted
()
Последнее исправление: chpii (всего исправлений: 1)
Ответ на: комментарий от rbh-17m

как узнать, какую реализацию mpv будет по умолчанию использовать, старую или новую.

Будет юзать реализацию из libva-intel-driver, как и всё остальное. Реализацию intel-media-driver нужно отдельно включать, через установку переменной LIBVA_DRIVER_NAME.

i-rinat ★★★★★
()
Ответ на: комментарий от Deleted

Там написано, мягко говоря, странное. Даже в той цитате, что ты привёл.

Кстати, VA-API для Catalyst запиливали в Питере. Тут на форуме один причастный хвастался, где-то за год до релиза.

In November 2009 a XvBA backend for Video Acceleration API (VA API) was released,

Это был софт от другой коммерческой компании. Более того, некоторое время он распространялся только в виде бинарников, так как в 2009 не было публично доступного SDK для XvBA. Его открыли позже.

Косвенно, эти цитаты подтверждают, что VA-API в Catalyst не было. Потому что иначе зачем выпускать переходник?

i-rinat ★★★★★
()
Последнее исправление: i-rinat (всего исправлений: 1)

Я считаю, что эта таблица совершенно бесполезна, т.к. не учитывает то, что у разных GPU совершенно разный уровень поддержки, как программной, так и аппаратной.

Более того, поддержка функций кодирования/декодирования может зависить от опций, с которыми собран модуль ядра, а так же от наличия firmware определенной версии.

Khnazile ★★★★★
()
Ответ на: комментарий от i-rinat

Теперь и мне стыдно, но уже за себя :)

Deleted
()

VA-API поддерживает wayland, VDPAU - нет

gtk3 ★★★
()

И вишенка на торт печали - дефолтный в Linux браузер Firefox никакого аппаратного ускорения декодирования до сих пор не умеет, тогда как в 2019 году почти всё видео просматривается юзерами через браузер.

snizovtsev ★★★★★
()
Ответ на: комментарий от i-rinat

Я хотел уйти от излишнего усложнения. В конечном итоге пользователь использовал mplayer-vaapi. Если начать всё расписывать, то никакого ограничения символов не хватит

ZenitharChampion ★★★★★
() автор топика
Ответ на: комментарий от snizovtsev

Я подозреваю, что в Firefox и Chrome не работает аппаратное ускорение видео, потому что им проплатил Microsoft. Проплатили ещё во времена нетбуков, когда Xandros конкурировал с Windows XP, и когда на ASUS EEE PC 900 вообще не было аппаратного декодера

Понимаю что «нафиг конспирологию», но ей так удобно всё объяснить. То что в исходниках chromeos есть код поддержки VA-API, а в исходниках chrome его нет. А в Firefox я даже пересказывать не буду всю эту Санта-Барбару - проворовавшиеся политики столько не врут, как они

ZenitharChampion ★★★★★
() автор топика
Ответ на: комментарий от ZenitharChampion

Я хотел уйти от излишнего усложнения.

Зачем тогда вообще начинал? Написать просто — действительно сложно. Но это не оправдание для исследования низкого качества.

Иногда возникает желание посмотреть, как развивалась сцена. Но вот такие абы как сделанные сводные таблицы всё портят. Мало нам спутанной информации во всяких wiki, ещё и ты сложностей добавляешь. Не надо так. Делай на совесть.

i-rinat ★★★★★
()
Ответ на: комментарий от ZenitharChampion

Я подозреваю, что в Firefox и Chrome не работает аппаратное ускорение видео, потому что им проплатил Microsoft. Проплатили ещё во времена нетбуков, когда Xandros конкурировал с Windows XP, и когда на ASUS EEE PC 900 вообще не было аппаратного декодера

Понимаю что «нафиг конспирологию», но ей так удобно всё объяснить.

Это не конспирология, это шизофазия. Какая связь между «проплатил Microsoft» и отсутствием аппаратных декодеров на нетбуках?

То что в исходниках chromeos есть код поддержки VA-API, а в исходниках chrome его нет.

А это просто бред уже.

А в Firefox я даже пересказывать не буду всю эту Санта-Барбару

Учитывая степень бредовости заявлений об исходниках Chrome и ChromeOS, это даже к лучшему.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Вообще говоря под капотом воспроизведения медиа в Firefox/Linux - ffmpeg, который vaapi умеет. Но он там специально отключен, пруф:

/**
 * FFmpeg calls back to this function with a list of pixel formats it supports.
 * We choose a pixel format that we support and return it.
 * For now, we just look for YUV420P, YUVJ420P and YUV444 as those are the only
 * only non-HW accelerated format supported by FFmpeg's H264 and VP9 decoder.
 */
И в багзилле ноль обсуждения темы почему так сделано. Ты, судя по github, немного в теме VAAPI. Как думаешь, почему они так сделали? Боятся, что реализация плохая и это потенциальная дыра?

snizovtsev ★★★★★
()
Ответ на: комментарий от snizovtsev

Глянул на обсуждение всё ещё не принятого в Chromium патча и готов ответить сам себе. non-hw просто работает и стабильно, а vaapi:

  • Нужно правильно собрать;
  • Нужно продырявить seccomp песочницу для доступа к девайсу;
  • Нужны много тестировать, чтобы сделать таблицу quirks железо*кодек когда оно нормально работает.

Вообщем - просто рук на это не было. Можно попробовать для себя сделать кустарную сборку с vaapi под конкретное железо.

snizovtsev ★★★★★
()
Ответ на: комментарий от snizovtsev

FFmpeg не позволяет автоматически (автомагически?) заюзать VA-API или VDPAU, или любое другой интерфейс для аппаратно-ускоренного декодирования. Он немного упрощает работу — программист кормит его потоком данных, а он внутри часть потока декодирует и заполняет большие структуры, которых требуют API. Но он не делает вообще всё, как многим кажется. Если при софтовом декодировании на выходе из FFmpeg программист получает массив байт, непосредственно представляющих собой YUV компоненты изображения, которые затем переводятся в RGB компоненты цвета отдельных пикселей, в случае аппаратного декодирования из FFmpeg на выходе — дескриптор поверхности. В VA-API и VDPAU это просто целое число. Что дальше с этим дескриптором делать — забота программиста.

Даже немного не так. Программист должен запросить у конкретного API набор поверхностей, и когда FFmpeg через колбеки просит очередную поверхность для работы, нужно их предоставлять. Потом когда-то FFmpeg их отдаёт обратно, так что нужно следить, какие в работе, а какие свободны. Звучит сложнее, чем это есть на деле. Но зато следующая часть звучит проще, чем она есть. Основная сложность состоит в том, что нельзя допускать выкачивания декодированных кадров обратно в основное ОЗУ из памяти видеоадаптера. Это тормозная операция, потому что видеоадаптеры оптимизируются на передачу из ОЗУ в них, а не наоборот. Поэтому нужно совместить кадры видео с остальной страничкой внутри GPU. Мне этот момент непонятен, потому что я не знаю, как вообще это работает в браузерах. Возможно, придётся все фичи CSS реализовывать в виде шейдеров на GPU. Вращения, смещения, скосы, масштабирования по осям, просто применения матриц, смешивания слоёв. Что там ещё? Похожее пытаются в рамках WebRender сделать.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Спасибо, теперь многое понятно! Покопаюсь на досуге в лисе, давно хотел.

snizovtsev ★★★★★
()
Ответ на: комментарий от i-rinat

Собственно вот и откопал

Поэтому нужно совместить кадры видео с остальной страничкой внутри GPU

У них под Linux/OpenGL это не работает, стоит как блокер VAAPI: https://bugzilla.mozilla.org/show_bug.cgi?id=594876
А в Windows/D3D частично работает, поэтому именно фичу как раз и проверяют прежде чем инициализировать DXVA:
https://hg.mozilla.org/mozilla-unified/file/tip/dom/media/platforms/wmf/WMFVi...

Ещё раз спасибо!

snizovtsev ★★★★★
()
Ответ на: комментарий от snizovtsev

> Вообщем - просто рук на это не было

На устройствах ChromeBook всё работает. И я не думаю что программисты из Google сделали там «дыру в безопасности», вытащив из «песочницы» наружу что-то. Потому что там - грамотные спецы, которые не могут позволить выпустить на рынок устройство с дырой в безопасности

Из ChromeOS взяли этот код, и перенесли в десктопный Chromium в виде патча. Всё просто работает уже сейчас. Только в апстриме этого нет, и не будет никогда. Примерно по той же причине, по которой exfat-nofuse никогда не будет в ядре. «Мужчина, это не для вас написано». В первом случае код написан для хромбуков, а во втором - для гаджетов Samsung

ZenitharChampion ★★★★★
() автор топика
Ответ на: комментарий от ZenitharChampion

Из ChromeOS взяли этот код, и перенесли в десктопный Chromium в виде патча. Всё просто работает уже сейчас. Только в апстриме этого нет, и не будет никогда.

Я смотрю, ты всё не унимаешься. Глянь в апстрим, прежде чем снова такое писать.

i-rinat ★★★★★
()
Ответ на: комментарий от snizovtsev

Я расчитывал заюзать тот же путь, который используется для плагинов (Flash) в windowless режиме. Там плагину выдаётся X Drawable, в который он рисует картинку. Думаю, там есть что-то типа fast path для случаев, когда плагин выводит картинку в прямоугольную область, стороны которой параллельны сторонам экрана. Даже если этот fast path будет работать только для непрозрачных элементов, это отлично, потому что подавляющее большинство видео будут именно такими. Если остальные варианты будут пожирать CPU, не так уж и страшно. Не хуже, чем сейчас есть.

i-rinat ★★★★★
()
Ответ на: комментарий от snizovtsev

Можно попробовать для себя сделать кустарную сборку с vaapi под конкретное железо.

Все уже собрано до нас.

sudo add-apt-repository ppa:saiarcot895/chromium-dev
sudo apt-get update
sudo apt-get install chromium-browser
anonymous
()
Ответ на: комментарий от steemandlinux

Зачем вообще юзать vo=vaapi/vdpau? Вон даже mpv пишет:
[vo/vdpau] This is inefficient. Use --vo=gpu instead.

Если медленнее, чем -vo=vdpau --hwdec=vdpau, то юзаем --gpu-context=x11egl и работает также быстро, ещё и сабы нормальные и качество выше.

chaos_dremel ★★
()
Ответ на: комментарий от anonymous

VAAPI

оно живое? вроде ж наоборот все использовали vdpau ещё год назад. со стороны приложения, была прослойка из vdpau в vaapi, и к тому времени вообще сгнило всё в vaapi.

anonymous
()
Ответ на: комментарий от i-rinat

Мне этот момент непонятен, потому что я не знаю, как вообще это работает в браузерах

Тут только два варианта: 1) кадр превращается в OpenGL текстуру, которая затем участвует в композитинге на равне с другими частями страницы; 2) (костыль) «hole punching» - видео выводится напрямую на экран в оверлее или сквозь область страницы, залитую прозрачным цветом (естественно, сложные CSS-трансформации в этом случае никого не заботят)

Возможно, придётся все фичи CSS реализовывать в виде шейдеров на GPU

Они и так реализованы, чтобы accelerated compositing мог работать. Если встречается какая-то дичь без opengl-реализации, то все сваливается в софтовую отрисовку со всеми вытекающими

annulen ★★★★★
()
Последнее исправление: annulen (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.