A quest to stream from mobile Kepler

MarkAllen

Senior Member
Apr 24, 2015
70
33
0
yeah ,sorry, I just can't think of anything glaringly obvious. I have seen the connection terminated a couple times but it only has happened when I was remote to my home at where I work. And at that it only seems certain games would make that occur when I was at work, like the Batman series of games, not all the time though. Then at home I never have had that error happen except with the game Bastion. With even that one game though I can get it to load and play for several to many minutes before it happens, but it does always happen on that game.
 

MarkAllen

Senior Member
Apr 24, 2015
70
33
0
that would seem odd to me though as mine is also an Acer laptop with both the GT640m and an Intel HD4000. However in the Nvidia control panel I usually keep my 640m at preferred GPU but it seems to work both ways for me with gamestream.
 
  • Like
Reactions: godwisper

godwisper

Member
Jul 12, 2011
22
0
0
that would seem odd to me though as mine is also an Acer laptop with both the GT640m and an Intel HD4000. However in the Nvidia control panel I usually keep my 640m at preferred GPU but it seems to work both ways for me with gamestream.
I give up :( tried all combinations of drivers and gfe and no go....neither with hub nor with moonlight. I always get connection terminated. I get option if I try agaiun same game to either resume or quit....If I resume I get same error and if I quit the game quits from pc....
 

godwisper

Member
Jul 12, 2011
22
0
0
can it be the device id does not match my card ? Already 5 full days trying to get this going. Seems communication is good between shield and pc as game launches and when it stops and gives me option to resume or quit if I press quit it stops the game and as well gamestream. Maybe resolution ? My notebook has a resolution of 1366x768


UPDATE: from the logs

#8(I)[2015-12-26 11:08:39,395]{00000684} Started provider.
#9(E)[2015-12-26 11:08:39,397]{00000684} Failed to open CUDA encoding session (NV_ENC_ERR_UNSUPPORTED_DEVICE).
#0(I)[2015-12-26 11:08:39,397]{00000684} Error starting encoder.
#1(E)[2015-12-26 11:08:39,397]{00000684} Failed to start the video encoder.
#2(I)[2015-12-26 11:08:39,397]{00000684} Received termination reason 0xC014
#3(I)[2015-12-26 11:08:39,397]{00000684} Started to wait on audio thread finish
#4(I)[2015-12-26 11:08:39,398]{00000504} Applied mouse adjustment setting
#5(I)[2015-12-26 11:08:39,402]{00000630} Will now signal the stop event
#6(I)[2015-12-26 11:08:39,402]{000003D0} Requesting async stop for all video streamer threads
#7(I)[2015-12-26 11:08:39,402]{000003D0} Waiting on video streamers to stop
#8(I)[2015-12-26 11:08:39,402]{00000684} Completed wait on audio thread finish

seems this trick is not working on the 920m
 
Last edited:

InsomDX

New member
Oct 20, 2013
1
0
0
The instructions worked wonderfully

I have a Lenovo y510p laptop gt750m in sli configuration. It always bothered me that game streaming was only available with gtx video cards. The fact that the card I have is able to use this feature feels kind of deceitful in nvidia's part. I always assumed the gtx cards had a hardware encoder that was missing on gt cards. Boo on nvidia for crippling their feature set, yay on you for working around it! Thanks again!
 

MarkAllen

Senior Member
Apr 24, 2015
70
33
0
This is the full log if someone wants to take a look
Looking at your logs it sure seems like something with CUDA gets fouled up. My logs do not show those failure events. I can't find any solid items about it though

Have a look at this post #123 Specifically about running the server.py (again I never did this and not really sure what it does) but also about renaming those two rxinput.dll files. Maybe they relate to your crash too?
 
  • Like
Reactions: godwisper

godwisper

Member
Jul 12, 2011
22
0
0
Looking at your logs it sure seems like something with CUDA gets fouled up. My logs do not show those failure events. I can't find any solid items about it though

Have a look at this post #123 Specifically about running the server.py (again I never did this and not really sure what it does) but also about renaming those two rxinput.dll files. Maybe they relate to your crash too?
tried both but still no go and same results.



Below is log from server.py

Started httpserver on port 80
127.0.0.1 - - [02/Jan/2016 22:31:03] "GET /nvidia_web_services/controller.gfeclientcontent.php/com.nvidia.services.GFEClientContent.getShieldReady/{"gcV":"2.8.1.21","dID":"1299","osC":"6.20","is6":"1","lg":"1033","GFPV":"361.43","isO":"1","sM":"8388608"} HTTP/1.1" 200 -
127.0.0.1 - - [02/Jan/2016 22:34:07] "GET /Active/en_US/en_US/gfe/DomainWhiteList.xml HTTP/1.1" 200 -
 

Attachments

Last edited:

MarkAllen

Senior Member
Apr 24, 2015
70
33
0
so not sure how much you really want to vest in this but here a couple last few suggestions

Uninstall Nvidia drivers completely and make sure to do all the manual steps to cleanup after they are gone. Basically you want to get back to where your NV card is simply recognized as Standard VGA driver. Then try the clean install steps of the Nvidia driver and try patching again. The only thing I would again note here is I think between you and I we are patching different executable files? I have 361.43 drivers installed and I have my patch.py script set for this

SRV = 'NvStreamUserAgent.exe'

I thought I recalled you were set for

SRV = 'nvstreamsvc.exe'

that is correct? My system doesn't even have this file.

Offhand I don't know why this is different on our systems other than a driver difference because of card models. Potentially this is what causes user AlexVipXDA to also not work as expected? I believe they found the same issue when installing for their 840m card. Maybe something inherent to those higher up mobile models has changed drastically for this hack? I wonder if you could install the 640m drivers to your 920m and try patching?
 
  • Like
Reactions: godwisper

godwisper

Member
Jul 12, 2011
22
0
0
so not sure how much you really want to vest in this but here a couple last few suggestions

Uninstall Nvidia drivers completely and make sure to do all the manual steps to cleanup after they are gone. Basically you want to get back to where your NV card is simply recognized as Standard VGA driver. Then try the clean install steps of the Nvidia driver and try patching again. The only thing I would again note here is I think between you and I we are patching different executable files? I have 361.43 drivers installed and I have my patch.py script set for this

SRV = 'NvStreamUserAgent.exe'

I thought I recalled you were set for

SRV = 'nvstreamsvc.exe'

that is correct? My system doesn't even have this file.

Offhand I don't know why this is different on our systems other than a driver difference because of card models. Potentially this is what causes user AlexVipXDA to also not work as expected? I believe they found the same issue when installing for their 840m card. Maybe something inherent to those higher up mobile models has changed drastically for this hack? I wonder if you could install the 640m drivers to your 920m and try patching?
Thanks will try tomorrow and will let you know but believe me I tried all sorts of drivers and GFE even those for 8.1.

as regards the nvstreamsvc and nvstreamuseragent seems that the old drivers used the nvstreamsvc whilst I think the last 2 use the later.

Tomorrow will try your driver and see if that works. Meanwhile am almost out of options and to make this work next Monday shall sadly invest in an alienware 13 r2
 

godwisper

Member
Jul 12, 2011
22
0
0
Your driver gave same results. To be honest think is same driver. Gave up ...Acer already packed back in the box and tomorrow will try to get an Alienware. Thanks again for your help
 

Lakritzator

New member
Jan 14, 2016
1
0
0
Created a tool for this

Hi,

this is cool, I tried the description in Post #123, and got it working after a while.
It was still quite a lot of steps one needed to do, especially installing Python wasn't directly something I liked.
I also had a small Problem, as on my laptop there still was a 32-bit version of GeForce and I was first working in the wrong directory.

So I started writing a little tool in C# with .NET, which I placed on github.com under /Lakritzator/EnableGameStream (can't post links yet)
Hope to help the community a bit with this.

What this does
  1. Find your graphics card ID
  2. Find the service
  3. Find the files to patch
  4. Stop the service
  5. Patch the files
  6. Start the service

What this doesn't:
  1. Enable frame buffer capture. I could by including the NvFBCEnable.exe, but I don't want issues with NVidia. Unless someone has information on how this works...
  2. Patch the HTTP(S) communication

I can most likely add functionality which can do the proxy stuff, but I am currently not sure what to parse and how much (IF) this is needed.
It would be nice if someone has some details on the current implementation which NVidia uses to communicate.
I will probably be able to find it out myself, but anything that saves time is good! :)

The application needs admin rights, but will request this itself (you do not need to runas admin).
You will need .NET 4.5 on your system, which is probably already there with Windows 8.1 and later.

The UI is very basic and ugly, just wanted to implement something quickly. (Nicely put: it has potential for improvements)
But it does do the patching steps automatically, and you can't make a mistake with the path or the Device ID.

If people really use this, I can improve the UI...

It's probably best to communicate by issues on GitHub, if possible.

Best wishes,
Robin
 
Last edited:

MarkAllen

Senior Member
Apr 24, 2015
70
33
0
If I wanted to get streaming from a 750M, what would I have to do?
Read this whole thread, it's all right there on what to do and how to do it. If you run into issues then ask more specific questions. If you are not sure how to even begin to implement this I would say stay away and forget about it. If you want to give it a go though just make sure to backup your computer and go for it. Everyone has to begin learning something somewhere. ;)


FYI, latest non-beta GFE 2.9 still works with this GT card hack. I just upgraded with no issues.

Offhand has anyone using this hack tried launching Windows applications (I've tried Notepad, PCSX2, Dolphin) directly from the GFE game list? I find when I do all I get is audio and no video. However if I load Steam in Big Picture mode and add shortcuts to the same apps and emulators there they work. I would prefer not to have to load Steam first to run these, so if someone has any clue what might be happening that would be helpful? I don't fully understand all the ins and outs of Gamestream, but I think the applications simply are not encoding their video to the proper output device so it gets lost somewhere in between. I can add games that are not listed to GFE and those seem to work. For instance Legend of Grimrock loaded fine and I could stream it without heaving to open Steam in BP mode. I assume it works as it works exclusively with the GT card and Gamestream?
 

brushpicks1

Member
Jun 15, 2012
5
0
0
Great idea! It worked. Using NvFBCEnable and spoofing the requests made to http://gfwsl.geforce.com I managed to enable Game Streaming on a GT750M with the latest GeForce Experience.
You must first install python 2, but everything else you will need should be here.
I'll try to list the steps required to make Game Streaming work:

1. Enable frame buffer capture. It should remain enabled, even after restarting.
NvFBCEnable.exe -enable from an Admin prompt

2. Copy patch.py to %PROGRAMFILES%\NVIDIA Corporation\NvStreamSrv
3. Get Nvidia GPU devid from Device Manager (Properties, Details tab, Hardware Ids dropdown, DEV_xxxx, xxxx is the id)
4. Run "python patch.py xxxx" (xxxx is the devid) to patch the gpu devid whitelist from nvstreamsvc.exe

5. Add a redirect from gfwsl.geforce.com to localhost in %SystemRoot%\system32\drivers\etc\hosts
You can also use the hosts file that I have provided
6. Start server.py
Beware of other processes listening on the 80 port (Skype is one of them - go to Tools, Options, Advanced, Connection and untick "Use port 80 and 443....")
7. Profit

If processes start crashing or using the entire CPU you should rename
C:\Program Files\NVIDIA Corporation\NvStreamSrv\rxinput.dll
and
C:\Program Files (x86)\NVIDIA Corporation\NvStreamSrv\rxinput.dll
to whatever you want.

I haven't tested this on any other machines, so please provide feedback.
I get stuck at run "python patch.py xxxx" what do I do there?
 

THLW8+

Senior Member
May 19, 2013
54
3
0
Hello
I have a Geforce GT 650M graphics card. No Optimus.
I can not quite follow the Tut.
1. Enable framebuffer capture. It shoulderstand remain enabled, even after restarting.
NvFBCEnable.exe -enable from at Admin promptly
It's start a window, but disappears.

3. Get Nvidia GPU devid from Device Manager (Properties, Details tab, Hardware Ids dropdown, DEV_xxxx, xxxx is the id)
This also do not understand. My DEV ID that is here.
PCI \ VEN_10DE & DEV_0FD1 & SUBSYS_365B17AA & REV_A1
PCI \ VEN_10DE & DEV_0FD1 & SUBSYS_365B17AA
PCI \ VEN_10DE & DEV_0FD1 & CC_030000
PCI \ VEN_10DE & DEV_0FD1 & CC_0300
Which is it?

4. Run "python patch.py xxxx" (xxxx is the devid) to patch the gpu devid whitelist from nvstreamsvc.exe
I also do not understand. I have no file named.
(Python patch.py xxxx)
Only (patch.py) When I open the same happens as in. 1
It's start a window, but disappears.

What am I doing wrong? python-2.7.11, I have installed. :(
 

MarkAllen

Senior Member
Apr 24, 2015
70
33
0
Hello
I have a Geforce GT 650M graphics card. No Optimus.
I can not quite follow the Tut.
1. Enable framebuffer capture. It shoulderstand remain enabled, even after restarting.
NvFBCEnable.exe -enable from at Admin promptly
It's start a window, but disappears.

3. Get Nvidia GPU devid from Device Manager (Properties, Details tab, Hardware Ids dropdown, DEV_xxxx, xxxx is the id)
This also do not understand. My DEV ID that is here.
PCI \ VEN_10DE & DEV_0FD1 & SUBSYS_365B17AA & REV_A1
PCI \ VEN_10DE & DEV_0FD1 & SUBSYS_365B17AA
PCI \ VEN_10DE & DEV_0FD1 & CC_030000
PCI \ VEN_10DE & DEV_0FD1 & CC_0300
Which is it?

4. Run "python patch.py xxxx" (xxxx is the devid) to patch the gpu devid whitelist from nvstreamsvc.exe
I also do not understand. I have no file named.
(Python patch.py xxxx)
Only (patch.py) When I open the same happens as in. 1
It's start a window, but disappears.

What am I doing wrong? python-2.7.11, I have installed. :(
For both 1 and 4 the reason your window closes is due to how you are running them. I would suggest you open an elevated CMD (this is a DOS prompt window that has administrator privleges) to run these commands.

So one you have a CMD opened change directory to where you have your 'NvFBCEnable.exe' locate and run the command

NvFBCEnable.exe -enable

For that one the screen just flickers briefly (if at all) and that's it. This makes a change on the system to enable frame buffer and it does stay after reboots.

Your DEV_ID is '0FD1'

Finally from the same CMD you opened change directory to where your 'nvstreamsvc.exe' is located. This same folder should be where you copied the 'patch.py' file. On a 64 bit Windows install this directory is 'C:\Program Files\NVIDIA Corporation\NvStreamSrv'\

Run this command (you have to adjust the directory for where python was installed, mine is right on my root C: drive in 'Python')

C:\Python\Python.exe patch.py 0FD1

If all goes well it should tell you it has found 2 matches and asks if you want to continue. that should do it.

good luck
 
  • Like
Reactions: THLW8+

rummyr

Member
May 11, 2011
10
1
0
ok, I'm really not sure if this thread should still be kept going.. but..
I'm trying to come up with an even simpler way of doing all of this.
So far my technique is.
  • Do the NvFBCEnable .. I did this so long ago I couldn't say if it really is necessary, though I think it is
  • In NvStreamUserAgent.exe patch in my device id as per previous strategy
  • In NvStreamUserAgent.exe patch the string gfwsl.geforce.com to be an unknown hostname (ggggg.geforce.com) instead of editing hosts and faffing intercepting all of those HTTP calls! Actually this is semi equivalent to editing the hosts file to stop the gamestreamer from "dialing home", because hosts isn't edited GFE still dials home and doesn't think your systems can stream (it can!)
  • Reboot .. and it seems to be working so far!
Upsides:
  • a lot less messing around with custom scripts and stuff
  • moonlight works
Downsides
  • GFE says my machine isn't compatible with streaming, but I don't care because it does stream!
  • I have to do the '-shadowplay' command line option to enable shadowplay because GFE doesn't think I can, less than optimal, but it does work.
  • I have to launch FFXIV twice before shadowplay actually works .. I'm still not sure if this is a timing thing or what, it has always been flakey whatever I do.

Many things are untested e.g. streaming over internet, and so on, so it may be that this isn't the perfect strat.
 
Last edited:

THLW8+

Senior Member
May 19, 2013
54
3
0
For both 1 and 4 the reason your window closes is due to how you are running them. I would suggest you open an elevated CMD (this is a DOS prompt window that has administrator privleges) to run these commands.

So one you have a CMD opened change directory to where you have your 'NvFBCEnable.exe' locate and run the command

NvFBCEnable.exe -enable

For that one the screen just flickers briefly (if at all) and that's it. This makes a change on the system to enable frame buffer and it does stay after reboots.

Your DEV_ID is '0FD1'

Finally from the same CMD you opened change directory to where your 'nvstreamsvc.exe' is located. This same folder should be where you copied the 'patch.py' file. On a 64 bit Windows install this directory is 'C:\Program Files\NVIDIA Corporation\NvStreamSrv'\

Run this command (you have to adjust the directory for where python was installed, mine is right on my root C: drive in 'Python')

C:\Python\Python.exe patch.py 0FD1

If all goes well it should tell you it has found 2 matches and asks if you want to continue. that should do it.

good luck
Hi @ Mark Allen
Thanks for the description.
The server is started. (NvFBCEnable.exe -enable) o.k

My python.exe is on (C:\Programme\python27\python.exe)
It is a German Windows. In Explorer is the folder "Programme" in the properties "Program Files".

I copy (patch.py) to ( C:\Programme\NVIDIA Corporation\NvStreamSrv ).

That's when I type the command

C:\Programme\NVIDIA Corporation\NvStreamSrv> C:\Programme\python27\python.exe patch.py 0FD1
Searching for target devid

C:\Programme\NVIDIA Corporation\NvStreamSrv>

Then nothing happens ...


I'm not Fitt in CMD:crying:
 
Last edited:
Our Apps
Get our official app!
The best way to access XDA on your phone
Nav Gestures
Add swipe gestures to any Android
One Handed Mode
Eases uses one hand with your phone