@ECHO OFF
setLocal EnableDelayedExpansion
rem nvup.bat, a quick & dirty driver downloader since GeForce Experience requires a login.
rem In a folder with write permissions, drop the script and its two dependencies:
rem - jq: https://stedolan.github.io/jq/
rem - curl: https://curl.haxx.se/
rem For automation, just create a Scheduled Task that runs when you want it (I like on Resume).
rem Reuse / modify / redistribute at will.
rem http://stackoverflow.com/questions/19131029/how-to-get-date-in-bat-file
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"
set "datestamp=%YYYY%%MM%%DD%" & set "timestamp=%HH%%Min%%Sec%"
set "fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%"
echo lastCheck: "%fullstamp%" > lastCheck.log
rem to get the update feed for your device/OS combo, go to http://www.geforce.com/drivers
rem , pick your device/os, pop the "Network" tab of your devtools, start the driver search,
rem and copy the url
curl --silent -o rawNv.json "http://www.geforce.com/proxy?..."
for /f "delims=" %%i in ('jq ".IDS[0].downloadInfo.DownloadURL" rawNv.json') do set lastUrl=%%i
set /p installedUrl=< installedUrl.txt
if %installedUrl%==%lastUrl% (
echo same version, quitting
exit /B
) else (
echo new version, updating
echo %lastUrl% > installedUrl.txt
pushd C:\Users\YOURUSERNAME\Downloads
%~dp0\curl -O %lastUrl%
popd
rem http://stackoverflow.com/questions/774175/show-a-popup-message-box-from-a-windows-batch-file
mshta "javascript:alert('New driver');close()"
)Thank you for sharing your work with us!
There are some older versions of nvidea experience floating around that still work with shadowplay without the login.
It's replay buffer where you start the replay buffer and it will keep the last n seconds of footage in a buffer. You set a keybind to save that buffer to file.
https://obsproject.com/forum/resources/obs-classic-how-to-us...
$URI = 'http://www.geforce.com/proxy?proxy_url=http%3A%2F%2Fgfwsl.geforce.com%2Fservices_toolkit%2Fservices%2Fcom%2Fnvidia%2Fservices%2FAjaxDriverService.php%3Ffunc%3DDriverManualLookup%26psid%3D101%26pfid%3D815%26osID%3D57%26languageCode%3D1078%26beta%3D0%26isWHQL%3D1%26dltype%3D-1%26sort1%3D0%26numberOfResults%3D10'
$Download = (Invoke-WebRequest $URI | ConvertFrom-Json | Select -ExpandProperty IDS)[0].downloadInfo.DownloadURL
# Installed driver version (21.21.13.7570) > NVIDIA driver version (375.70)
[Version]$Driver = (Get-WmiObject Win32_PnPSignedDriver | Select DeviceName, DriverVersion, Manufacturer | Where { $_.Manufacturer -eq "NVIDIA" -and $_.DeviceName -like "*GeForce GTX*" }).DriverVersion
[Version]$CurrentDriver = ("{0}{1}" -f $Driver.Build,$Driver.Revision).Substring(1).Insert(3,'.')
# Latest driver on NVIDIA's website
[Version]$LatestDriver = ([System.Uri]$Download).Segments[-2].Trim('/')
If ($CurrentDriver -lt $LatestDriver) {
Write-Output "New driver available"
Start-BitsTransfer -Source $Download -Destination "$env:USERPROFILE\Downloads"
(New-Object -ComObject WScript.Shell).Popup("New NVIDIA driver downloaded",0,"Update")
} Else {
Write-Output "Same version. Nothing to download"
}
Improvements welcome. :)So I have a few questions to you or knowledgeable PS-passersby:
1. Any recommendations to get started with PowerShell? Good documentation, tooling, linters, useful packages?
2. Are there remaining cases where it's impossible or unreasonable to use PowerShell rather than Batch or VBScript?
3. PS runs on Win≥XP, right? How does the language evolve / is it versioned? If so, which version should I target?
1a. with powershell as an administrator run `Update-Help` That's all the help for the commands installed and up to date from online. Get-help <command> and don't forget to use wildcards `get-help get-*` will show every single get command you can run. Get-Verb will show what you should expect things to be called. `Get-module -listAvailable` worth looking at too. Tab complete is your friend.
1b. This and the advenced one are great although quite slow; https://mva.microsoft.com/en-us/training-courses/getting-sta...
2. No? Maybe stuff that's already fine or where working out the signing policy is a hassle.
3. Powershell is wrapped into the "Windows Management Framework" you can install. WMF 5 has PS 5, can install down to Windows 7. 7 shipped with PS 2.0 where you could write cmdlets in powershell itself, before that you had to use C++ and visual studio. PS3.0 is the minimum it's really pleasant to use but 2.0 support isn't crazy.
2. Not really. Worst case, you can batch & co.
3. Probably v2.
Uninstalled. Never to be reinstalled.
AMD will be my next card. Thanks nVidia for letting me know what you think of me :)
Then Ubuntu 16.04 comes out, and guess what? No fglrx driver support any more [2] and users report the open source drivers use about a core and a half worth of CPU, slowing down their entire machines. Apparently our only options are to buy new cards or stay on 14.04 indefinitely.
Meanwhile, I had an nVidia card and I was able to upgrade to 16.04 with no problems at all.
This week you might have resolved not to buy from nVidia - but in the same week I've resolved not to buy from ATI.
[1] https://certification.ubuntu.com/hardware/201302-12679/ [2] http://www.omgubuntu.co.uk/2016/03/ubuntu-drops-amd-catalyst...
[1] https://support.amd.com/en-us/kb-articles/Pages/AMD-Radeon-G...
Ubuntu 16.04 does ship with a pretty old version of Mesa (full major version behind, about to be 2 major verions as Mesa 13 is in the RC stage) which probably isn't helping matters. Unfortunately, while there are some PPAs that make it fairly easy to install a bleeding edge build, there's not really a convenient way to install the latest stable release.
For some context, the reason fglrx/Catalyst has not been updated is due to an in progress driver transition for AMD cards on Linux. Generally speaking, Linux video drivers are split into a kernel part and a user space part. For quite some time, AMD has maintained two completely separate driver stacks on Linux. For the user space side, this didn't represent a huge amount of duplication of effort as most of the code is shared with the OpenGL portion of their Windows driver, but for the kernel side it was a bunch of wasted effort. A while back, they started on a new open source kernel driver, called amdgpu, that could provide the necessary facilities for both their open source and proprietary driver efforts. The new proprietary driver (AMDGPU-Pro) targets this kernel module. Unfortunately, amdgpu does not have production-ready support for GCN 1.0 GPUs like the 8570. This will get fixed eventually, but that doesn't really help you now.
I honestly don't care about this, these threads always attract those who value privacy above all else and believe that every should play on their terms. Most people do not care, and as an engineer I see extreme value in providing this data. This isn't to say that there aren't dark patterns being used here(the acceptance language is hidden in the EULA), but there is a simple work around...don't use GeForce Experience. Manually download the drivers from Nvida's website. In addition to there being a complete go around, I also use G-sync for my games which is superior technology to Freesync, so there is basically no chance that I'm leaving the Nvidia ecosystem unless they did something truly harmful to me.
After huge annoyance with required login in GeForce, this story will 100% convince me to uninstall it and check updates manually.
And if you think nVidia treats customers/users badly, just watch AMD's treatment of Apple hardware. They added artificial blocks preventing the "normal" driver from installing there (even though it is fully functional) and you have to use a special Bootcamp driver, which is incredibly outdated and buggy as hell in modern games. Their support is about as useful as you expect in a big corporation, and then some. It's so bad that enthusiasts are re-packaging AMD's drivers to have something: https://www.mxdriver.com
No harm, no foul, probably time to give AMD cards a chance. Variety is the spice of life and the spice must flow.
As much as I'd love true competition in the GPU/CPU space, it doesn't exist. AMD's cards simply cannot compete with Nvidia for GPGPU type scenarios, and even in its basic capacity, often have known heat/perf issues. Now that may be worth it for now to make a statement against the telemetry, but what if (less if and more when IMO) AMD then adds driver telemetry? And then intel?
These domains (Chip manufacture/GPU driver writing) are so advanced at this point that I don't see how competition could reasonably disrupt an incumbent over anything less than a samsung-grade failure (and even then probably not), and I'm concerned about the long-term wherein the producers realize this and through a combination of boiling the frog slowly and leaving consumers no other choices put themselves in the position to have a "pragmatic monopoly" of free reign over our machines. (I've always wondered what would happen from an antitrust sense, if it's "we're the only producer not because we WANT to but because we're the only ones who CAN")
We've certainly seen it happening with OSes, as well as some attempts from PC oems, I've always unfortunately thought it was just a matter of time until the more irreplaceable components got into the game too and I'd love some creative thoughts to actually stop the trend and not stand in its way, because I'm not sure we'll win that latter battle.
EDIT: as a child post points out, I completely forgot to mention drivers as well; as a strong argument to my "we don't have many options" thesis. AMD's linux support has been historically lacking next to NVIDIA which makes it a non starter in many cases.
Really? Which brand of GPU pretty much ran Bitcoin during its inception, again?
You can do most any computation on any GPU with the right SDK support (and of course, the CPU hasn't gone anywhere). It's just fantastically less efficient.
Edit: read a sister post later article on the breakdown of the perf differences, and it seems to slightly affirm what I'm saying (re: bitcoin aligning with a functionality AMD performed very strongly in), although I'll admit to have only skimmed it.
I will say though, even despite this, it doesn't address the known heat/power issues even the "heyday" amd cards seemed to suffer from and that were still present when I was comparing them while looking at a 1070 recently.
EDIT: since I can't edit my original post any more, I'd note here that I didn't intend to turn this into a NVIDIA/AMD debate, even if we ignore that for a moment and consider it a duopoly situation instead of monoply, I'd ask readers to consider my core point in that light.
https://streamcomputing.eu/blog/2016-05-06/noticeable-proces...
So I think there's a very clear reason for that specific case.
I'm worried about the semiconductor industry in general as well, there is a lot of concentration currently all over the place, not sure where it's going to stop, and at some degree competition is going to become less fierce, you don't need to get to a monopoly but an oligopoly is likely and will lead to tacit agreement on market separation and price fixing as in the telecom industry.
As for drivers, AMD has pledged to open source their Vulkan and OpenCL implementations. While that release has been pending "legal review" forever now, alternative open source drivers are making great progress thanks to Vulkan's simpler driver model. While NVidia's generally had the "better" driver, both from adhering less strictly to the spec and having the manpower to routinely fix application bugs in their driver, that's all changed with Vulkan/DX12 being significantly closer to the hardware.
I'd say things are looking up for market balance.
I know with my old Nvidia drivers, you can add extra icons for window management to every window (move to next monitor, etc). Would this be using DLL injection?
The "experience" app is just superfluous bullshit.
Anyway, everything is shit ;)
It's especially nice compared to normal H.264, and has the option of light compression with nominal CPU usage if you don't like large lossless files. It outputs normal MP4/H.264 files that I can then work with in Linux (as opposed to say Fraps) but uses the fact your GPU is already rendering the scene to then output it in H.264.
I don't know about others, but I approach that stuff with the attitude of "I can't expect change if I just swear at my monitor", but stop short of actually expecting change
For now I have shadowplay set up correctly, but any changes aren't gonna be happening it seems.
Way to go Nvidia.. uninstalling your non-driver app crashes games :)
That's a weird edge case to support. After all, the app in question is responsible for recording in game video thus implying some kind of dependency.
Evidently it does not handle getting the rug pulled from under itself well. :)
There's a youtube video I fail to find where a nvidia driver engineer explains how many games are terribly broken, failing to respect OpenGL/DirectX basics. Drivers hand-patch that, just like Microsoft hand-patch Windows for specific games "because compatibility" [1].