Формат текстуры 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.
Похоже какие-то ограничения драйвера. Похожая ситуация есть на Intel.
Нужен скриншот со статистикой (Ctrl+J) для декодера DXVA2 и программного.
Добавлено: 2019-05-26 13:27:50
Сделай еще скриншоты DXVA Checker вкладки видеопроцессора DXVA2 для NV12 и P010.
Пример: раз (https://jpegshare.net/88/cd/88cdfc941687c4ce8ef0bb222c17921e.png.html), два (https://jpegshare.net/2a/97/2a97adc8080733e65764e443fc8ad318.png.html).
Статистика:
Software: https://imgur.com/P1vJfVN
DXVA: https://imgur.com/H1I40Az
LAV DXVA: https://imgur.com/lmlUwK6
DXVA Checker:
NV12: https://imgur.com/0xIEzer https://imgur.com/9Rg2g60
P010: https://imgur.com/0zjfcQA https://imgur.com/zRhyscr
Спасибо.
Тут дело вот в чем. 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 (https://mpc-be.org/forum/viewtopic.php?id=381) в этом плане меньше ограничений, т.к. отсутствует посредник в виде системного EVR.
Спасибо за наводку на 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
Сильно упрощенная схема работы 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 лучше обсуждать в соответствующей теме (https://mpc-be.org/forum/viewtopic.php?id=381).
Мне кажется тут дело 100% в драйвере. С DXVA подключается P010, в софте NV12.
Проверь с обычным EVR c DXVA и софт, и посмотри на данные pininfo у EVR.
pin info: https://mediafire.com/?jk3mkp9om793a92
А теперь фокус-покус - с программным декодером и обычным EVR видео выглядит так: https://imgur.com/e5gUb6m
С EVR Custom такой фигни нет. Обратите внимание, что в этом случае в pin info P010. И ещё на то, что на превью на полосе перемотки нормальная картинка.
Забыл главное: DXVA + обычный EVR = нормальное видео. Тут не работает именно с программным.
Короче дрова говорят что могут P010, но криво :) Дрова обновлений нет ??
Тут я даже не знаю что посоветовать - ну юзать EVR-CP с 8 битными текстурами.
Цитата: Aleksoid1978Дрова обновлений нет ??
Самые новые стоят.
Цитата: Aleksoid1978Короче дрова говорят что могут P010, но криво
Ну не знаю. Стандартный EVR + DXVA работает нормально, ему дрова не мешают.
Цитата: Aleksoid1978Тут я даже не знаю что посоветовать - ну юзать EVR-CP с 8 битными текстурами.
В MPC VR работает с любыми текстурами (но у него другая проблема). Ему тоже дрова не мешают работать. По-моему дело всё-таки не в дровах. Где-то в EVR-CP что-то не проверяется.
Ну и вопрос почему с обычный EVR с софтовым декодером ломается? EVR-CP с софтовым работает нормально с любыми текстурами.
Цитата: 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
Когда ломается обычный 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. И большая часть из этих комбинация работают правильно. Получается, ошибка не зависит от формата.
Aleksoid1978, поддержка P010 в EVR урезана на Window 7.
Корректно работает только с 8 бит, закрываем вопрос.