VM Junkie

February 2, 2010

How to fix PCoIP VRAM issue with PowerShell, t5545 supports PCoIP now

Filed under: hp, powershell, thinclients, vdi, view, vmware — Justin Emerson @ 4:46 pm

Hi folks! Been a while, but I have a couple nifty tidbits here for you all:

A lot of folks have been having trouble with getting VMware View’s PCoIP to work in higher resolutions. This is caused by your Virtual Machine not having enough VRAM to power higher resolutions (since unlike RDP, PCoIP is using the “physical” video card of your Virtual Machine, as opposed to a virtual video device like RDP). There have been several workarounds:

  • Reset (not reboot) each VM once after it’s deployed. This is because when View clones your template, it fixes the VRAM issue but the VM is already powered on so the setting change won’t take effect until you restart the VM Monitor process. Reset does this. This was outlined in this XTRAVIRT KB article.
  • The better fix is to set your template’s VRAM properly. This is easier said than done, because there are bugs in the vSphere Client’s video settings dialog box that causes some settings (like the number of monitors) not to be written to the VMX file. So the only way to do this reliably has been to add the VM has an Individual Desktop in View Manager and have it do the settings properly. This was outlined at this That’s my View blog post.

That last one is obviously ideal, but it’s a pain and a waste of time to go through creating the pool. Even worse, if you made the mistake of building a pool out of the VM already, the View Manager prevents you from using the template VM as the source for an Individual Desktop!

So I wrote this PowerShell function that, when you feed it a VM object, will correctly set the VM to have enough Video RAM and display ports for 2 Monitors, each running at the max resolution of 1920×1200.

function Set-VRamSize ($vms)
	$vmviews = $vms | Get-View

    $vmConfigSpec = New-Object VMware.Vim.VirtualMachineConfigSpec

    $line1 = New-Object VMware.Vim.optionvalue
    $line2 = New-Object VMware.Vim.optionvalue
    $line3 = New-Object VMware.Vim.optionvalue
    $line4 = New-Object VMware.Vim.optionvalue

    $vmConfigSpec.extraconfig += $line1
	$vmConfigSpec.extraconfig += $line2
	$vmConfigSpec.extraconfig += $line3
	$vmConfigSpec.extraconfig += $line4

	$deviceSpec = New-Object VMware.Vim.VirtualDeviceConfigSpec
	$videoCard = New-Object VMware.Vim.VirtualMachineVideoCard
	$videoCard.numDisplays = 2
	$videoCard.videoRamSizeInKB = 36000
	$videoCard.Key = 500
	$deviceSpec.device += $videoCard
	$deviceSpec.operation = "edit"

	$vmConfigSpec.deviceChange += $deviceSpec
	foreach($vm in $vmviews){

The script is also available on my Sky Drive.

In related news, the HP t5545 (along with a slew of other Linux-based Thin Clients) now supports PCoIP using the new client that you can download here.



  1. Are you satisfied with the performance of PCoIP with HP Thin 5545?

    Do you have any trouble with MMR, and USB redirection?

    I am currently trying to choose a thin client and I found this model interesting.

    Comment by Steve Lavoie — February 3, 2010 @ 8:32 am

  2. Im fighting with USB redir on the 5545 w/ PCOIP. I cant get it to work. Video perfomance using PCoIP over the WAN is alot worse than RDP wich I dont understand.
    Latency is 25ms w/ 6mb download at the remote location where my 5545 is at. Main Office where the Windows XP VM and View server location is> speeds> 30MB down+ 9MB up.

    Any Ideas VMJUNKIE?

    Comment by rick310 — February 11, 2010 @ 2:45 pm

  3. Video Perfomance FIXED! There was something wrong with my lab at work.

    I tested Video perfomance w/ PCoIP from my house and its amazing! Im going to blog my finding on my page. Update soon!

    Comment by rick310 — February 11, 2010 @ 8:05 pm

  4. Steve,
    I am not 100% satisfied yet. As you pointed out, MMR and USB are not working with PCoIP as of yet. Other limitations around performance also concern me.
    I have gotten it to work but I’ve spoken with HP and they are working on an updated client which should come out later this month to address some of the shortcomings.

    Comment by ermac318 — February 15, 2010 @ 2:18 pm

  5. Please tell us how-to fix video perfomance. I’ve bought one t5545 and I want to buy more, but video perfomance is to slow and not enought for me and our company.

    Comment by dimka — February 15, 2010 @ 10:04 pm

  6. dimka,
    That’s not a lot of information to go on. What is your network link like? It is being saturated? Have you tried reducing the resolution of your thin client? Are you sure the performance is not strained on the VM side?
    It could be one of a hundred things.

    Comment by ermac318 — February 16, 2010 @ 11:57 pm

  7. Failed= T5545 pcoip performance is slow over the wan and lan.
    If I connect with View Client from my laptop its lighting fast.
    Im going to open a case w/ HP to find out why the TC cant handle the PCOIP.

    Comment by Ricky310 — March 2, 2010 @ 10:48 am

  8. Can you elaborate on how to execute the powershell script? I tried running it from a PowerCLI 4.0 U1 shell and nothing happens.

    Comment by Derek — April 11, 2010 @ 7:10 pm

  9. Derek,
    Running the script simply adds the function. Either run that script in an open Powershell window with a . in front of it (so that the function sticks around in your session) or cut/paste the contents into a PS window and then you should be able to run the function Set-VRAMSize

    Comment by ermac318 — April 13, 2010 @ 1:45 pm

  10. […] the Video Settings fully to the .vmx file, but fortunately ermac318 over at VM Junkie has created a PowerCLI function to fix this issue. You can grab the script from his site or from a local mirror here. To run it, do […]

    Pingback by PCoIP VRAM Fix — August 29, 2010 @ 6:00 pm

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.

Blog at WordPress.com.

%d bloggers like this: