MPC Video Renderer

Автор V0lt, 24 февраля 2018, 19:10:59

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

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

MPCfan

#1230
V0lt,
Проверил  mpcvr_1452_dx11_choma_7_bilinear_crop на intelhd5500, на нем полос нет с самураями и кловерфилдом в связке dx11native+shaders VP в частности с bilinear. Единственно, полосы появляются, если "на лету" переключиться на Catmull-Rom, на самураях справа, на кловерфилде снизу. Но если перезапустить файлы, полосы исчезают. Похоже "на лету" не срабатывает фикс issue #16 для Catmull-Rom.

V0lt

Цитата: MPCfan от 08 августа 2020, 16:13:03Без изменений, два скриншота > https://yadi.sk/d/H6dCfz8pYNafEQ
PS. Вот смотрю на свои скриншоты через яндекс и понимаю, что там трудно что-то разглядеть, особенно с самураями.
Видно на черном фоне. Для монитора TN надо смотреть немного сверху.
ЦитироватьЕдинственно, полосы появляются, если "на лету" переключиться на Catmull-Rom, на самураях справа, на кловерфилде снизу.
Фикс срабатывает только в начале воспроизведения.

Добавлено:
У меня на GTX 950 никаких полосок нет. Что не так с GT 730M - непонятно. Но на всякий случай заменил 0.5 на 0.51 и собрал еще одну сборку для проверки.
mpcvr_1452_dx11_choma_7-1_bilinear_crop

MPCfan

V0lt,
Цитата: V0lt от 09 августа 2020, 12:24:56
У меня на GTX 950 никаких полосок нет. Что не так с GT 730M - непонятно. Но на всякий случай заменил 0.5 на 0.51 и собрал еще одну сборку для проверки.
mpcvr_1452_dx11_choma_7-1_bilinear_crop
На этом тест-билде полос нет с bilinear

V0lt

MPCfan
Если 7 сборка с полосой, а 7-1 без, то скорее всего в GT 730M меньшая точность вычислений.

MPCfan

V0lt,
Решил на всякий случай проверить работу dx11native с этими файлами на MadVR. Оказывается, это работает на GT730M, причём только с шейдерами, chroma upsampling=bilinear/downscaling=cubic. Полос нет.

V0lt

Есть одна мысль по оптимизации.

Примеры размеров кадров видео FullHD после разных декодеров:
софтовый - 1920x1080
аппаратный H.264 - 1920x1088
аппаратный HEVC - 1920x1152
Видим, что аппаратным декодерам бывает нужна кратность по высоте. Скорее всего это связано с размерами макроблоков.

Видеопроцессорам такая кратность по высоте не требуется. Поэтому можно сделать обрезку снизу на этапе копирования, если для копирования используются memcpy или CopySubresourceRegion.

V0lt

Релиз MPC Video Renderer 0.4.9.1460.
Описание на русском.
Описание на английском.

Изменения:
Теперь для генерации шрифта статистики используется DirectWrite вместо GDI +.
Оптимизирована отрисовка статистики.
Исправлен расчет частоты кадров входного потока.
Убрана ненужная инициализация объектов DirectX.
Добавлена возможность увеличения статистики для большого размера окна.
Удалена настройка «Перейти в эксклюзивный режим после небольшой задержки».
Добавлена поддержка эксклюзивного полного экрана в режиме DX11.
Улучшена поддержка эксклюзивного полного экрана в режиме DX9.
Для компиляции в Visual Studio 2017 теперь требуется Windows SDK 10.0.17763.0.
Добавлена поддержка Swap effect "Discard" в эксклюзивном полном экране для режима DX11.
Убраны зеленые полосы справа и снизу при использовании декодера D3D11 на видеокартах AMD.
Параметр "Chroma scaling" переименован в "Chroma upsampling" и добавлено значение "Nearest-neighbor".
Добавлена информация в экранную статистику и в окно "Information".
Рекомендуемая версия MPC-BE 1.5.5.5369 или новее.

Evgeniy1990

Прогнал последний Git-билд. Обнаружил проблемы:

1. Мертвое зависание, при выходе из режима FSE в окно со второго монитора на первый (основной).
2. Видео файлы с частотой кадров 59.94 FPS теперь вообще воспроизводятся некорректно. Вместо 59.94 FPS, видео-рендерер выдает максимум 49.99 (50 кадров), с упадками до 47.87 FPS. Класс!!! О_о

Прогонку выполнял на совершенно чистой системе, на видеокарте NVIDIA GTX 960 с последними актуальными драйверами.
Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

Aleksoid1978

Переход FSE на разных экранах не могу пока проверить, а вот проигрывание 59.94fps отличное. Покажи скрин с включенной статистикой.
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /LG 47LM620T /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Evgeniy1990

Цитата: Aleksoid1978 от 02 сентября 2020, 02:32:17
а вот проигрывание 59.94fps отличное. Покажи скрин с включенной статистикой.
С частотой кадров 59.94 FPS не все так просто. Дело в том, что данная проблема с данной частотой проявляется в режиме мультимониторности на новых видеокартах от NVIDIA, т.е. когда задействован второй монитор.

Алгоритм воспроизведения достаточно простой:

1. Загрузить ОС Windows на первом (основном) мониторе
2. В панели управления NVIDIA включить второй монитор
3. Запустить видео файл с частотой кадров 59.94 FPS

Фактический результат: во время воспроизведения можно увидеть в свойствах видео-рендерера пропуски видео кадров подряд.
При этом частота кадров будет скакать от 56 до 61 FPS (в среднем от 59.87 до 60).

Это в обычном случае. Но, бывает, что при задействованном втором мониторе, при открытии таких видео файлов с такой частотой кадров 59.94 FPS, частота и вовсе может быть гораздо ниже, как в моем случае вчера. Причем, заметно даже невооруженным взглядом, как видео кадры во время воспроизведения слегка дрожат (происходит потеря плавности воспроизведения).

P.S. Пытаюсь сейчас воспроизвести вчерашнюю ситуацию, когда частота кадров и вовсе была максимум 50 кадров, но пока, к сожалению, получаю только то, что сказал выше - это скачки от 59.87 до 60 кадров с пропусками кадров в режиме мультимониторности. Хотя и этого уже достаточно, чтобы подтвердить проблемы. А их, по факту, две - это скачки частоты кадров и что еще хуже - пропуски кадров во время воспроизведения, причем подряд.
Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

Evgeniy1990

Aleksoid1978,

Чтобы вам воспроизвести у себя проблему с частотой кадров 59.94 FPS, предлагаю вам воспользоваться этой ссылкой на видео файл с данной частотой кадров: https://www.youtube.com/watch?v=8H416bB4pqM

Еще один способ получения проблемы:

1. Включить мультимониторность
2. Открыть данное видео на первом основном мониторе
3. Открыть статистику видео-рендерера
4. Включить вывод изображения на полный экран для второго монитора
5. Перейти в полноэкранный режим
6. Снять фокус мышки с окна плеера
7. Запустить, например, браузер, пролистав в нем любую страницу
8. Не закрывая его, вернутся обратно к плееру и выйти из полноэкранного режима с включенной статистикой видео рендера

В итоге, при возвращении на первый (основной) монитор, можно несколько секунд наблюдать как пропуски кадров, в ускоренном темпе, будут нарастать, а спустя несколько секунд, остановятся, но продолжатся подряд в обычном режиме.

Такая вот хитрая и скрытая проблема.
Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

Evgeniy1990

Aleksoid1978,
ЦитироватьПереход FSE на разных экранах не могу пока проверить
Что касается мертвого зависания, при выходе из режима FSE со второго монитора на первый (основной), так оно проявляется только один раз, после загрузки операционной системы. Чтобы его получить (воспроизвести), нужно перезагрузить систему.

Раньше, в основном, такая проблема была при переходе в режим FSE, теперь наоборот - при выходе из него. Но почему-то это происходит именно на видеокартах от NVIDIA.
Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

Evgeniy1990

Aleksoid1978,
Для одного монитора частота кадров 59.94 FPS работает также некорректно, хоть это и выглядит как нормальная работа, но на самом деле это далеко не так. Она не должна скакать в диапазоне от 59.87 до 60 FPS. Достаточно сравнить ее работу с EVR-CP и убедиться, что она некорректно работает на MPC-VR, поскольку на EVR-CP она всегда строго именно 59.94 FPS и никакая другая.
Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

V0lt

#1243
Цитата: Evgeniy1990 от 02 сентября 2020, 13:06:41Для одного монитора частота кадров 59.94 FPS работает также некорректно, хоть это и выглядит как нормальная работа, но на самом деле это далеко не так. Она не должна скакать в диапазоне от 59.87 до 60 FPS. Достаточно сравнить ее работу с EVR-CP и убедиться, что она некорректно работает на MPC-VR, поскольку на EVR-CP она всегда строго именно 59.94 FPS и никакая другая.
На основном дисплее проблема только в мгновенном значении частоты кадров?
Дык, в EVR-CP тоже постоянно меняется "Frame rate".

У меня на основном дисплее кадры не выпадают, график ровный, визуально проблем не заметил (да и не увидеть на таком видео).


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

Aleksoid1978

У меня тоже все отлично с проигрыванием, не знаю что у кого там "скачет" :)
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /LG 47LM620T /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215