[OC3D.net] Nvidia making GameWorks Source Code Publicly available

amenx

Diamond Member
Dec 17, 2004
4,407
2,727
136
Most of our readers will be very familiar with Nvidia GameWorks, a collection of software libraries and utilities that game developers and even those outside of the gaming industry can use in order to simplify game development and help produce more realistic game visuals or physics interactions.

GameWorks is designed to push the gaming industry forward, pushing higher quality visuals and in turn pushing Nvidia to develop more and more powerful GPU hardware to make available to consumers.

While all of this sounds very good, Nvidia's GameWorks initiative has not been free from controversy, as many Nvidia GameWorks games in the past have been known for being overly demanding on systems, especially those running on AMD Hardware and many critics and developers have criticized Nvidia for not making the Source Code for GameWorks tools publicly available, instead only giving it to certain developers privately upon request...

Now it seems that with the Release of GameWorks 3.1 Nvidia is moving to become more Open with GameWorks, having announced that PhysX, PhysX Clothing, PhysX Destruction, Volumetric Lighting and Nvidia's FaceWorks Demo are now all available with Source Code on Github, with HairWorks, HBAO+ and WaveWorks being added at a later date.

This move makes Nvidia's GameWorks a lot more similar to AMD's GPUOpen, though all of Nvidia's Tools and libraries will not be available to the public with souce code from the start, though Nvidia do say that they intend to release the source code for "most or all technologies over time".

http://www.overclock3d.net/articles...ng_gameworks_source_code_publicly_available/1

Thank goodness. Never liked GW as I feel its brought very little from a practical graphical improvement standpoint in games vs the performance gains/losses that came along with it. Let others have a crack at it to see what can be done with it.
 
Last edited:

Elixer

Lifer
May 7, 2002
10,371
762
126
Last edited:

PhonakV30

Senior member
Oct 26, 2009
987
378
136
Open Source (MIT License) means you're Boss.With GW source code , Nvidia is your boss.While with AMD GPUOpen , You're Boss and You're Allowed to change Source code under "New Name".
 

crisium

Platinum Member
Aug 19, 2001
2,643
615
136
Does this mean AMD GPUs will be able to run PhysX in any future games that ship with it? If not then I guess the only point is to encourage more developers into using it, but it would hardly be "open".
 

PhonakV30

Senior member
Oct 26, 2009
987
378
136
Does this mean AMD GPUs will be able to run PhysX in any future games that ship with it?

No! Why ? Because You need to change Source code and write the new one.This is required to be approved by Nvidia! Without Approving from Nvidia , you can't do anything.

Edit : If you mean PhysX in GW.
 

thesmokingman

Platinum Member
May 6, 2010
2,302
231
106
They haven't given up anything except talk about/promise to release source code. No terms have be set or license. This could also just be a ploy to derail AMD's open party but either way it sure does make their actions transparent.
 
Feb 19, 2009
10,457
10
76
The license.

https://github.com/NVIDIAGameWorks/FaceWorks/blob/master/license.txt

The materials available for download to Developers may include software in both sample source ("Source Code") and object code ("Object Code") versions, documentation ("Documentation"), certain art work ("Art Assets") and other materials (collectively, these materials referred to herein as "Materials"). Except as expressly indicated herein, all terms and conditions of this Agreement apply to all of the Materials.

Source Code: Developer shall have the right to modify and create derivative works with the Source Code. Developer shall own any derivative works ("Derivatives") it creates to the Source Code, provided that Developer uses the Materials in accordance with the terms of this Agreement. Developer may distribute the Derivatives, provided that all NVIDIA copyright notices and trademarks are used properly and the Derivatives include the following statement: "This software contains source code provided by NVIDIA Corporation."

Object Code: Developer agrees not to disassemble, decompile or reverse engineer the Object Code versions of any of the Materials. Developer acknowledges that certain of the Materials provided in Object Code version may contain third party components that may be subject to restrictions, and expressly agrees not to attempt to modify or distribute such Materials without first receiving consent from NVIDIA.

Why even have that if they want to go open source?
 

Samwell

Senior member
May 10, 2015
225
47
101
No! Why ? Because You need to change Source code and write the new one.This is required to be approved by Nvidia! Without Approving from Nvidia , you can't do anything.

Edit : If you mean PhysX in GW.

Is this really the case?

Source Code: Developer shall have the right to modify and create derivative works with the Source Code. Developer shall own any derivative works ("Derivatives") it creates to the Source Code, provided that Developer uses the Materials in accordance with the terms of this Agreement. Developer may distribute the Derivatives, provided that all NVIDIA copyright notices and trademarks are used properly and the Derivatives include the following statement: "This software contains source code provided by NVIDIA Corporation."
Theoretically they can change it, but the problem seems this:
Term: This License is effective until terminated. NVIDIA may terminate this Agreement (and with it, all of Developer’s right to the Materials) immediately upon written notice (which may include email) to Developer, with or without cause.
So it's useless, because at some point Nvidia can terminate the license.
Anyway the point behind this release is, that now AMD can't complain on some effects anymore that they can't optimize because they don't see the source code.

Edit:
What means Object Code?
 

moonbogg

Lifer
Jan 8, 2011
10,731
3,440
136
Nvidia just tried too blatantly for a cheap market lock and cash grab. It was a blatant handicap and an obvious attempt at ludicrous control over game performance to strong arm people into buying new Nvidia GPUs and to avoid AMD GPU's. It sucked. It failed. Now they are backpedaling. Losers.
 
Feb 19, 2009
10,457
10
76
Nvidia just tried too blatantly for a cheap market lock and cash grab. It was a blatant handicap and an obvious attempt at ludicrous control over game performance to strong arm people into buying new Nvidia GPUs and to avoid AMD GPU's. It sucked. It failed. Now they are backpedaling. Losers.

In a way yes, they are throwing the older GW stuff on GitHub behind a dubious open source license that isn't really. Things like HairWorks & Godrays really no longer tanks performance, especially for AMD since they just run an optimized tessellation path in their drivers to bypass the x64 tessellation usage.

NV has moved on with newer features that crush performance more, for even less noticeable visual gains. They are hiding these new features behind the same black box. VXAO anyone? Can barely tell the difference, but the FPS definitely tanks.

This is a token gesture to quell the backlash they've been getting from gamers. If they are genuine about driving the PC gaming industry forward for the benefit of gamers, they would go all full open source, MIT license, none of this obscure "require our permission" stuff.

http://www.pcper.com/reviews/Graphics-Cards/Details-about-NVIDIAs-GameWorks-31-Update

Most of our readers should have some familiarity with GameWorks, which is a series of libraries and utilities that help game developers (and others) create software.

While many hardware and platform vendors provide samples and frameworks, taking the brunt of the work required to solve complex problems, this is NVIDIA's branding for their suite of technologies.

Their hope is that it pushes the industry forward, which in turn drives GPU sales as users see the benefits of upgrading.

By locking down new features, GameWorks still is a program to control how the game runs as NVIDIA sees fit. They only have one agenda: selling more GPUs. Connect the dots. They do not want to allow the developer community full access as optimizing these features defeat their primary purpose: driving GPU sales as users see the benefits of upgrading.
 

PhonakV30

Senior member
Oct 26, 2009
987
378
136
Is this really the case?

Theoretically they can change it, but the problem seems this:
So it's useless, because at some point Nvidia can terminate the license.
Anyway the point behind this release is, that now AMD can't complain on some effects anymore that they can't optimize because they don't see the source code.

Edit:
What means Object Code?

Still in other to change source code you need Permission! For example.
I add some compute+ Graphic into GW Via Async Compute and create new feature with New Name ( exactly like Purehair).Still I need to send source code to Nvidia and be approved by Nvidia Corp. This is Not Open Source.like I said With MIT License , You are Boss , With Nvidia GW , Nvidia is Your Boss.

Edit :

Open source software is software that can be freely used, changed, and shared (in modified or unmodified form) by anyone. Open source software is made by many people, and distributed under licenses that comply with the Open Source Definition.

Just Look at word "Freely". This means no one should control you.
 
Last edited:

Elixer

Lifer
May 7, 2002
10,371
762
126
In case people didn't know, before, you had to do this
...
A major component of the NVIDIA GameWorks library, the latest PhysX version (3.3.3) is our best ever, with improved stability and performance. Features include constrained rigid body dynamics, collision detection, scene queries, character controller, particles, vehicles and much more.

The PhysX software development kit (SDK) is already free on Windows platforms. We’re now extending this to include PhysX Clothing and PhysX Destruction, enabling game developers to easily create a more interactive gaming environment. Starting this month, PhysX SDK is now available free with full source code for Windows, Linux, OSx and Android on https://github.com/NVIDIAGameWorks/PhysX-3.3 (link will only work for registered users)
...

How to access PhysX Source on GitHub:

If you don't have an account on developer.nvidia.com or are not a registered member of the NVIDIA GameWorks developer program click on the following link to register: http://developer.nvidia.com/registered-developer-programs
If you are logged in, accept the EULA and enter your GitHub username at the bottom of the form:
http://developer.nvidia.com/content/apply-access-nvidia-physx-source-code
You should receive an invitation within an hour
So, while it was on github before, it was not open to all without first getting an account on nvidia's site, then go through those hoops, and the license was restrictive, not open.
 

sontin

Diamond Member
Sep 12, 2011
3,273
149
106
Still in other to change source code you need Permission! For example.
I add some compute+ Graphic into GW Via Async Compute and create new feature with New Name ( exactly like Purehair).Still I need to send source code to Nvidia and be approved by Nvidia Corp. This is Not Open Source.like I said With MIT License , You are Boss , With Nvidia GW , Nvidia is Your Boss.

Edit :



Just Look at word "Freely". This means no one should control you.

You dont need to send anything. The source code is published on Github and any developer can download and modify it. :\
 

linkgoron

Platinum Member
Mar 9, 2005
2,598
1,238
136
It all depends on the license.

open source doesn't mean much if the license is crap (i.e. can't modify, use in retail or fork) and they don't accept contributions and pull requests.

We'll have to wait and see, I guess.
 

PhonakV30

Senior member
Oct 26, 2009
987
378
136
You dont need to send anything. The source code is published on Github and any developer can download and modify it. :\

Without Permission from Nvidia , You can't modify Source code.Please , Don't be troll.
 

sontin

Diamond Member
Sep 12, 2011
3,273
149
106
Okay, this is from the Facework github:
License: Subject to the terms of this Agreement, NVIDIA hereby grants to Developer a royalty-free, non-exclusive license to possess and to use the Materials. The following terms apply to the specified type of Material:

Source Code: Developer shall have the right to modify and create derivative works with the Source Code. Developer shall own any derivative works ("Derivatives") it creates to the Source Code, provided that Developer uses the Materials in accordance with the terms of this Agreement. Developer may distribute the Derivatives, provided that all NVIDIA copyright notices and trademarks are used properly and the Derivatives include the following statement: "This software contains source code provided by NVIDIA Corporation."

Sure you can ignore the license and just make things up...
 

Mahigan

Senior member
Aug 22, 2015
573
0
0
Without Permission from Nvidia , You can't modify Source code.Please , Don't be troll.
It's not about adding to GameWorks but about modifying GameWorks effects.

Say I want to incorporate GPU accelerated PhysX for Destruction effects into a game but run it over directcompute instead of CUDA.

I would need an approval from NVIDIA before I can integrate my Directcompute version of their original CUDA version into my game.

It's a way for NVIDIA to ensure that whatever changes are made to their effects, they get to control the out come.

I'm not saying NVIDIA would deny an effect if it worked better on a competitor's GPU architecture but that is what is made possible by their licence agreement.

It's still a step in the right direction. Not completely open like GPUOpen but still much better than before.
 
Last edited:

PhonakV30

Senior member
Oct 26, 2009
987
378
136
Wrong! still this doesn't tell me that I can change name and create new software.it does have some restriction.

http://www.webopedia.com/TERM/O/open_source.html

The author or holder of the license of the source code cannot collect royalties on the distribution of the program
The distributed program must make the source code accessible to the user
The author must allow modifications and derivations of the work under the program's original name
No person, group or field of endeavor can be denied access to the program
The rights attached to the program must not depend on the program's being part of a particular software distribution
The licensed software cannot place restrictions on other software that is distributed with it.

You even Ignored Elixer's Post.

Edit : My post was about sontin.

Edit 2 : @Mahigan.You're Right.perhaps I compared it to AMD GPuOpen.

Well , I wanted to point that With AMD GPUOpen , I am freely to use / Modify Source Code."Freely" means I don't Need to get license from AMD then I can create new software base on modified source code and then Sell it , whether it hurts AMD or not.I really mean I don't want someone/Company control me.

I think My post confused some people.
 
Last edited: