acceleration3 / cloudgamestream

A Powershell one-click solution to enable NVIDIA GeForce Experience GameStream on a cloud machine with a GRID supporting GPU.
MIT License
122 stars 27 forks source link

g4dn - GameStream still unavailable after install #5

Open samAnnisBrown opened 4 years ago

samAnnisBrown commented 4 years ago

I've installed this script numerous times on a Win 2016 and 2019 g4dn instance in AWS Sydney region. Each time the script completes successfully, however after logging into GeForce Experience, GameStream is still not available. Steps take:

  1. Launch instance with full network access to my home IP
  2. Once launched, turn off Windows Firewall
  3. Install Firefox
  4. Install TightVNC Server
  5. Login via VNC and launch this script in PowerShell admin
  6. Yes to everything (Audio, GRID (which now works automatically after issue 4 resolve))
  7. Allow reboots when requested
  8. Relaunch script in Admin PowerShell via VNC after any reboot
  9. Open GeForce Experience 3.13.0.85 and login via email
  10. Navigate to Settings - No features are available, with the error on GameStream being that I don't meet the Desktop GPU requirement

While the script works well, and I've been using it to prep instances for use with Parsec, I CANNOT get GameStream to work on a g4dn instance with T4 GPU using this script.

Am I missing something, or is this an issue and is g4dn not actually supported?

Thanks :)

acceleration3 commented 4 years ago

So I think I know what the issue is here, but just to confirm, on step 8 you meant running the shortcut created on the desktop, right? Anyway, since I doubt this is the issue, I looked up TightVNC and found out it's using Windows' mirror driver to render the desktop. This is a problem since GameStream only activates if there is a monitor attached to the NVIDIA GPU and this mirror driver creates a fake monitor in RAM that won't work. Using other solutions that use GDI or desktop capturing API such as AnyDesk or TeamViewer will probably fix your issue.

amaumene commented 3 years ago

Hi,

I can confirm it works fine with g4dn on AWS. I skipped the installation of vcable and update the GPU driver though. I already have Parsec installed so sound is ok and I'm using the NVIDIA Gaming image (and didn't want to mess with the shipped driver).

I think you can close this issue.

acceleration3 commented 3 years ago

@amaumene Thank you for the confirmation. I can't really attest to it working or not myself since I don't have a way to test AWS machines so I will leave the issue open just in case.

aarasu commented 3 years ago

@amaumene Could you confirm the steps you are following? I tried using this on both the NVIDIA AWS Gaming Image win19 server and the base win 19 server. I'm unable to get the gamestream to show up as active.

hobeika commented 3 years ago

Thanks for trying to solve our issue.

I confirm the GameStream service isn't started after the installation. I'm using NVIDIA AWS Gaming Image with g4dn. I have tried with anydesk, vnc, rdp and even via steam (streaming wordpad and then reaching the desktop to run the installation script again). Also I have used jamesstringerparsec's GPU update script as it was suggested by the script.

I have tried running nvstreamer.exe with the following command found in another issue here: start /B "" /D "C:\Program Files\NVIDIA Corporation\NvContainer" "C:\Program Files\NVIDIA Corporation\NvStreamSrv\nvstreamer.exe"

Here are the results. It seems to start and stays opened. I can see the nvstreamer.exe process running. Still the GameStream service is not running and moonlight host tester and GFE say that GameStream is off:

Microsoft Windows [Version 10.0.17763.1158]
(c) 2018 Microsoft Corporation. All rights reserved.

C:\Users\Administrator>start /B "" /D "C:\Program Files\NVIDIA Corporation\NvContainer" "C:\Program Files\NVIDIA Corporation\NvStreamSrv\nvstreamer.exe"

C:\Users\Administrator>[libprotobuf WARNING ..\src\google\protobuf\descriptor_database.cc:58] File already exists in database: BusMessage.proto
[libprotobuf WARNING ..\src\google\protobuf\descriptor_database.cc:115] Symbol name "BusMessage" conflicts with the existing symbol "BusMessage".
[libprotobuf WARNING ..\src\google\protobuf\message.cc:288] File is already registered: BusMessage.proto
You can run C:\Program Files\NVIDIA Corporation\NvStreamSrv\nvstreamer.exe -help to see all the help options.
#1(I)[2020-12-28 14:42:04,365]=14:42:04={00001DB8} Custom Ctrl+C handler successfully set.
#2(I)[2020-12-28 14:42:04,366]=14:42:04={00001DB8} PID 1688
#3(I)[2020-12-28 14:42:04,375]=14:42:04={00001DB8} Streaming Process ID: 0
#4(I)[2020-12-28 14:42:04,384]=14:42:04={00001DB8} P4 Changelist: 23612337
#5(I)[2020-12-28 14:42:04,394]=14:42:04={00001DB8} Enumerating network adapters on this system
#6(I)[2020-12-28 14:42:04,415]=14:42:04={00001DB8} --- ...: ... / ...
#7(I)[2020-12-28 14:42:04,429]=14:42:04={00001DB8} Building head list
#8(I)[2020-12-28 14:42:04,581]=14:42:04={00001DB8} Adapter vendor id: 0x10de, device name: \\.\DISPLAY1
#9(I)[2020-12-28 14:42:04,599]=14:42:04={00001DB8} Creating a Standalone SCI Thread
#0(I)[2020-12-28 14:42:04,611]=14:42:04={00001DB8} Received ServerListenForIncomingStreams
#1(I)[2020-12-28 14:42:04,618]=14:42:04={00001DB8} Using: OpenSSL 1.0.2n  7 Dec 2017
#2(I)[2020-12-28 14:42:04,809]=14:42:04={00001DB8} RND is initialized
#3(I)[2020-12-28 14:42:04,814]=14:42:04={000005D8} Starting initialization of the main server thread
#4(I)[2020-12-28 14:42:04,863]=14:42:04={000005D8} RTSP Server: TCP instance
#5(I)[2020-12-28 14:42:04,872]=14:42:04={000005D8} RTSP server successfully started on port 48010 (thread count 4)
#6(I)[2020-12-28 14:42:04,880]=14:42:04={000005D8} Allocated 1 ConnectionInfo entries
#7(I)[2020-12-28 14:42:04,886]=14:42:04={000005D8} Completed initialization of the main server thread with state 2
#8(I)[2020-12-28 14:42:04,897]=14:42:04={00001DB8} Not sending a message.
#9(I)[2020-12-28 14:42:04,902]=14:42:04={00001DB8} SCI Thread creation done
#0(I)[2020-12-28 14:42:04,914]=14:42:04={00001DB8} Computing SPS/PPS headers.
#1(I)[2020-12-28 14:42:04,992]=14:42:04={00001DB8} Loaded library from '...'
#2(I)[2020-12-28 14:42:05,179]=14:42:05={00001DB8} Initialized context for adapter 0: 3840 x 2160 @ 60.0 Hz
#3(I)[2020-12-28 14:42:05,185]=14:42:05={00001DB8} Driver version is 445.87, branch is r445_85.
#4(I)[2020-12-28 14:42:05,198]=14:42:05={00001DB8} System is NOT co-proc.
#5(I)[2020-12-28 14:42:06,138]=14:42:06={00001DB8} Initialized CUDA for device 'Tesla T4' (SM 7.5) in compute mode 'CU_COMPUTEMODE_DEFAULT'.
#6(I)[2020-12-28 14:42:06,170]=14:42:06={00001DB8} GPU's = {
#7(I)[2020-12-28 14:42:06,174]=14:42:06={00001DB8}      {
#8(I)[2020-12-28 14:42:06,179]=14:42:06={00001DB8}      FriendlyName=Tesla T4
#9(I)[2020-12-28 14:42:06,184]=14:42:06={00001DB8}      }
#0(I)[2020-12-28 14:42:06,189]=14:42:06={00001DB8}      {
#1(I)[2020-12-28 14:42:06,193]=14:42:06={00001DB8}      FriendlyName=MICROSOFT BASIC DISPLAY ADAPTER
#2(I)[2020-12-28 14:42:06,201]=14:42:06={00001DB8}      }
#3(I)[2020-12-28 14:42:06,204]=14:42:06={00001DB8} }
#4(I)[2020-12-28 14:42:06,209]=14:42:06={00001DB8} Nvidia GPU count: 1, Non Nvidia GPU count: 1
#5(I)[2020-12-28 14:42:06,213]=14:42:06={00001DB8} Found a match at [19]
#6(W)[2020-12-28 14:42:06,219]=14:42:06={00001DB8} GPU does not support local streaming
#7(I)[2020-12-28 14:42:06,225]=14:42:06={00001DB8} Initializing NvEnc7VideoEncoder.
#8(I)[2020-12-28 14:42:06,232]=14:42:06={00001DB8} Using NvEnc header version 0.7.
#9(I)[2020-12-28 14:42:06,290]=14:42:06={00001DB8} Found a match at [19]
#0(W)[2020-12-28 14:42:06,294]=14:42:06={00001DB8} GPU does not support local streaming
#1(I)[2020-12-28 14:42:06,301]=14:42:06={00001DB8} Found a match at [19]
#2(W)[2020-12-28 14:42:06,305]=14:42:06={00001DB8} GPU does not support local streaming
#3(I)[2020-12-28 14:42:06,312]=14:42:06={00001DB8} Generating SPS/PPS header for 1280x720@30 FPS in video format H.264.
#4(I)[2020-12-28 14:42:06,384]=14:42:06={00001DB8} Encoder maxLumaPixelsPerSec 1297614208
#5(I)[2020-12-28 14:42:06,389]=14:42:06={00001DB8} Encoder maxLumaPixelsPerSec 1409277696
#6(I)[2020-12-28 14:42:06,399]=14:42:06={00001DB8} SPS/PPS LUT match, idx 0
#7(I)[2020-12-28 14:42:06,404]=14:42:06={00001DB8} Found a match at [19]
#8(W)[2020-12-28 14:42:06,409]=14:42:06={00001DB8} GPU does not support local streaming
#9(I)[2020-12-28 14:42:06,415]=14:42:06={00001DB8} Generating SPS/PPS header for 1280x720@60 FPS in video format H.264.
#0(I)[2020-12-28 14:42:06,422]=14:42:06={00001DB8} SPS/PPS LUT match, idx 3
#1(I)[2020-12-28 14:42:06,427]=14:42:06={00001DB8} Found a match at [19]
#2(W)[2020-12-28 14:42:06,433]=14:42:06={00001DB8} GPU does not support local streaming
#3(I)[2020-12-28 14:42:06,438]=14:42:06={00001DB8} Generating SPS/PPS header for 1920x1080@30 FPS in video format H.264.#4(I)[2020-12-28 14:42:06,447]=14:42:06={00001DB8} SPS/PPS LUT match, idx 1
#5(I)[2020-12-28 14:42:06,453]=14:42:06={00001DB8} Found a match at [19]
#6(W)[2020-12-28 14:42:06,457]=14:42:06={00001DB8} GPU does not support local streaming
#7(I)[2020-12-28 14:42:06,463]=14:42:06={00001DB8} Generating SPS/PPS header for 1920x1080@60 FPS in video format H.264.#8(I)[2020-12-28 14:42:06,472]=14:42:06={00001DB8} SPS/PPS LUT match, idx 4
#9(I)[2020-12-28 14:42:06,476]=14:42:06={00001DB8} Found a match at [19]
#0(W)[2020-12-28 14:42:06,482]=14:42:06={00001DB8} GPU does not support local streaming
#1(I)[2020-12-28 14:42:06,488]=14:42:06={00001DB8} Generating SPS/PPS header for 3840x2160@30 FPS in video format H.264.#2(I)[2020-12-28 14:42:06,497]=14:42:06={00001DB8} SPS/PPS LUT match, idx 2
#3(I)[2020-12-28 14:42:06,503]=14:42:06={00001DB8} Found a match at [19]
#4(W)[2020-12-28 14:42:06,507]=14:42:06={00001DB8} GPU does not support local streaming
#5(I)[2020-12-28 14:42:06,513]=14:42:06={00001DB8} Generating SPS/PPS header for 3840x2160@60 FPS in video format H.264.#6(I)[2020-12-28 14:42:06,521]=14:42:06={00001DB8} SPS/PPS LUT match, idx 5
#7(I)[2020-12-28 14:42:06,536]=14:42:06={00001DB8} Found a match at [19]
#8(W)[2020-12-28 14:42:06,540]=14:42:06={00001DB8} GPU does not support local streaming
#9(I)[2020-12-28 14:42:06,545]=14:42:06={00001DB8} Generating SPS/PPS header for 1280x720@30 FPS in video format HEVC.
#0(I)[2020-12-28 14:42:06,553]=14:42:06={00001DB8} SPS/PPS LUT match, idx 6
#1(I)[2020-12-28 14:42:06,558]=14:42:06={00001DB8} Found a match at [19]
#2(W)[2020-12-28 14:42:06,563]=14:42:06={00001DB8} GPU does not support local streaming
#3(I)[2020-12-28 14:42:06,569]=14:42:06={00001DB8} Generating SPS/PPS header for 1280x720@60 FPS in video format HEVC.
#4(I)[2020-12-28 14:42:06,577]=14:42:06={00001DB8} SPS/PPS LUT match, idx 9
#5(I)[2020-12-28 14:42:06,582]=14:42:06={00001DB8} Found a match at [19]
#6(W)[2020-12-28 14:42:06,586]=14:42:06={00001DB8} GPU does not support local streaming
#7(I)[2020-12-28 14:42:06,592]=14:42:06={00001DB8} Generating SPS/PPS header for 1920x1080@30 FPS in video format HEVC.
#8(I)[2020-12-28 14:42:06,601]=14:42:06={00001DB8} SPS/PPS LUT match, idx 7
#9(I)[2020-12-28 14:42:06,606]=14:42:06={00001DB8} Found a match at [19]
#0(W)[2020-12-28 14:42:06,611]=14:42:06={00001DB8} GPU does not support local streaming
#1(I)[2020-12-28 14:42:06,617]=14:42:06={00001DB8} Generating SPS/PPS header for 1920x1080@60 FPS in video format HEVC.
#2(I)[2020-12-28 14:42:06,625]=14:42:06={00001DB8} SPS/PPS LUT match, idx 10
#3(I)[2020-12-28 14:42:06,630]=14:42:06={00001DB8} Found a match at [19]
#4(W)[2020-12-28 14:42:06,634]=14:42:06={00001DB8} GPU does not support local streaming
#5(I)[2020-12-28 14:42:06,640]=14:42:06={00001DB8} Generating SPS/PPS header for 3840x2160@30 FPS in video format HEVC.
#6(I)[2020-12-28 14:42:06,652]=14:42:06={00001DB8} Encoder supports encoding 10 bit
#7(I)[2020-12-28 14:42:06,658]=14:42:06={00001DB8} SPS/PPS LUT match, idx 8
#8(I)[2020-12-28 14:42:06,663]=14:42:06={00001DB8} Found a match at [19]
#9(W)[2020-12-28 14:42:06,669]=14:42:06={00001DB8} GPU does not support local streaming
#0(I)[2020-12-28 14:42:06,674]=14:42:06={00001DB8} Generating SPS/PPS header for 3840x2160@60 FPS in video format HEVC.
#1(I)[2020-12-28 14:42:06,683]=14:42:06={00001DB8} SPS/PPS LUT match, idx 11
#2(I)[2020-12-28 14:42:06,719]=14:42:06={00001DB8} Deinitialized CUDA context for adapter 0.
#3(I)[2020-12-28 14:42:06,736]=14:42:06={00001DB8} Deinitialized context for adapter 0
#4(W)[2020-12-28 14:42:06,744]=14:42:06={00001DB8} IsEnableGFNMicSupport setting not found
#5(I)[2020-12-28 14:42:06,750]=14:42:06={00001DB8} initializeAudio
#6(I)[2020-12-28 14:42:06,754]=14:42:06={00001DB8} Trying to create and open audio source (new API), bIsMicEnabled: 0
#7(I)[2020-12-28 14:42:06,850]=14:42:06={00001DB8} Setting channel count to 2
#8(I)[2020-12-28 14:42:06,855]=14:42:06={00001DB8} Setting opus channel mapping mode to FALSE
#9(I)[2020-12-28 14:42:06,861]=14:42:06={00001DB8} Setting opus channel mappingMode = FALSE
#0(I)[2020-12-28 14:42:06,894]=14:42:06={00001DB8} initializing NvVAD m_bRegisterNvVADEndpoint: 0
#1(I)[2020-12-28 14:42:06,900]=14:42:06={00001DB8} Surround is supported
#2(I)[2020-12-28 14:42:06,905]=14:42:06={00001DB8} DLL version supports surround audio
#3(I)[2020-12-28 14:42:06,915]=14:42:06={00001DB8} NvAudCapAudioSource successfully opened
#4(I)[2020-12-28 14:42:06,920]=14:42:06={00001DB8} Created and opened audio source
#5(I)[2020-12-28 14:42:06,925]=14:42:06={00001DB8} Updating Audio source
#6(I)[2020-12-28 14:42:06,930]=14:42:06={00001DB8} Starting the SCI thread
#7(I)[2020-12-28 14:42:06,936]=14:42:06={00001DB8} Not sending a message.
#8(I)[2020-12-28 14:42:06,940]=14:42:06={00001DB8} Sent event StreamerInitOk:

Feel free to ask for more information. Thanks!

acceleration3 commented 3 years ago

It appears there are no errors with GFE. Can you check Windows' "Advanced display settings" and see if there is a monitor with the GPU attached? And if there is, are you sure you are running GFE on that monitor? image

hobeika commented 3 years ago

Thanks for the quick response! I have the following: monitor

acceleration3 commented 3 years ago

It's very strange that it's not working for you at this point. Do you have an audio interface installed? Can you manually start the NvContainerLocalSystem service? If so, the last thing I can think of is to re-run step 2 from the Steps folder and rebooting the VM.

hobeika commented 3 years ago

This service was already running. I have stopped it and started it again. Here is what I currently have

service

I have relaunched step 2 successfully and rebooted. I logged in via anydesk and ran Moonlight Internet Streaming Tester which said that GameStream is Off. Here are the logs.

Thanks again for your help.

Moonlight Internet Streaming Tester v5.5.1.0
The current UTC time is: 04:01:50 PM
RegQueryValueExA() failed: 2
GameStream is not enabled in GeForce Experience. Please open GeForce Experience settings, navigate to the Shield tab, and turn GameStream on.
--------------- CURRENT MISS LOG -------------------
Moonlight Internet Streaming Service v5.5.1.0
The current UTC time is: 04:00:35 PM
RegQueryValueExA() failed: 2
RegQueryValueExA() failed: 2
GameStream is OFF!
Finding upstream IPv4 hops via traceroute...
IcmpSendEcho() failed: 11010
Found 0 hops
Starting port mapping update on default gateway to local machine...
UPnP IPv4 IGD discovery completed with error code: 0
NAT-PMP public address request failed: -100
No UPnP device found!
Updating PCP port mapping for TCP 47984...NO RESPONSE
Updating PCP port mapping for TCP 47989...NO RESPONSE
Updating PCP port mapping for TCP 48010...NO RESPONSE
Updating PCP port mapping for UDP 47998...NO RESPONSE
Updating PCP port mapping for UDP 47999...NO RESPONSE
Updating PCP port mapping for UDP 48000...NO RESPONSE
Updating PCP port mapping for UDP 48002...NO RESPONSE
Updating PCP port mapping for UDP 48010...NO RESPONSE
No valid upstream IPv4 address found!
Going to sleep...
hobeika commented 3 years ago

Regarding audio devices I didn't install anything. Here is the list of my device.

devices

The only thing I have done was to remove the Microsoft Basic Display Driver based on http://lg.io/2015/07/05/revised-and-much-faster-run-your-own-highend-cloud-gaming-service-on-ec2.html (with takeown cacls and del commands but with an updated path)

acceleration3 commented 3 years ago

Did you check if the SHIELD tab is present after rebooting?

hobeika commented 3 years ago

Thanks a lot!!!!!!!!! I didn't notice this new tab on the left!!!! GameStream is working properly! Thanks again!!!!!!