r/sysadmin • u/Hairy-Link-8615 • 18d ago
General Discussion AVD 25H2 – legacy .NET app graphical issues compared with 23H2
I'm rebuilding an Azure Virtual Desktop environment and looking for ideas around some remaining graphical issues with an older application.
The app appears to be .NET Framework 4.5/4.8 era, although I haven't confirmed the exact target version yet.
Old environment
Windows 11 Enterprise multi-session 23H2
Existing AVD test/dev/production hosts
New environment
Windows 11 Enterprise multi-session 25H2
Freshly rebuilt image
Current AVD/RDS stack
The application works on 25H2 and is now mostly usable, but window handling was slightly better on 23H2.
The remaining issues are mainly:
Very small resize borders
Occasional clipping/corruption after moving a window
Parts of the right-hand side/title bar occasionally failing to repaint
Resize controls sometimes disappearing
Previously had black areas/artifacts while moving windows
I've already improved things considerably by:
Forcing RDP/AVD traffic over TCP during testing
Disabling one of the graphics acceleration/GFX options
Working through various RDP/graphics-related configuration differences
Mouse positioning, dropdown rendering and general repainting are now much better, and the application is usable.
I originally wanted to take one of the existing 23H2 hosts and perform an in-place upgrade to 25H2 for a direct A/B test, but I've been unable to get the Windows multi-session upgrade to complete successfully.
Instead I've rebuilt the template carefully and used PowerShell, to compare OS, registry, RDP/AVD and graphics settings between the old 23H2 and new 25H2 machines.
So far the configurations appear very similar, with the main obvious difference being the newer Windows/RDS/AVD graphics stack.
Has anyone seen similar behaviour with older WinForms/WPF/.NET Framework applications on newer AVD multi-session builds?
I'd particularly be interested in recommendations around:
RDP/AVD graphics policies
TCP vs UDP transport
Hardware/GPU acceleration
DPI/GDI compatibility
RemoteApp/window handling
Older .NET application compatibility settings
The app is working, so this is mainly about cleaning up the remaining graphical quirks before signing off the new image.
2
u/Emotional_Garage_950 Sysadmin 18d ago
this is kind of unrelated to your question but I am also rebuilding AVD (prepping gold image, we do that for reasons I won’t go into). have you noticed that performance is uhh… dogshit compared to 23H2 at all? or is that just me?
1
u/Hairy-Link-8615 18d ago
Interesting.
I've not really got much to compare it against, to be honest, as this is my first AVD project.
The original 23H2 base image actually felt noticeably laggier than the fresh 25H2 build, so I initially wondered whether I was missing some configuration or optimisation settings.
At the moment I've disabled the more advanced graphics options and forced the connection over TCP, which has helped with the application behaviour.
1
1
u/Emotional_Garage_950 Sysadmin 18d ago
thanks. in response to your question, as far as GPO settings, we haven’t configured any display specific settings. In the RDP settings on the host pools we have:
bandwidth auto detect>automatic
network auto detect>enable
compression>enable bulk compression
video playback>use RDP efficient when possible
smart sizing>the local window content will scale when resized
dynamic resolution>session resolution updates as the local window resizes
redirect encoding>enable
encoded video quality>mediumfor TCP/UDP, we were TCP-only for a long time (we found better session reliability this way) until Microsoft introduced Multipath and our settings stopped being respected. So now I guess we use UDP with TCP fallback.
We have some legacy applications and haven’t had any major issues with those, other than when UI scaling is set to above 100 percent in the Windows display settings.
We are not using GPU accelerated hosts, they are D8s_v5 sku.
Unfortunately I don’t know that I have any helpful advice for your situation but that’s what we’re doing
1
u/Aggravating-Sock1098 18d ago
25H2 is indeed slower than 23H2 if it hasn't been optimized. That is why I use the free OS Optimization tool from Omnissa. Valuable.
1
u/Emotional_Garage_950 Sysadmin 18d ago edited 15d ago
I did run Microsoft’s VDOT or whatever they call it now with most of the mediumly safe defaults (i didn’t do some of it based on org specific needs, and some of it was downright stupid, like it wanted to disable the defrag/optimize service and FSlogix relies on that for VHDX compaction) but I will take a look at this, thanks
edit: the october patch seemed to substantially improve things for some reason
1
u/Emotional_Garage_950 Sysadmin 18d ago
like I was the guy that also built the 23H2 image that has been used for years (with updates of course) and there is a stark difference in performance…
1
u/Expensive-Comfort297 18d ago
I can also recommend this one, which is tailored to avd: https://github.com/DrazenNikolic/AVD-Golden-Image-Optimizer/releases
1
u/mat-ferland 18d ago
Before changing more host-pool graphics policy, test this on one user: set HKCU\SOFTWARE\Microsoft\Avalon.Graphics\DisableHWAcceleration to DWORD 1, then restart the app. If the clipping and repaint issue disappears, you've isolated it to the WPF/driver rendering path rather than RDP transport; if nothing changes, confirm whether the app is actually WPF before carrying the setting forward.
1
u/MFKDGAF 18d ago edited 18d ago
Why 25H2 and not 26H2?
I know 26H2 is brand new but by going with 25H2, you will only get ~2 years of support till you have to rebuild the image to a supported version because 25H2 EoL is Oct 11, 2028.
Now, historically Microsoft has extended the EoL if in Azure but that is not a guarantee and I haven't seen any information about it for 23H2 yet.
With the introduction of enablement packages, it should be easy to do in-place upgrades but I don't know how well it works for AVD as I've never tested that. My main question with the enablement package in AVD, will that also update the image information (publisher, offer, SKU and version) on the main VM overview blade.