"Прозрачный" полноэкранный Direct3D на дополнительном экране [Испр.]

Автор V0lt, 23 октября 2016, 14:50:28

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

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

V0lt

Баг получается следующим образом.
К дискретной видеокарте подключается основной монитор (DVI) и дополнительный телевизор (HDMI).
Включаем опцию "Полноэкранный Direct3D" и выбираем телевизор в качестве дисплея для полного экрана.

Запускаем плеер на мониторе, запускаем видеофайл и переходим на полный экран.

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

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

Dimbat

Переключалка ни при чем (глюк что с ней, что без нее), сама по себе пашет нормально - меняет частоту как надо, телек мигает, но изображения тупо нет.
[merge_posts_bbcode]Добавлено: 2016-10-23 15:12:35[/merge_posts_bbcode]

V0lt, а у тебя сразу (с первого вывода) проявился баг или после переключений туда-сюда?

Aleksoid1978

V0lt

Ну если можешь воспроизвести - ну так почини, думаю причину найти не сложно ... хотя прозрачное окно думаю будет сильно мешать отладке :)
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

Dimbat
Перезапустил комп и ничего не дергая сразу получаю баг.
Ранее не ловил, т.к. другое подключение было и неправильно проверял.

Aleksoid1978

Ставьте 10 - у меня на ней нет бага ни на одной из система :)
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

Dimbat

V0lt, я к тому, что баг имеет какой-то накопительный эффект (иначе не назовешь) в пределах профиля (не сессии), я хз как объяснить. Т.е. ни разу не запущенный плеер выдавал баг не сразу, а после переключений d3dfs-окно-d3dfs. Потом перманентно уже ))
И проверь из-под администратора запуск в текущей учетке.
[merge_posts_bbcode]Добавлено: 2016-10-23 15:42:42[/merge_posts_bbcode]

Цитата: Aleksoid1978Ставьте 10 - у меня на ней нет бага ни на одной из система :)
:)
Весело и другое, что баг от 1591 начинается - ща набегут в ветку ХРдрочеры, типа "ага - мы предупреждали, ХР форева, верните поддержку"

V0lt

Aleksoid1978
Это наблюдается и на свежайшем бета-билде Win10.

В общем, что-то не так с переключением. Непонятно что именно тупит: декодер или рендерер. По логу сначала ресетится рендерер, затем декодер. Можно разово нормально переключиться, если нажать на паузу, а затем Alt+Enter и Плей.
[merge_posts_bbcode]Добавлено: 2016-10-23 15:49:33[/merge_posts_bbcode]

Хотя и без паузы первый раз по Alt+Enter часто переключает нормально, но на второй - фигушки.

Aleksoid1978

Все верно - сперва ресетится рендерер, затем он вызывает ресет декодера.

То что ты описываешь больше похоже вот на что - окно для D3D FS создается на одном устройстве вывода, а само D3D FS видимо на другом.

Но самое что интересное - как это могло проявляться после урезания WinXP, вообще не понятно. :)
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

В общем кое что найдено.
При рисовании на полном экранеhr = m_pD3DDevEx->PresentEx(NULL, NULL, NULL, NULL, NULL);получаем "положительный" ответ S_PRESENT_OCCLUDED.
Цитата из MSDN:
ЦитироватьOccluded applications can continue rendering and all calls will succeed, but the occluded presentation window will not be updated.
Т.е. мы чего-то там рендерим, но это никуда не выводиться.
[merge_posts_bbcode]Добавлено: 2016-10-24 12:01:10[/merge_posts_bbcode]

Проблему вроде обошли.
Сборка для тестов - https://yadi.sk/d/fBLNEkmDxUyVw

Dimbat


usalex

Цитата: Aleksoid1978...похоже вот на что - окно для D3D FS создается на одном устройстве вывода, а само D3D FS видимо на другом.
Во-во!
У меня в один день именно так и было: на ТВ была картинка в оконном режиме, несмотря на галку "Запускать файлы в полном экране", но она была вообще без рамки - просто шла картинка без всякого обрамления, а рамка была в это время на мониторе :)
Через несколько часов само пришло в норму и больше не проявлялось.

V0lt

Dimbat
Спасибо. Изменения залил в r2097.

usalex
Я думаю, здесь другой случай. Все работает как будто все хорошо, но ничего не рисуется, и это типа штатный режим. Почему такое происходит, мы пока не знаем.