Contributing to RTX Remix
May 5, 2025 · View on GitHub
Welcome to dxvk-remix! We appreciate your interest in contributing. RTX Remix is an open-source project created and maintained by NVIDIA Corporation. The codebase of DXVK-Remix is provided under the MIT license, and NVIDIA's official statement on the use of this repository and its submodules for projects is as follows:
NVIDIA permits modders to build and share mods using NVIDIA technologies/binaries from our RTX Remix’s GitHub and the DXVK-Remix GitHub.
If you are looking to contribute to the RTX Remix project, be mindful of the following:
Learning Remix
A number of useful resources are available on the RTX Remix Discord, including a list of easy-to-run applications with high compatibility.
Bug Reports and Issues
All bug reports and requests should be filed on the RTX Remix repository via New Issue button. Select an appropriate template for your issue/ask and fill out the requested information. Please avoid submitting reports to the dxvk-remix repository.
Due to ticket volume and internal project demands, these tickets can take time-- be patient!
Pull Requests
Pull Requests should be submitted to the relevant repository. Pull requests for the main RTX Remix repository are rarely if ever needed. If the pull request is for a submodule (DXVK-Remix), send the pull request to the repository instead.
Code Quality Standards
DXVK-Remix has two separate code guide style for C/C++ code and shader code:
Additionally, limit changes in your PR to changes that are required for the goal of the PR. Avoid making unnecessary code style changes/fixes to code outside the code of the PR, unless it's a dedicated PR that's addressing code style in particular.
Contribution Credits
When making a pull request, remember to update dxvk_imgui_about.cpp and add your name to the list of "GitHub Contributors" on a new line. Names are organized from A-Z by last name.
Cherry-Picking
While the source code of RTX Remix is made available via GitHub, internal development uses a private environment then pushes to GitHub. The repository is open to contributions, but all pulls must be prepared as a single squashed commit so that the commit can be cherrypicked and merged internally. When the process is complete, this will appear as two commits-- one from the contributor, and one from the merge.
This is done in order to keep a clean history of changes and not interrupt internal development branches more than necessary.
Squashing
Squashing is a process in which all of the changes across several commits are transformed into a single, clean commit with a single clean history.
When Squashing, make sure that you replace the automatic squashed commit history with a concise message describing exactly what your change does.
GitHub Desktop
- Press
Ctrl-Shift-Hor selectBranch>Merge into current branch..., then select the branch you are squashing. The branch will merge into itself with a clean history. If an error occurs, see Squash Troubleshooting.
Git Bash
git fetchgit checkout yourPRbranchgit merge --squash yourPRbranch
Squash Troubleshooting
If a branch with a new commit has been pulling and merging with the main repository, this can make a clean commit history difficult. If a squash is no longer possible, the workaround is as follows:
Rebase and Mergeyour PR with the latest changes from main.- Create a new branch based on
upstream/main. This will be a branch for a clean new history. Squash and Mergefrom the PR branch to the new cleaned branch. Do not include the full automatic squashed history changes; just give a concise and accurate description of what the changes do.Force Pushthe cleaned branch to overwrite the PR branch.- Your PR branch will now have a clean and concise history with one commit, and you will appear as the only author.
GitHub Desktop
Rebase and Mergeyour PR branch toupstream/mainby pressingBranch>Rebase Current Branch, orCtrl-Shift-E.- Create a new branch by clicking the
Current branchtab and selectingNew branch. The new branch should be based onupstream/mainwith no changes. Squash and Mergethe dirty PR branch by selecting the clean branch, then pressingCtrl-Shift-H. Select the dirty branch and all commits will squashed and merged. The clean branch now has your work as a single commit.- Press
Ctrl-`to open the Command Prompt. - Input the following command, with
rebased-commit-branchbeing your clean branch from step 3 andoriginal-dirty-pr-branchbeing your dirty PR branch from step 1:git push origin +rebased-commit-branch:original-dirty-pr-branch- By adding a
+, this becomes a force-push, overwriting the previous commit history for only the new branch's history.
- You will now have a single squashed commit in your PR branch.
Git Bash
git fetchgit pull --rebase upstream/maingit checkout -b rebased-commit-branch upstream/maingit merge --squash dirty-original-pr-branch:rebased-commit-branchgit push origin +rebased-commit-branch:original-dirty-pr-branch