Failure to render UI Controls on Remote Desktop Terminal Sessions (RDP)
The Avalonian control does not render correctly on remote terminal services, even when a valid GPU adapter is available.
I initially thought I was configuring it wrong, but it works fine on regular user sessions.
If I repeatedly invalidate controls, I will occasionally get a flicker of the Avalonian content, but aside from that I see nothing from Avalonia.
Estragonia on regular windows session
Estragonia on windows terminal session
Godot reports that a valid Vulkan device is present.
Beginning to diagnose this
Drawing a line with the Skia context via Vulkan
Skia on WTS
Skia on normal session
Isolated the issue to the Skia implementation in GodotSkiaGpu
Currently I'm suspecting something is going wrong with elements that are NOT redrawn constantly.
Your hello world example seems to render, and it has animations.
I get this on startup.
But then when I resize the window I do get the Avalonian content rendered.
Can you confirm whether you get issues for situations where all of the controls in Estragonia are not animated?
I can alleviate the issue by having in _Process() calls to QueueRedraw in the User-Interface godot control.
It's like the first few _Draw calls are not actually done or executed. For instance, to get the Skia content drawn I had to repeatedly call QueueRedraw.
I can unfortunately confirm that the first two _Draw calls do not result in content rendered.
public override void _Process(double delta)
{
if (_drawCount < 2)
this.QueueRedraw();
}
The above code - you see nothing when the window goes on screen.
// Called every frame. 'delta' is the elapsed time since the previous frame.
public override void _Process(double delta)
{
if (_drawCount < 3)
this.QueueRedraw();
}
But in the above code - you do see the content when the window goes on screen.
This upsets me immensely, and I'm considering that perhaps it's not Estragonia's fault but Godot's fault.
To my dismay, I can also confirm that delegating all Skia drawing operations by several frames also results in everything rendering correctly.
Thank you for the report!
Is that an AMD GPU? If yes that's probably #5. Currently, I can't reproduce with a remote RTX 4080.
Thank you for the report!
Is that an AMD GPU? If yes that's probably #5. Currently, I can't reproduce with a remote RTX 4080.
Negative, that's an Nvidia Quadro P1000 on the work PC.
@ShadowMarker789 If possible, can you please try Estragonia 1.2.0-preview1 (targeting Godot 4.3-beta1)?
There have been efforts to fix the corruption on AMD GPU, and I believe the better Vulkan synchronization might have fixed this issue. (At least I can't see any issues on RDP sessions with both Nvidia and AMD GPUs.)
I'm closing this as potentially fixed in 1.2.0-preview1 - feel free to reopen if you can still reproduce the issue with that version.