MPC Video Renderer

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

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

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

Evgeniy1990

Цитата: Aleksoid1978 от 19 июля 2020, 12:04:09
Тем более что так у тебя ведут и игры - значит это проблема системы+видеодрайвера, зачем тут то писать про это.
Да хрен с этими играми. Это уже вопрос к их разработчикам. Нас же интересует работа режима 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.

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

#1202
По поводу зелени.
Опытным путем установлено, что если задать входные параметры вектора по прямоугольнику обрезки и выводить в текстуру уже без полей, то это все равно не исключит зеленые полосы.
Текущая версия. Зелень появляется внутри пиксельного шейдера, который может получать пиксели за пределами границ вектора. У нас это происходит для цветовых компонент форматов YUV 4:2:0 и 4:2:2. Если это так, то придется добавить ограничение внутри векторного шейдера пиксельного шейдера. В общем тут еще много копать. :-\

V0lt

#1203
Для опции "ChromaScaling" добавил режим "Nearest-neighbor". Чтобы не повлияло на обратную совместимость переименовал ее в "ChromaUpsampling".
Режим "Nearest-neighbor" не для просмотра фильмов, он для тестов и отладки. В этом режиме нет проблемы с обрезкой кадра.
Хочу внедрить.
Внедрил в be9e35d.

PS: Обнаружил баг с YUY2 при использовании шейдерного преобразования. Исправил в b3899b1. Залил 0.4.8.1442.

Evgeniy1990

V0lt,
ЦитироватьPS: Обнаружил баг с YUY2 при использовании шейдерного преобразования. Исправил в b3899b1. Залил 0.4.8.1442.
Действительно, вот это баг!
ЦитироватьИсправил в b3899b1. Залил 0.4.8.1442.
Собрал и проверил коммит b3899b1. Проблема устранена! :)
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

#1205
Aleksoid1978
ЦитироватьПроверил. Ерунда какая-то... Пытаюсь разобраться, уже запутался.... Боже... Да уж, "спасибо" LG за то, что придумали просто "мозговыносящую" логику определения монитора. Это жесть какая-то...

Короче, логика примерно такая: если я подключаю данный монитор, как единственный, то он определяется нормально, да, универсальный монитор PnP, LG и его модель L1751SQ. Если я подключаю его вторым (дополнительным) монитором, то система определяет его уже как "Универсальный монитор не PnP", а видео-драйвер определяет его как -  "никак", просто пустота.

Вот зашибись просто... Был PnP, стал уже не PnP - WTF??? (O_o), был LG L1751SQ, стал "пустышкой". Мда, чего только не встретишь, при тестировании... У меня слов нет, как это понимать и объяснить...
Разобрался с неопределенностью дисплеев.  Оказывается, все дело в переходниках, но далеко не во всех.

Если я подключаю мониторы через переходники DVI-I->VGA, тогда получаю неопределенные дисплеи.

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

Но и в этом случае далеко не все так просто. Для сравнения я использовал видеокарты "NVIDIA GeForce GTS 450" и "NVIDIA GeForce GTX 960". В случае с GTS 450 проблем особых нет, так как она содержит все основные необходимые разъемы подключения мониторов - DVI-I, VGA, HDMI. А мы знаем прекрасно, что если подключить монитор напрямую к видеокарте без переходников, то EDID будет работать сразу же.

А вот в случае с GTX 960 уже имеются проблемы с работой и инициализацией EDID, потому что подключение мониторов к ней идет не напрямую через кабель, а через переходники, или преобразователи (конвертеры). Как уже было сказано ранее, EDID в этом случае работает только через преобразователи (конвертеры). Конкретно в моем случае - это "DVI-D->VGA" и "HDMI->VGA".

И вот тут начинается самая жесть на NVIDIA. Да, EDID работает, дисплеи определились, но вопрос в том - как именно они определились? А определились они не как мониторы, а как ТВЧ. Т.е. по сути, как телевизоры высокой четкости. И как же сильно я был удивлен и шокирован тем, что видеокарты NVIDIA не могут отличить телевизоры от компьютерных мониторов. Т.е. они просто напросто не понимают, что к ним подключено - телевизор, или же монитор.

Хорошо, я еще могу понять тот факт, что один из мониторов у меня подключен череp адаптер HDMI->VGA. В этом случае еще может быть путаница, т.к. HDMI изначально был создан для телевизоров, а не для мониторов. Это уже потом появилось его деление на различные стандарты. Но, извините меня, другой-то монитор у меня подключен через адаптер DVI-D->VGA. И даже в этом случае, видеокарта "NVIDIA GeForce GTX 960" определяет его как ТВЧ (тот же самый телевизор). А в самом драйвере написан разъем "HDMI-ТВЧ", что разумеется полный бред и абсурд.

Эх, корпорация NVIDIA, ты меня разочаровала. Мало того, что сами драйвера дубовые, так они еще и не способны корректно отличать мониторы от телевизоров. А уж про тип разъема подключения - это уже вообще никуда не годиться. Чтобы привести ТВЧ к монитору, приходится вручную указывать полный диапазон цветопередачи (FullRGB).
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

Evgeniy1990
Если адаптер преобразует из цифры (DVI-D, HDMI, DP) в аналог (VGA), то, как дисплей определиться в системе, зависит только от самого адаптера. Что он выдаст, то и будет. И не надо тут писать тонны текста про "плохую" Nvidia.

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

mpcvr_1449_dx11_choma_bilinear_crop_rb
Попытался обойти Issue #16 (зелень справа и снизу после декодера D3D11 на картах AMD) через корректировку пиксельного шейдера. Фикс 977bcfe отключен. Корректировка пока работает только для Chroma upsampling = Bilinear.

У кого есть возможность, пожалуйста, сравните скорость работы этой сборки с обычной 1449 на достаточно тяжелых файлах и небыстрых видеокартах. Будет разница по скорости или нет?

MPCfan

V0lt,
Разницы не заметил. На рамштайне зелёная полоса справа также присутствует c shaders VP.

V0lt

Спасибо.
Обновил до mpcvr_1449_dx11_choma_2_bilinear_crop_rb.

Заметил странность. На Nvidia мои изменения работают, а на Intel нет. >:(

MPCfan

#1211
V0lt,
Да, на интел не работает, не работает непосредственно с dx11 native. Однако с dx11 direct copyback, хоть с hd4000, или с gt730m, зелёной полосы нет.
С рамштайном в связке dx11 native+shaders VP на gt730m полосы-то нет, а вот на самураях всё-таки снизу есть.

V0lt

#1212
Как вы переключаетесь с dx11 native на dx11 direct copyback? Я не вижу такого выбора в декодере.

PS: Чтобы тестировать убирание зеленых полос на любой видеокарте, Я использую nv12_576x320_cropborder32_v3.mkv.

MPCfan

V0lt,
Цитата: V0lt от 06 августа 2020, 06:38:18
Как вы переключаетесь с dx11 native на dx11 direct copyback? Я не вижу такого выбора в декодере.
https://yadi.sk/i/ZdUPepZzeNkuHg

MPCfan

V0lt,
Цитата: V0lt от 06 августа 2020, 06:38:18
PS: Чтобы тестировать убирание зеленых полос на любой видеокарте, Я использую nv12_576x320_cropborder32_v3.mkv.
Проверил на этом файле mpcvr_1449_dx11_choma_2_bilinear_crop_rb и вот что получается
на интел с dx11 VP зелени нет, а с shaders VP есть полосы сверху и справа
на нвидия с dx11 VP полосы сверху и слева, а с shaders VP полоса сверху