MPC VR - DX11SubPic

Автор V0lt, 30 апреля 2022, 14:35:09

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

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

Aleksoid1978

А то что по ссылке выше не пробовал ?
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

V0lt

Цитата: Aleksoid1978 от 03 мая 2022, 16:10:24А то что по ссылке выше не пробовал ?
Не работает это. Я даже пробовал вырубить непонятный SetMultithreadProtected в MPC VR.

AMD Vega 8.
1. Если включена статистика, то субтитры всегда искажены.
2. Запускаю без статистики - субтитров вообще нет. Перехожу в эксклюзивный полный экран - появляются корректные субтитры. Возвращаюсь в окно - корректные субтитры не пропадают.
3. Если включить статистику, то субтитры опять искажает.

В общем что-то не так с обработкой команд у некоторых видеокарт.

Aleksoid1978

По поводу "сдвига" субтитров, вот пробуем - https://disk.yandex.ru/d/Y_CvJTvwOatl5A
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

MPCfan

Цитата: Aleksoid1978 от 04 мая 2022, 04:28:19По поводу "сдвига" субтитров, вот пробуем - https://disk.yandex.ru/d/Y_CvJTvwOatl5A
Не помогло gt730m. Более того, cтало хуже на Intel, стали вываливаться кадры на тестовом видео 60fps.

V0lt

Кстати, воспроизвел баг на GTX 950 и GTX 1650. Проявляется на стандартных настойках. Просто увеличиваю размер окна. Статистика способствует багу.

Aleksoid1978

#20
Кстати да, решил проверить - и оказалось что такое поведение когда используется VP для ресайза. При использовании шейдеров - все отлично.

05 мая 2022, 02:06:29
Исправил, проверяем:
https://disk.yandex.ru/d/frhcLmsM9R5IBA
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

MPCfan

Цитата: Aleksoid1978 от 05 мая 2022, 00:39:38Исправил, проверяем:
https://disk.yandex.ru/d/frhcLmsM9R5IBA
Проверил по-быстрому. Пока проблем нет ни на Intel, ни на Nvidia.

V0lt

MpcVideoRenderer-0.6.0.1878_git2022.05.07-b2f1f34
В режиме DX11 используется новый интерфейс рендеринга субтитров ISubRender11. Старые плееры не смогут выводить субтитры в режиме DX11.
Рекомендуемая версия MPC-BE 1.6.2.7075 или новее, но доступные 1.6.2.7070 и 1.6.2.7071 так же будут работать.

V0lt

#23
Получилась странная ситуация.
MPC-HC не может работать с MPC VR 0.6.0, если в последнем включен режим DX11.
Чтобы хоть как-то работало в режиме DX11, приходится форсировать фильтр во внешних фильтрах.

MPCfan

Цитата: V0lt от 12 мая 2022, 18:09:51MPC-HC не может работать с MPC VR 0.6.0, если в последнем включен режим DX11.
Потплеер тоже не работает с MPC-VR DX11, включает свой DX9, а c MPC-VR DX9 работает.


Aleksoid1978

#25
Ничего странного - для D3D11 режима мы же убрали поддержку интерфейса, плееры проверяют и дают отлуп.
P.S. Вернул совместимость.
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

V0lt

#26
Aleksoid1978
Спасибо. Залил сборку.
MpcVideoRenderer-0.6.0.1883_git2022.05.13-20c8135

V0lt

#27
Текущие версии
MPC-BE 1.6.2.7093 (git 2022.05.14 - 300c78e36)
MPC Video Renderer 0.6.0.1884 (git-2022.05.14-6e712d7)

В режиме DX11 можно словить баг драйвера на Intel UHD 7xx. Драйвер может начать кушать память при выводе субтитров (растет потребление основной памяти плеером и видеопамяти - для встройки она единая). Потом его отпускает (после 4 ГБ), память восстанавливается и больше так много не кушает.
На Nvidia все хорошо.

V0lt

Проделал измерения. Чтобы более точно следить за нагрузкой CPU пришлось залочить частоту на 20%, что в итоге дало постоянные 0.79 ГГц. Также перевел встройку в режим минимального потребления.
В таблице данные нагрузки для процесса MPC-BE. Общая загрузка немного больше, но для выводов это не принципиально. Частоту GPU получал с помощью GPU-Z.
После загрузки системы нужно подождать пока винда перестанет грузить процессор. У меня было 3%, после упало до 0%. Все лишнее отрубить (особенно браузеры).

Тестовое видео SubtitleScrollingTest60fps.mkv. Размер текстуры 2560x1440. Окно развернуто на весь экран. После надо выждать 10-20 секунд пока не устаканится частота GPU. При тесте UpdateSubresource на Intel, выжидал пока из-за бага драйвера перестанет кушать память. Windows 10 x64.

Результаты:
Графический адаптерUpdateSubresourceWriteToSubresourceMap_memcpy
Intel UHD 750CPU - 1.1% 0.79 ГГц
GPU - 27 % 349 МГц
CPU - 1.2% 0.79 ГГц
GPU - 25 % 349 МГц
CPU - 1.0% 0.79 ГГц
GPU - 35 % 349 МГц
Nvidia GTX 950CPU - 1.0% 0.79 ГГц
GPU - 42 % 135 МГц
CPU - 2.3% 0.79 ГГц
GPU - 41 % 135 МГц
CPU - 1.0% 0.79 ГГц
GPU - 43 % 696 МГц

Выводы:
1. UpdateSubresource самый оптимальный по нагрузке. Но есть баг драйвера на Intel.
2. WriteToSubresource дает большую нагрузку на CPU на Nvidia. Работает только на Win10.
3. Map_memcpy дает большую нагрузку на GPU. Работает везде.

Aleksoid1978

Ну и тогда предлагаю оставить как есть (UpdateSubresource) и пусть это будет на совести драйверов Intel. Ну либо делать проверку и для Intel - Map_memcpy, для остальных - как есть.
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