tl;dr As of April 6 2020 the old SRP repository is no longer in use or maintained. Please migrate to using the new repository: https://github.com/Unity-Technologies/Graphics
When the first commit was made in the ScriptableRenderPipeline repo on April 30, 2013 almost 7 years ago, nobody really knew what it would turn into. And here we are 13,000+ commits later and the SRP repo is an integral part of all new graphics systems at Unity, and serves as the source of both the HighDefinitionRenderPipeline and the UniversalRenderPipeline packages.
However, dust and unwanted artefacts have been gathering in all corners of the repo, which has led to some less than desirable cloning times with an average clone taking more than 15 minutes. Given the fact that the repo is at the core of many graphics tests at Unity and is cloned more than a thousand times per day by our CI systems, this leads to a lot of wasted time. Time that we want to reclaim.
Because of that we have created a new repository with an entirely rewritten history with all new SHAs and LFs enabled. Also since the original scope has changed a lot we simply call that repository Graphics.
We are keeping the original public ScriptableRenderPipeline repo as it is - although trimming master to the latest public release. We may take the reposiory offline for a period of a week or so for backup. This is both to preserve history and to ensure that we don’t break forks and submodules from one day to the other. The new public Graphics repo is the only one that will be getting updates from this day and forward.
Migration Steps: The new repository is located at https://github.com/Unity-Technologies/Graphics.
If you are simply looking at the code and the branches we have, there is no need to do anything complicated. You just need to clone the repository and delete the old one from your computer.
Are you working directly on the repository? If you have been working in the SRP repository there are two possible steps needed to take.
Did you have all of your branches already pushed? If so then those branches will exist on the new repository already. Feel free to pull them and continue working.
I have some changes locally that I have not pushed You will need to manually apply these changes on top of the new repository. You can do this either by manually applying a patch, or by rebasing. One very important thing - do NOT merge the two repositories together as it will lead to a very very broken history.
Are you working on a fork? Do you have a private fork of SRP you are using? You will need to migrate over to the new repository. There are a number of ways to do this depending on how you have made changes in your fork.
“I am working right in my forks master and merging in Unity master whenever I feel I want to update” It will be difficult to migrate and also preserve history, you will need to either cherry pick your individual commits across to the new repository or do diff and make a single commit with this diff.
Taking the diff method: Make a patch file of your changes. We do this by taking a diff from the last master you had, and diff the working branch. Then apply this to the new fork.
//get changelist of the common base git merge-base master
//save the diff from the latest master merged and the branch git diff patch.diff
//Go to the other folder where the new fork is cloned Git apply patch.diff
“I am working on a branch and continually rebase my changes on Unity master whenever I feel I want to update” You will need to create a new fork of the new repository then clone your new fork. Next, set your old fork as a remote and rebase your old branch from your old fork on top of master (or release branch) in your new fork
##Old Infomation Below##
NOTE: We have migrated reported issues to FogBugz. You can only log further issues via the Unity bug tracker. To see how, read this.
The Scriptable Render Pipeline (SRP) is a Unity feature designed to give artists and developers the tools they need to create modern, high-fidelity graphics in Unity. Unity provides two pre-built Scriptable Render Pipelines:
- The Universal Render Pipeline (URP) for use on all platforms.
- The High Definition Render Pipeline (HDRP) for use on compute shader compatible platforms.
Unity is committed to an open and transparent development process for SRP and the pre-built Render Pipelines. This means that so you can browse this repository to see what features are currently in development.
For more information about the packages in this repository, see the following:
- Scriptable Render Pipeline Core
- High Definition Render Pipeline
- Universal Render Pipeline
- Shader Graph
- Visual Effect Graph
This repository uses the master branch for main development. Development on this branch is based on the latest internal version of Unity so it may not work on the latest publicly available version of Unity. The following list contains Unity version/major SRP version pairs which you can use as a guideline as to which major SRP version you can use in your Unity Project:
- Unity 2019.1 is compatible with SRP version 5.x
- Unity 2019.2 is compatible with SRP version 6.x
- Unity 2019.3 is compatible with SRP version 7.x
- Unity 2020.1 is compatible with SRP version 8.x
The above list is a guideline for major versions of SRP, but there are often multiple minor versions that you can use for a certain version of Unity. To determine which minor versions of SRP you can use:
- In your Unity Project, open the Package Manager window (menu: Window > Package Manager).
- In the list of packages, find Core RP Library. To find this package in older versions of Unity, you may need to expose preview packages. To do this, click the Advanced button at the top of the window then, in the context menu, click Show preview packages.
- Click the drop-down arrow to the left of the package entry then click See all versions. This shows a list that contains every package version compatible with your version of Unity.
After you decide which version of SRP to use:
- Go to the Scriptable Render Pipeline repository.
- Click the Branch drop-down then click the Tags tab.
- Find the tag that corresponds to the version of SRP you want to use. When you clone the repository, you use this tag to check out the correct branch.
To clone the repository, you can use a visual client, like GitHub Desktop, or use console commands. When you clone the repository, make sure to clone it outside of your Unity Project's Asset folder.
After you clone the repository, you can install the package into your Unity Project. To do this, see Installing a local package.
- Open the GitHub Desktop App and click File > Clone repository.
- Click the URL tab and enter the following URL: https://github.com/Unity-Technologies/ScriptableRenderPipeline.
- Click the Choose… button and navigate to your Unity Project’s base folder.
- Click the Clone button.
After you clone the repository, open your console application of choice in the ScriptableRenderPipeline folder and run the following console command:
\> git checkout v7.1.8 (or the latest tag)
Open your console application of choice and run the following console commands:
\> cd <Path to your Unity project>
\> git clone https://github.com/Unity-Technologies/ScriptableRenderPipeline
\> cd ScriptableRenderPipeline
\> git checkout v7.1.8 (or the latest tag)
Unity provides sample Scenes to use with SRP. You can find these Scenes in the ScriptableRenderPipelineData GitHub repository. To add the Scenes to your Project, clone the repository into your Project's Assets folder.