Приложение DirectX не работает через удаленный рабочий стол - PullRequest
1 голос
/ 01 апреля 2010

У меня есть приложение WPF, в котором есть компонент DirectX. Этот компонент не работает через удаленный рабочий стол - он просто показывает поврежденное изображение. Приложение работает нормально, когда не используется удаленный рабочий стол.

При попытке отладить проблему я установил DirectX SDK за февраль 2010 года. Теперь, когда я запускаю программу на компьютере с SDK и удаленным рабочим столом к ​​нему с отдельного компьютера, компонент работает просто отлично. Однако обратное не работает - попытка использовать приложение поверх удаленного рабочего стола, когда оно запущено на компьютере без DirectX SDK (у него первоначальная проблема с поврежденным изображением).

Я уже сравнил загруженные библиотеки DLL (с ​​помощью Process Explorer) между запуском приложения на моем SDK-компьютере и не-SDK-компьютере. Они оба загружают одинаковые версии DLL.

Что еще может быть причиной такого поведения?


РЕДАКТИРОВАТЬ : Я обнаружил, что приложение на самом деле загружает другую DLL. Я не заметил, потому что я не захватил список DLL должным образом. Когда я запускаю приложение на компьютере с SDK, оно загружает D3DREF9.dll, эталонный растеризатор DirectX. Это дает мне подсказку о том, в чем проблема, хотя я все еще работаю над ее решением.

Ответы [ 3 ]

2 голосов
/ 01 мая 2010

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

По умолчанию в системах нет справочного или программного рендеринга. Чтобы получить справочный рендерер, необходимо установить DirectX SDK - и вы должны использовать его только для отладки, а не для развертывания. Для средства визуализации программного обеспечения системе требуется только .NET 3.5 SP1, а затем программное обеспечение должно загрузить его.

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

0 голосов
/ 19 марта 2014

Аппаратное ускорение DirectX отключено для собственной функциональности удаленного рабочего стола: http://support.microsoft.com/kb/260565

0 голосов
/ 01 апреля 2010

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

...