Black Screen Issues with 7.x VDA

Over the last 7 months we have spent an enormous amount of time working with Citrix on a problem that we just couldn’t shake.  When we started our migration process from XenDesktop 5.6 to 7.1 we got a very nasty error.  Users would make a successful ICA connection but the screen would stay totally black.  Rebooting would sometimes correct it for a time, but not permanently.  Reinstalling the VDA did the same.  We tried all the different VDA versions that came out and in every case we could reproduce the issue.  The number of hours we spent with Citrix Escalation is pretty staggering and ultimately it took direct interaction with the developers to solve it.

First, many thanks to our Citrix TRM for staying on top of this.  It dragged out a considerably long time (far longer than it should have frankly) but he kept forcing everyone to respond and eventually find the root cause.  Based on the Citrix forums, it appears many people have experienced this issue without a true permanent fix so I hope this helps another org save a ton of pain!  This issue manifested on both ESX and HyperV and frankly has nothing to do with the hypervisor.  It has to do with how the Video Memory is allocated to the Citrix Video Driver at session launch.  Because of the order of memory allocation it can become fragmented and cause the black screen.

The fix is two parts.  First, if you are using the 7.1 VDA you need to make sure you have ICAWS750WX86008.msp installed as a hotfix.  Without this the second part of the fix doesn’t matter.  That file is not needed with the 7.6 VDA (and I THINK not with the 7.5 VDA but I haven’t tested).  The second part of the fix is two registry entries:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\vbdenum]

“Start”=dword:00000001

“MaxVideoMemoryBytes”=dword:06000000

“Group”=”EMS”

 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\vd3d]

“MaxVideoMemoryBytes”=dword:00000000

You can change the MaxVideoMemoryBytes field to be higher as well.  What happens is it grabs the memory defined in that key earlier in the process as a contiguous space so that it is not fragmented.  Poof, no more black screens.  Those keys are part of the 7.6 VDA but you still want to look at the MaxVideoMemoryBytes and adjust according to your own requirements.

*Update* I’m hearing that they aren’t actually in 7.6.  So if you experience the problem I suggest adding them.

 

, , ,

21 Comments

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">