VMware Horizon Community
kazimnaim
Contributor
Contributor

Is there a possibility to achieve stable 60fps on the client side with 2x 1920x1080?

Infrastructure

VMware vCenter

Server: Supermicro 4028 with E5 2697 Proc

VMware Horizon View 7 ( Connection Server)

Tesla M60 Configured in graphics mode

Nvidia License Server with Trial License

Cisco 3560 Gigabit Switch

VM Configuration:

4vCPU

16GB Ram

SSD based storage

End Client: Fat Client Windows 7 Machine 2 Screens 1920x1080 output

Protocol in use: PCoIP with following tweaks performed on client (tested with GPO based as well as client based tweaks)

(HKLM\SOFTWARE\Policies\Teradici\PCoIP\pcoip_admin),  :

Tested with different frame rates / min and max image quality etc

\pcoip_admin

pcoip.device_bandwidth_floor: 900000

pcoip.enable_build_to_lossless: 1

pcoip.enable_server_clipboard: 0

pcoip.enable_vchan: 1

pcoip.maximum_initial_image_quality: 100

pcoip.minimum_image_quality: 100

\pcoip_admin_defaults

pcoip.device_bandwidth_floor: 1000000

pcoip.enable_build_to_lossless: 1

pcoip.maximum_frame_rate: 60

pcoip.maximum_initial_image_quality: 100

pcoip.minimum_image_quality: 100

pcoip.transport_session_priority: 1

pcoip.use_client_img_settings: 1

Tests Performed

1 Virtual Machine with Grid vGPU Profile M60-8Q – 8GB

Screen Output: 2 x 1920x1080

Issue No. 1: Nvidia vGPU

vGPU is always rendering more than 60fps. Switched Nvidia FRL(Frame Rate Limiter) on and off to check with following results:

FRL Enabled: Rendering is always above 65fps reaching till 70 fps

FRL Disabled: Rendering is always above 70fps reaching till 80 fps

Isssue No. 2: PCoIP

Unable to get 60fps on client side

We require 1920x1080 @ 60hz = 124,416,000 pixels per screen

For 2 screens the total will be 248,832,000 pixels

Perfmon shows PcoIP not exceeding 51Mpps.

As per my understanding, the limit is on the transmission protocol i.e maximum Mpps via soft client

ReportView.gif

So.....My question is:  Is there a possibility to achieve stable 60fps on the client side with 2x 1920x1080?

1 Reply
kazimnaim
Contributor
Contributor

To answer my own question. NO. 60fps on PCoIP is not possible with software solution. Only possible with Remote workstation cards which will be a 1:1 patch with less density and no scalablity

here is the answer from Teradici forums:

Answer by Randy Groves

PCoIP only encodes the pixels that are changing on the screen. Most use cases for the applications you mention do not change every pixel on both screens. However, if you really need every pixel changing on both screens at 60fps, the only known solution is to use an NVIDIA Quadro card (not Tesla) connected to aTeradici Remote Workstation card connected to a PCoIP Zero Client with at Tera2140 chip in it (one that supports quad displays).

With vGPU, you will be limited to ~60Mpps per VM with software only. With the PCoIP Hardware Accelerator card you will be limited to ~80Mpps per Display. This will support 30fps for content that is changing 2Mpixels per frame, but 60fps will require content changing at <1.3Mpixels per frame. Note that even a quad core Thick client can further limit the performance, so you may want a PCoIP Zero Client for this, too, though a Tera2321 is probably good enough (supports dual display and 130Mpps of decode)

Since you are only getting ~50Mpps, if the limit is not your Thick client, some additional suggestions are:

  • Be sure that you server power mode has been set to "High Performance" mode as the default is "Balanced"
  • Changing you maximum initial quality to 90 instead of 100 may help since Q100 requires more bandwidth processing
  • Your Bandwidth floor settings should be reduced by 10X since the vGPU environment will rarely generate >100Mbps

This brings me to test Blast protocol

End Client: Fat Client Windows 10 Machine 1 Screen 1920x1080 output

tried multiple registry tweaks on Blast protocol adjustments, image quality, max fps etc but unable to get more than 30fps on client side.. I am targeting @ 60fps.

Anyone fighting with similar issues out there ??