Неправильные цвета с HEVC 10-bit (DXVA) и текстуры > 8-bit [не баг]

Автор Lord_D, 26 мая 2019, 12:27:16

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Lord_D

Формат текстуры 8-bit: https://imgur.com/Hqdklyx (нормальные цвета)
Формат текстуры 10-bit: https://imgur.com/YKq1WBH (всё серое)
Формат текстуры 16-bit: https://imgur.com/L7rHP4C (темно)

Такое только с декодером DXVA, с обычным проблемы нет.
Повторяется как со встроенным декодером видео, так и с LAV.

MPC-BE: 1.5.4.4554.
Видеокарта: AMD Radeon RX 590.
Windows 7 SP1 x64.

V0lt

Похоже какие-то ограничения драйвера. Похожая ситуация есть на Intel.

Нужен скриншот со статистикой (Ctrl+J) для декодера DXVA2 и программного.

Добавлено: 2019-05-26 13:27:50

Сделай еще скриншоты DXVA Checker вкладки видеопроцессора DXVA2 для NV12 и P010.
Пример: раз, два.


V0lt

Спасибо.

Тут дело вот в чем. EVR-CP содержит внутри себя EVR, который использует DXVA2 VideoProcessor. Выходной RGB-формат у DXVA2 VP на Window 7 только один - X8R8G8B8. На Windows 8.1 на некоторых картах появляется A2R10G10B10. Но с фиг знает с каких времен проверку выходного формата DXVA2 VP все дружно игнорировали, пока не появилась нормальная графика у Intel, где это не прокатило. А вот тут еще нюанс с AMD вылез на P010.

Есть радикальное решение - дубовая опция для проверки-непроверки выходного формата. Но у нее есть свои неудобства.

Добавлено: 2019-05-26 16:34:49

Кстати, у экспериментального MPC VR в этом плане меньше ограничений, т.к. отсутствует посредник в виде системного EVR.

Lord_D

Спасибо за наводку на MPC VR. Надо будет попробовать.

Возник вопрос: есть ли вообще какие-то плюсы у форматов текстур 10-bit int и 16-bit float перед 8-bit? Или глазом это заметно не будет?

Добавлено: 2019-05-26 20:57:25

С MPC VR проблемы нет.


Добавлено: 2019-05-26 21:03:57

Зато есть другая проблема =) Размер кадра на полном экране равен разрешению рабочего стола. У меня настроено так: рабочий стол - 1280x720, видео на полном экране - 1920x1080 (родное разрешение монитора). При переходе на полный экране видео отображается только в прямоугольнике 1280x720 в левом верхнем углу. Такой баг уже когда-то был с EVR. Вроде бы даже я о нём и писал.
Скрин: https://imgur.com/uMeNdDf
Нашёл тему: https://mpc-be.org/forum/viewtopic.php?id=243

V0lt

Сильно упрощенная схема работы EVR-CP.
1. Вход NV12, P010
2. DVXA2 VP
3. Буферы EVR (вот тут проблема у EVR-CP на Win7!).
4. Коррекция, ресайз, субтитры и прочее.
5. Вывод RGB 8-бит
Опция "Формат текстуры" задает формат текстур, которые используются для промежуточных результатов. Влияет на этапы 3 и 4. Чем больше преобразований, тем больше накапливается ошибок округления. На 8-битной текстуре ошибки округления самые значимые. На типичном видео можно не увидеть разницы, но на анимации и HDR на большом дисплее может проявиться бандинг.

Добавлено: 2019-05-26 18:42:35

MPC VR лучше обсуждать в соответствующей теме.

Aleksoid1978

Мне кажется тут дело 100% в драйвере. С DXVA подключается P010, в софте NV12.

Проверь с обычным EVR c DXVA и софт, и посмотри на данные pininfo у EVR.
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Lord_D

pin info: https://mediafire.com/?jk3mkp9om793a92
А теперь фокус-покус - с программным декодером и обычным EVR видео выглядит так: https://imgur.com/e5gUb6m
С EVR Custom такой фигни нет. Обратите внимание, что в этом случае в pin info P010. И ещё на то, что на превью на полосе перемотки нормальная картинка.
Забыл главное: DXVA + обычный EVR = нормальное видео. Тут не работает именно с программным.

Aleksoid1978

Короче дрова говорят что могут P010, но криво :) Дрова обновлений нет ??

Тут я даже не знаю что посоветовать - ну юзать EVR-CP с 8 битными текстурами.
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Lord_D

Цитата: Aleksoid1978Дрова обновлений нет ??
Самые новые стоят.

Цитата: Aleksoid1978Короче дрова говорят что могут P010, но криво
Ну не знаю. Стандартный EVR + DXVA работает нормально, ему дрова не мешают.

Цитата: Aleksoid1978Тут я даже не знаю что посоветовать - ну юзать EVR-CP с 8 битными текстурами.
В MPC VR работает с любыми текстурами (но у него другая проблема). Ему тоже дрова не мешают работать. По-моему дело всё-таки не в дровах. Где-то в EVR-CP что-то не проверяется.

Ну и вопрос почему с обычный EVR с софтовым декодером ломается? EVR-CP с софтовым работает нормально с любыми текстурами.

Aleksoid1978

Цитата: Lord_D
Цитата: Aleksoid1978Короче дрова говорят что могут P010, но криво
Ну не знаю. Стандартный EVR + DXVA работает нормально, ему дрова не мешают.
Значит не P010 а NV12 тип на входе. Для EVR-CP только на Win10 разрешен P010 всегда, для других систем - только для DXVA декодера.

В MPC VR кстати может тоже самое(NV12 а не P010), проверь.

Добавлено: 2019-05-27 22:57:36

Да и вообще про что речь - обычный EVR работает с 8 битными текстурами и у него все ок как и у нашего EVR-CP
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Lord_D

Когда ломается обычный EVR - на выходе софтового декодера P010, на входе EVR тоже P010. У EVR-CP и MPC VR тоже на входе P010 и с ними ошибки нет. То есть декодер вроде бы работает одинаково для всех трёх VR, зелёный кадр только у обычного EVR.
Ошибка с софтовым декодером и обычным EVR повторяется также и с h264 10-bit - такой же зелёный кадр.

DXVA + MPC VR на выходе декодера и входе VR также P010, ошибки нет. Так что P010 точно работает.

Добавлено: 2019-05-27 20:02:15

Цитата: Aleksoid1978Да и вообще про что речь - обычный EVR работает с 8 битными текстурами и у него все ок как и у нашего EVR-CP
Это понятно. Но он уже ломается с 10-битным видео с софтовым декодером, в то время, как EVR-CP - нет (хоть с 8-битными текстурами, хоть с любыми другими). Это уже какая-то другая ошибка.


Добавлено: 2019-05-27 20:19:02

У DXVA + EVR-CP + 8-битныые текстуры также везде P010. NV12 вообще нигде не мелькает.

NV12 удалось получить только в одном случае - software + EVR-CP. Со всеми другими декодерами и VR формат всегда P010. И большая часть из этих комбинация работают правильно. Получается, ошибка не зависит от формата.

V0lt

Aleksoid1978, поддержка P010 в EVR урезана на Window 7.

Aleksoid1978

Корректно работает только с 8 бит, закрываем вопрос.
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215