as I start to do more and more fixes locally to Graphics repo (especially HDRP), I would like to know if there is a way to submit those fixes? I tried it once (attaching the fix to a submitted issue), but the fix I provided is still not being integrated, although it was very simple and obvious fix.
I really want to avoid to always patch Unity after upgrading, so doing a PR somewhere would be best option, so it could get integarted into proper review processes inside Unity.
BTW this time I (mostly) fixed Tessellation (XR relevant, but I guess the fixes also are partly relevant to non-XR, too).
are you sure about the license stuff, especially for the SRP? This is the license which is linked in Graphics repo:
Also there are many forks and modifications of Graphics repo, e.g. by Meta, because they need to patch in Spacewarp into URP.
Reporting bugs is not helping, as there is a lack of resources and fixes for e.g. HDRP, especally with XR, have such low prio that QA will close incoming bugs as “won’t fix”.
These are the links I found in the GitHub repository. In any case, looking at the license link you provided, Clause 2 states:
No Modification of Engine License. Neither this License nor any exercise of the license granted herein modifies the Engine License in any way.
As @DevDunk mentioned, if you have purchased a license that allows you to modify the source code, such as an enterprise license, then you can. I imagine Meta has a custom Unity license that permits this.
It’s even part of the documentation which explains how to customize SRP and clone HDRP and URP for own projects:
There’s no way this is against the Engine license (as SRP probably is not part of the “Engine”, but an open source project on top of the engine).
I am simply sharing my understanding of the licenses, but I am not a lawyer. You should make your own decision based on your interpretation, or better yet, consult someone with official authority at Unity.
Not a lawyer either but we need to distinguish two things:
The engine in C++, which is closed source. Users cannot modify it without a licence.
The graphics pipelines and their packages (the SRPs), which is mostly in C# and open source.
One of the reasons the SRPs were made, is to allow users to modify how graphics behave according to their needs. (And even create their own custom render pipeline)
As for Graphics repo, we did allow submissions of PRs at the begining (especially when this was the main repo for developpment) but now, AFAIK, no one is monitoring PR on it and this repo is there just as a mirror of the developpment repo (which is in a private github), so it’s more complex to allow PR now that we have two separate repositories.
The README in the GitHub repository is somewhat confusing, as it states:
The terms of use do not permit you to modify or redistribute the C# code (in either source or binary form). If you want to modify Unity’s source code (C# and C++), contact Unity sales for a commercial source code license.
It would be helpful if someone updated the wording to clarify what modifications are allowed for personal use (such as fixing bugs in the C# source code) and what is strictly prohibited.
where did you find this? I am seeing following in the read me:
Modifying package source
You can download and install the packages of this repositories on your Unity project and modify the package source code. You can do that by one of the following methods:
See here:
Are we talking about the same repo? No mentioning of C# code in here.
I agree that it might be a hassle to have PRs on a mirrored repo, but also I think with current progress rate (especially on HDRP) this might be an opportunity to get more stuff done / fixed… I already did read multiple times of HDRP users with local forks and bug fixes / changes or even bigger feature additions.
You’re right, in the graphics repository, it mentions that you can modify the package source code. The graphics repository is likely an exception to the rule.