Question / Help NVENC encoder not an option when using a Google Compute Cloud instance of Windows Server 2019

kurtis0107

New Member
Hello, i'm trying to set up an Google Compute Cloud instance to stream movies to me and my friends, however the virtualized CPU's aren't fast enough to stream over x265 so I attached a Tesla P4 with the intention to use NVENC - However even after installing the drivers (https://www.nvidia.com/Download/driverResults.aspx/146685/en-us) which i'm pretty sure are the right ones, NVENC doesn't show up as an option for some reason.

Any ideas why this might be happening? Here's a log of me opening and then closing OBS: https://pastebin.com/qaceWBCg
 

koala

Active Member
12:30:38.901: Initializing D3D11... 12:30:38.901: Available Video Adapters: 12:30:38.905: Loading up D3D11 on adapter Microsoft Basic Render Driver (0)
From OBS' point of view, there is no physical GPU present.

In the past, if you connect to your machine via rdp, you get an emulated rdp-specific GPU, not the hardware GPU. It comes up as "Microsoft Basic Render Driver" just as in yor log. To get access to the physical GPU, you have to connect to the console (with vnc or Teamviewer) and must not use rdp.
With the current version of Windows 10 (1903) this seems to have changed, at least for me on my own PC. If I connect to my PC (running Windows 10 1903) with rdp, OBS actually gets the real physical GPU of the machine and actually offers nvenc.

Since OBS isn't able to detect any physical GPU on your machine, either one isn't present, or appropriate drivers are not installed, or you're connecting via rdp and using an older version of Windows than 1903.

In general, OBS isn't designed to run in virtualized machines. It's designed to directly run on physical hardware such as your desktop or notebook at home.
 

kurtis0107

New Member
12:30:38.901: Initializing D3D11... 12:30:38.901: Available Video Adapters: 12:30:38.905: Loading up D3D11 on adapter Microsoft Basic Render Driver (0)
From OBS' point of view, there is no physical GPU present.

In the past, if you connect to your machine via rdp, you get an emulated rdp-specific GPU, not the hardware GPU. It comes up as "Microsoft Basic Render Driver" just as in yor log. To get access to the physical GPU, you have to connect to the console (with vnc or Teamviewer) and must not use rdp.
With the current version of Windows 10 (1903) this seems to have changed, at least for me on my own PC. If I connect to my PC (running Windows 10 1903) with rdp, OBS actually gets the real physical GPU of the machine and actually offers nvenc.

Since OBS isn't able to detect any physical GPU on your machine, either one isn't present, or appropriate drivers are not installed, or you're connecting via rdp and using an older version of Windows than 1903.

In general, OBS isn't designed to run in virtualized machines. It's designed to directly run on physical hardware such as your desktop or notebook at home.

Tried connecting with teamviewer sadly with the same outcome - and device manager recognises the GPU, however Nvidia control panel seems to lack all the standard settings, which might be because of the Telsa P4 or because of some kind of driver issue

I might try creating a custom boot image of windows with settings/drivers that I know to work and upload it to Compute Cloud tommorow to see if that works, otherwise it might just be a problem with virtualized hardware not working nicely with OBS other than I have no idea
 
Last edited:

Fenrir

Forum Admin
As mentioned, OBS is not designed, and will not really run well, in a cloud virtual environment. You will unfortunately be on your own to ensure that the GPU is configured for full passthrough, or OBS will not be able to access it properly.
 
Top