Я написал приложение, которое отображает 3D-контент с D3D 11.0 и представляет в WPF с D3DImage .
Когда приложение запускается в сеансе удаленного рабочего стола, после первой пары кадров он получает IsFrontBufferAvailableChanged событие, IsFrontBufferAvailable становится ложным и остается таким.
На данный момент я обнаруживаю удаленный сеанс и переключаюсь в режим программной визуализации D3DImage, то есть я передаю истину последнему аргументу SetBackBuffer , игнорируя IsFrontBufferAvailable как ложное, и в любом случае отрисовываю.
Работает, но довольно медленно.
Оба WPF, и мой рендеринг D3D11 использует аппаратное ускорение, поддерживаемое по протоколу RDP. Со своей стороны, я не использую устройства WARP или что-либо еще, просто нормально работает D3D_DRIVER_TYPE_HARDWARE
с уровнем возможностей 11.0, даже не выдает никаких сообщений от уровня отладочной проверки.
Есть ли способ включить ускоренный удаленный рендеринг и для D3DImage?
Клиент и сервер работают Windows 10 1903.