I come here because Citrix and NVidia have both been struggling to provide me with any concrete information. We’re trying to get dual monitors working for chromebooks, with hardware encoding enabled for our GPU setup. We are hoping to utilize hardware encoding for the entire screen, rather than selective h.264. This works fine when launching a single monitor Citrix session, however if we full screen it across 2 or more monitors it does not work. They are simple 1080p monitors and this issue happens across multiple chrome devices including i5 cpu chromebooks, chromeboxes, etc.
Delivery controller: LTSR 7.15.300
Windows OS: 1809 x64
Nvidia driver version: 9.1 on both host and guest
Imaging: Image created through app layering, and published with MCS (static persistent desktops). I am using the platform layer for nvidia drivers, then installing the vda afterwards. There is an app layering nvidia fix we also perform prior to installing the drivers (regarding unifiltr) registry key.
GPU: Tesla T4 Turing 16gb GPU, 2 in each host.
I am at a loss as to what to try. We have played with google policy and used the chrome configuration utility from citrix:
This works fine from a windows endpoint, but dual monitors I cannot get working from any kind of chrome device. This is really preventing us from moving forward with our POC and any help would be greatly appreciated.
So what should NV do there? As you already mentioned it works fine on fat client so not a NV issue. Citrix receiver has not the same feature set for different platforms so I assume it is a limitation with Citrix receiver. At least there is nothing from NV side that would prevent dual screen on Chrome.
In addition to Simons answer (which is correct), the issues you’re experiencing are why it’s so important to run POCs before rolling out a new environment or set of technologies. Trying different configurations of hardware, software etc until you find what works and what’s acceptable for your support teams and more importantly end users. This is where you find the various limitations of each technology or combination of technologies and it’s all part of the process. You can then either accept those limitations and carry on, or decide if you go down another route substituting different technologies until you get the functionality that you need.
Is using the GPU for encoding the protocol critical to the success of the POC at this time? If no, try using the CPU (server side) by changing the Citrix Policies appropriately and see if that works for your users.
If hardware encoding is critical, is having multiple monitors? How about removing a pair of low resolution 1080P monitors and replacing them with a single 4K monitor? This will free up desk space, remove cables and free up power sockets as well as giving your users much more screen estate to work with. It will also give you some future proofing, which 1080P doesn’t. And as you’ve already confirmed, your POC works with a single monitor …
You’ve already mentioned that other non-Chrome devices work, are you locked in to using Chrome as an OS?
This is 100% a Citrix limitation or Citrix / Chrome configuration issue. The GPU is more than capable of encoding multiple monitors (or a single 4K monitor ;-) ). There is nothing on the NVIDIA side that can be done here.
Have you posted on the Citrix Forums? If no, you should be posting under these categories:
Lastly, I haven’t used XenDesktop 7.15 for a long time, I always run the CR to take advantage of the latest settings, but it may be worth checking which Citrix Policies are available in the LTSR vs CR in case there’s something in there that helps. Unrelated, but whenever I’m working with customers and they’re using vGPU / GPU technologies, I always recommend running CR, not LTSR. It may or may not be applicable in your case, but worth having a look just in case.
Understood and thanks for the feedback. Yes, we’re still in the POC phase luckily. I think what I’m most disappointed with is the fact that neither Nvidia nor Citrix can definitively say where the limitation is. No one has given us any advice other than the standard documentation, no one can say whether it is a limitation of chromebooks, Receiver for Chrome, or anything else. I can see where it would be easy for Nvidia to say that it works on a fat client, so it isn’t an Nvidia issue. It makes sense, and I understand that.
We’re really hoping to get the NVENC offloading working as that seems to be the best use of the GPU’s. When the hardware encoding isn’t working, the performance when watching even a simple youtube video is on par with that of a regular VDI VM. There isn’t much benefit for buying these fancy video cards if they can’t offload CPU tasks to the GPU.
Regarding what should NV do, it would be helpful if they atleast added this to their documentation so the next person that tries to do dual monitors on a chrome device, they can say it is a known limitation. Or perhaps NV could work with Google or Citrix to get this implemented if it is a limitation of Citrix or Chrome OS.
I’m sure there is a number of things they could do, whether they will do them to try to sell hardware is another story. We’re an extremely large customer looking at buying easily 40-50 high end GPU’s, and anywhere from 4000-6000+ per user licenses, but I suppose this isn’t incentive enough to get any support beyond "this is a citrix issue".
I suppose I’ll post on the Citrix forums to see what they can offer.
The GPUs and vGPU software are doing what they’re sposed to. They have the functionality and performance to encode multiple monitors (way more than two) per session or Client. The issue is with the combination of Citrix WorkspaceApp and Chrome, and that’s nothing to do with NVIDIA. You could use AMD GPUs and it still wouldn’t work, as it isn’t an AMD limitation either. You can see this because as you’ve mentioned above, the solution works with a Windows Operating System on a Client instead of Chrome. It isn’t because of NVIDIA that it works with Windows as the GPU is located in the datacenter so has zero visibility of the Client or its Operating System being used, it’s because of Citrix and Microsoft. Windows being the most popular Operating System globally moves it to the top of Citrix’s priority queue for feature development and support.
Unfortunately, in this instance, an Operating System that isn’t widely used in enterprise environments (compared to something like Windows) is being used on the Client side, therefore feature development and configuration support will be lacking by comparison. There really isn’t anything NVIDIA can do here, their GPUs are working perfectly, are in no way at fault and there’s no need for NVIDIA to add it to any of their documentation, as it isn’t their limitation.
Do you have the model number of a Chromebook you’ve selected for this POC that I can look at?
I can understand the frustration when vendors are bouncing customers around. However, I will definitively say that it’s a Citrix WorkspaceApp & Chrome configuration or functionality issue.
My company isn’t setup exactly like you are but we are running Chromebooks connected to Plugable USB-C docking stations running up to 3 monitors from a single Chromebook. Our hardware consists of Dual Nvidia M10 Cards in our hosts and Asus C434, HP X360 14 G1, and PixelBooks. What chromebooks are you trying this from?
Also are you using the Citrix Workspaces from Chrome Web Store vs the playstore.
We are currently on 7.15 CU4 and 1909 for the VDAs.
And just read you post a for a second time and noticed we are setup different. We have our graphics policies set to "Use video codec when preferred." I will test with changing it to "For the entire screen" and will get back with you on our results.
Welp…you are correct. I get the same results as you. If we change the Video Codec to "For the Entire Screen to Optimize" our Plugable USBC docks no longer work with our Chromebooks. The Workspaces trys to open and then immediately closes. If I unplug it from the dock the native screen works. But then says Hardware Encode "disabled" Our default policy was set to "For Actively Changing Regions." If I set this to "Use Video Codec when Preferred" I get the same result as above. If I set if to "For Actively Changing Regions" everything works again. And this is only on Chromebooks. I tested on a couple Mac Books and a couple Windows 10 machines and "For the Entire Screen to Optimize" works fine and hardware encode says "Enabled" with 4 monitors connected. So looks like just chromebooks are not working. We are actually finishing up a test environment that is running 1909. This is to prepare for the next LTSR. Maybe the behavior is fixed since 7.15 is a few years old now.