That said, having managed fleets of machines that were nominally running the "same" software, getting updates from all of them is a really powerful debugging tool. Once you get above about 1,000 machines logs comparison of all the machines immediately surfaces software issues (happens on all machines), connectivity issues (machines in a certain area), bad machines (unique problem signature), and environmental issues (time of day correlation with other things like power/temp/humidity/etc).
And that gives you a bit more courage to release things early because you'll see problems faster and can fix them.
So with a typical roll-out of 10% of the population followed by an additional 15% followed by the rest, you can catch a lot of errors and 75% of your population sees a really good experience (and in web services where 66% of the populations the minimum requirement for delivering rated service you can often get close to 100% uptime).
Does that justify their action? No. But since you really don't need everybody to participate to get the benefit I could see a path where you opt in for early access to drivers which requires the telmetry, and people who are ok waiting for the driver to be clean in the 'canary' population get a driver without telemetry.
Remember that it's not just games, but your web browser, media players and anything that might use hardware acceleration runs through these drivers, which then reports back to nVidia. Plus, all telemetry data is unencrypted during transmission.
On the plus side, it looks like this is only transmitted back to the mothership if you're running GeForce Experience, which I don't think is even available on Linux.
The engineering feature is designed with pure intentions, keep crap out of the results stream, but the mechanism is amoral. If you're executive team wants to exploit it for more money so that the company does better financially, your options are limited as an engineer.
They could have implemented telemetry without requiring you to link your graphics card to your email or Facebook account, as GeForce Experience never required that in the past and still worked fine.
This isn't execs using innocuous data that the good engineers simply happened to have. This is new and specific personal data collection and association of information that they have no business collecting, except for the sole purpose of invading their users' privacy for side profits.
And that gives you a bit more courage to release things
early because you'll see problems faster and can fix them.
I gotta say, if the major benefit of telemetry is that vendors can test less before they release, that sounds like a bad thing not a good thing for users?Testing less means they can release sooner.
Here is a bad example. New game comes out. Graphical driver glitch crash. Typically would take 2 weeks to get to public as whole. Now with this they can release in 2 days to 10% fix up and release to whole by end of first week. So 90% of population got a fix sooner(1 week) And some percentage of the 10% may have had some annoyances. Sucks for them. But if they roll out in a way that minimizes this. It'd be beneficial to all overall.
Seems to me getting the poorly tested drivers earlier isn't much of a deal for users. After all, just because I'm in the 99.9% this week, doesn't mean I will be next week.
@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()"
) $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?
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.
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...
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
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.
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?
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 ;)
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].
Maybe true historically - but in recent years publishers have figured out a formula to subvert criticism (review embargos, sponsored reviews, reddit astroturfing). There's no action after the complaining, it's all bark, they still buy the game, little bit of heat on reddit/twitter but then you still set sales records. See The Division, No Man's Sky.
Man, that sounds like a breach of Magnusson-Moss, and anti-competitive at that.
Why would I want to use this Exprience thing anyway? It's crapware, right?
As for telemetry - as long as software only sends reasonable things (feature usage etc) and uses reasonable bandwidth, I'm completely fine. I honestly don't even mind if programs do it without asking and I think all apps should have feature statistics telemetry to be able to cut (or make more discoverable) features no one uses.
I use it for NVIDIA Share. It's my understanding that GPU-based alternatives can't compete because NVIDIA won't give them access to NVFBC and NVIFR. The creator of RivaTuner goes into more detail here:
http://forums.guru3d.com/showpost.php?p=4687310&postcount=61
Might just try experience 2.x which is still around. I don't mind telemetry I do mind s mandatory Facebook login...
It is equivalent to installing spyware.
Any info ever collected by no-permissions-asked telemetry must be such that it doesn't matter who has the information or what they do with it. If it isn't information of that kind then of course a program should ask permission. But that in my view isn't "telemetry" then. If it collects anything even remotely user-identifying or personal then it's in my definition not telemetry and should never be done without permission (if at all).
If a program really is malicious, then it doesn't matter if it asks for permission because why would that wouldn't respect the users wish anyway?
My argument wasn't pro/against telemetry, it was that asking permission doesn't change anything. Permission isn't what tells malicious programs from others. A benign program doesn't do things that needs permission to begin with.
I know Logitech's software also makes network calls but I never bothered looking what it is, I just block everything. At least it doesn't ask for a login, it can save locally or in the on-board memory.
These are GPU drivers. It's not at all unreasonable that there may be something sensitive shown on the screen when a crash occurs. It might not even be shown on the screen but still present in GPU memory:
https://news.ycombinator.com/item?id=10873059
I would not be surprised if the telemetry included some parts of GPU state which could contain sensitive data.
It's not terribly secret, now was it? It was... you know... immediately discovered and I'm pretty sure my driver changelog AND firewall asked about it.
> These are GPU drivers. It's not at all unreasonable that there may be something sensitive shown on the screen when a crash occurs.
Pardon me, could you please explain exactly what in the telemetry or common crash logs might reflect "sensitive" information? You seem to me like you're arguing from some sort of grand final consequence, "Well I assume there is sensitive data here!" And while perhaps that's not an unreasonable default policy to take, you might want to state it as such rather than implying (as you have) that it's been observed already.
In general, telemetry doesn't include bulk memory dumps. The technology for collection strongly discourages this, as the endpoints collecting standard telemetry need to run at the scale of your customer base. I'd be much more concerned about sharing log dumps if you've filled your framebuffers with confidential information.
You see, there's no way for users to know what data is being collected and sent today, or what they might change and decide to collect tomorrow.
What if government wants access to this data? What if some hacker gets access to the data or their methods of collecting it (MitM)?
As such, they need to prove we can trust them before we accept this at face value. They have not done so.
So as far as things go now what happens is, new game is released, players with card X and configuration Y N P and Z complain about driver crashes over reddit/forums, NVIDIA/AMD picks up on it and then starts to try to figure what the hell is going on. Usually some initial mitigating actions would be released within a few days, and within a week to a month a full driver update will be released.
While this isn't the end of the world, it's annoying that you have issues that prevent you from enjoying a game that you paid 60$ for on a system that you likely paid at least 1000$ if not 3-4 times that.
Anyone who ever worked on a crash report system knows that opt-in rates are below 10% even for corporate clients. Heck if you are lucky you get single digit % figures on "send this report" even if the checkbox is ticked by default, the vast majority of people just hit cancel.
The stats are actually pretty darn interesting, especially for image quality vs fps I had a chance to speak to a few reps from NVIDIA once and they told me that as much as PC players bitch and moan about 60fps vsync the vast majority of them would push settings at the expense of smooth(er) framerates even if they have no to very little effect on image quality.
https://www.reddit.com/r/linux_gaming/comments/5bcppp/nvidia...
--
Here is my email:
Dear Nvidia,
I have been a life-long supporter since I was in college (14 years). I have recommended your products to many friends and purchased more than 15 of your graphics cards for my own computers. I build servers and run a cloud storage business. My friends and family look to me for advice on their own purchases. I am your target market - a technology leader that makes recommendations to others.
I have been extremely satisfied with your product for a long time and would like to be able to recommend your "issue-free" products to my friends, family, and associates. I'm a big fan of Nvidia.
-- Unfortunately, you have recently enabled telemetry reports (https://news.ycombinator.com/item?id=12884762), and I will be less willing to recommend your product, opting for an AMD solution, or on-board solutions.
-- To resolve this issue, please:
1: Please use opt-in defaults instead of opt-out defaults for privacy-sensitive reports2: Make a blog post publishing your public policy on prioritizing user privacy over other priorities.
--
On a more general note, privacy issues will be an increasingly important consideration for technology leaders before making recommendations. Microsoft made a mistake integrating privacy-invasive telemetry into Windows 10. Please don't make the same mistake. Nvidia needs leaders that will prioritize user privacy over other market concerns.
Thank you,
David
It is not Nvidia's job to prop up the desktop linux ecosystem. It's wise not to invest time in that ecosystem, as far as I can tell. It's got an ongoing history of disappointing its customers and vendors over and over. And we get good enough computational support ever business or individual out there, Nvidia GPUs are still preferred for clustering.
> I will avoid Nvida like the plague till the day I die.
The way you talk makes it sound like it's a religious or political debate. You're mad that they don't support your demagogue or your shared values. Isn't Hacker News a place where we're supposed to keep politics at bay and focus on the technology?
Shouldn't be a problem anymore under Linux as most distros today install Nouveau drivers by default. https://nouveau.freedesktop.org/wiki/
[1] https://technet.microsoft.com/en-us/sysinternals/bb963902.as...
There is an exception though - since Windows 10's enforced telemetry, I have turned off all of the telemetry for all of their software across the board. Until they start to conduct themselves respectably again, they can do without my drop in their ocean.
Hopefully Zen can complete at least at the $200 price point with Intel.
I don't think anybody is suggesting at this point we ditch automatic updates -- the consensus seems to be they fix more problems than they cause. So this is going to remain a problem.
The bloat is endemic to hardware companies. Is there some law of nature that says if you primarily build peripherals then you write terrible software?
It is not enough to focus on the telemetry giant corporations like NVIDIA or Microsoft while forgetting about all the P2P software being installed by game's vendors and "telemetry" of software smaller vendors.
On big computers/pcs the default mode makes the user give up too much control _forever_ once the software its has been installed. Most software only need to be doing anything when your actually using it.
What we need is not opt-in checkboxes from vendors, what we need is the operating-system level software to be better -> where our explicit permission is needed to "allow" some kind of activity like transmitting over the network or detecting my location.
Do recent drivers always include the latter? How do I check for them? Are they kernel modules?
In my case, all the nvidia drivers I see loaded are:
$ lsmod | grep nv
nvidia_drm 20480 1
drm 294912 3 nvidia_drm
nvidia_uvm 704512 0
nvidia_modeset 770048 3 nvidia_drm
nvidia 11866112 42 nvidia_modeset,nvidia_uvmDo you really want your software to be considered spyware?
Rather: by requiring the user to opt in.
However to not provide an opt-out is a slap in the face to those who know enough to care. And it is an increasingly common trend that is very concerning.