MPC Video Renderer

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

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

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

Evgeniy1990

lexxx,
ЦитироватьНе воспроизводится. Ясно.
Значит, проблема уже была устранена.
ЦитироватьИнтересно, сборщики K-Lite понимают, что MPC-НС может поддерживать ваш рендер с оговорками?
Им все равно. А вообще наш видео-рендерер вполне нормально работает с MPC-HC. К тому же, была улучшена совместимость его работы с другими плеерами. Так что можете не переживать. Вы даже сами можете проверить его работу, если вам это интересно.
ЦитироватьВ пакете K-Lite идет декодер DX11, а у Вас используется DXVA. В вашем плеере можно использовать DX11 декодер?
В нашем плеере нет встроенного аппаратного DX11-декодера. Зато он есть в LAV Video Decoder. Сам DX11-декодер в нашем плеере использовать можно в паре с D3D11-видео-рендерером. Только для его работы требуется необходимая видеокарта и операционная система, начиная с Windows 8.1 и выше.
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

Цитата: V0lt от 27 мая 2020, 21:17:52
Я не понимаю смысла в последних изменениях. Зачем пересоздавать окно? Перемещение окна плеера на другой дисплей, подключенного к другой видеокарте, у меня не создавало никаких серьезных проблем. Как играло видео, так и играет, и даже аппаратный HEVC декодер не отваливался. Можно даже расположить окно одновременно на двух дисплеях, и ничего страшного не произойдет. А скоро похоже все мигать будет.

Ну а интересно зачем так сделано, опционально, в EVR-CP, зачем так сделано даже без опций в madVR ?
Это еще норм когда несколько мониторов/ТВ к одной карте подключены, а если к разным - то получиться что декодирует одна, а выводит другая.
Другой вопрос - субтитры, размер "Desktop" задается под текущий монитор, и если разные - ну и качество рендеринга будет разным.
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

Aleksoid1978

#737
Так что мое предложение:
1 - убрать переключение swap effect, оставив для DX9 - discard, для DX11 - flip.
2 - далее реализую(ессно опционально) - реинициализацию при смене монитора.
3 - далее пробую реализовать эксклюзивный режим(в начале для DX9, потом можно пробовать DX11).

Если нет - ну и ладно, тогда не бывать нормальной поддержке мультимониторности, ну и эксклюзивного полноэкранного режима наверное тоже.
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,
Цитата: Aleksoid1978 от 28 мая 2020, 03:07:00
Так что мое предложение:
1 - убрать переключение swap effect, оставив для DX9 - discard, для DX11 - flip.

У меня такой вопрос. Здесь сам факт наличия возможности переключения swap effect является проблемой, или же не дать пользователю по-переключать, чтобы потом не было нюансов. Уже упоминалось о проблемах с discard на amd c 50,59,60fps. Могу то же сказать и про intel, как раз с мульти-дисплейностью у discard при выводе на тв проблемы как в evr-cp, так и в mpc-vr dx9 и dx11. Картинка получается дёрганная, с flip - плавная.

Aleksoid1978

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

А проверьте еще в madVR, встроенные видео-рендереры в Pot с discard - там есть похожие проблемы как у EVR-CP/MPCVR с discard ?
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

#740
Цитата: Aleksoid1978 от 28 мая 2020, 07:16:46
Ну если оставить Flip для DX9 - то все что я описывал(мультимониторность, эксклюзив) будет невозможно внедрить.

А проверьте еще в madVR, встроенные видео-рендереры в Pot с discard - там есть похожие проблемы как у EVR-CP/MPCVR с discard ?
С madVR всё нормально и с dx9, и с dx11. А вот в поте discard тоже дёргает видео в evr-cp и dx11. Проверял на файлах с 59,970 и 60fps. Видно, не судьба с дискардом на интелке. Герцы, разумеется, на тв включал согласно fps

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

lexxx

Evgeniy1990,
Я уже попробовал его c MPC-HC.
При переключении Swap при проигрывании пропадает указатель мыши (об этом сообщил на форуме).
Поскольку Flip более производительный в интерлейсном видео, я использовал его.
Теперь появилась проблема с ALT+TAB с Flip. Я начал использовать DX11 Discard - он более производительный в неинтерлейсном видео.
Теперь вижу предложения убрать переключение Swap, а для DX11 использовать Flip.
Главное, чтобы не получилось так, что рендер нельзя будет использовать с каким-нибудь другим плеером из-за невозможности его настроить. Тем более телевизор я не использую, отдельный монитор тоже, и особой критичности в наличии эклюзивного режима тоже не вижу, я сомневаюсь, что увижу на глаз повышение плавности видео.

Aleksoid1978

Цитата: MPCfan от 28 мая 2020, 08:33:56
Цитата: Aleksoid1978 от 28 мая 2020, 07:16:46
Ну если оставить Flip для DX9 - то все что я описывал(мультимониторность, эксклюзив) будет невозможно внедрить.

А проверьте еще в madVR, встроенные видео-рендереры в Pot с discard - там есть похожие проблемы как у EVR-CP/MPCVR с discard ?
С madVR всё нормально и с dx9, и с dx11. А вот в поте discard тоже дёргает видео в evr-cp и dx11. Проверял на файлах с 59,970 и 60fps. Видно, не судьба с дискардом на интелке. Герцы, разумеется, на тв включал согласно fps

А ты на 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

V0lt

Цитата: Aleksoid1978 от 28 мая 2020, 01:56:13Это еще норм когда несколько мониторов/ТВ к одной карте подключены, а если к разным - то получиться что декодирует одна, а выводит другая.
Я про это как раз и написал. Запускаю видео HEVC на мониторе, подключенный к GTX 950, и перетаскиваю на телевизор, подключенный к Intel HD 4000. И в целом все нормально. Транслировать окно на нужный дисплей для DWM не проблема.
Если же устройство пересоздать, то декодер, получается, уйдет в софт? Думаю, это не очень удачное решение.

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

ЦитироватьДругой вопрос - субтитры, размер "Desktop" задается под текущий монитор, и если разные - ну и качество рендеринга будет разным.
Это вопрос уже к рендереру субтитров и плееру.

MPCfan

Aleksoid1978
Проверил-сравнил ещё раз evr-cp/discard и в поте и в mpc-be: и перетаскивал с воспроизведением, и без, а запускал уже на ТВ, и запускал через настройку с выводом на ТВ с основного монитора. Одинаково - что в поте, что в mpc-be. Есть периодическое дрожание. С флипом - плавно.

Aleksoid1978

Так если мы хотим со временем добавить 3d frame packing, HDR passthrough - тот тут в любом случае надо будет отслеживать изменения монитора и пересоздание, ну как минимум SwapChain - правда DX9 это не грозит.
Или захотим сделать свой VSync - так же надо будет как-то отслеживать изменения монитора.

Короче я так понял что никому это не надо - ну значит MPC VR остается как VR для просмотра на мониторе, ни о каком использовании более масштабно и речи нет.
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

Aleksoid1978

Предлагаю обсудить как мы все видим MPCVR - как VR для просмотра на экране монитора - тогда оставляем все как и есть, в принципе дальше уже и делать почти ничего и не надо, или как VR с поддержкой мультимониторности, с поддержкой VSync и все что я до этого писал ?
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

#748
Цитата: Aleksoid1978 от 29 мая 2020, 02:01:36...в любом случае надо будет отслеживать изменения монитора и пересоздание, ну как минимум SwapChain - правда DX9 это не грозит.
Это уже сделано через IExFilterConfig::SetBool("displayChange", true).
ЦитироватьИли захотим сделать свой VSync - так же надо будет как-то отслеживать изменения монитора.
Не знаю что подразумевается под "свой VSync", но Я не планировал изменение D3DPRESENT_PARAMETERS::PresentationInterval. Текущее значение D3DPRESENT_INTERVAL_ONE, меня полностью устраивает.
Особую поддержку классической темы Win7 делать так же не планирую. Пусть будет вечный Issue.

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