Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ jobs:

# Generate commit-based release notes
if NOTES=$(gh api repos/$REPO/compare/$BASE_SHA...$HEAD_SHA 2>/dev/null | jq -r --arg author "$PR_AUTHOR" '
.commits[]
.commits[]
| "- \(.commit.message | split("\n")[0]) by @\(.author.login // $author)"
' 2>/dev/null) && [[ -n "$NOTES" ]]; then
echo "$NOTES" > release-notes.md
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,7 @@ if(AUTO_PLUGIN_DEPLOYMENT)
copy_shaders.stamp
${DEPLOY_TARGET_HASHES}
)

if(NOT DEFINED ENV{CommunityShadersOutputDir})
message("When using AUTO_PLUGIN_DEPLOYMENT option, you need to set environment variable 'CommunityShadersOutputDir'")
endif()
Expand Down
4 changes: 2 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@ RUN \
--remove Microsoft.VisualStudio.Component.Windows81SDK \
|| IF "%ERRORLEVEL%"=="3010" EXIT 0) \
&& del /q vs_buildtools.exe

RUN git clone https://github.com/microsoft/vcpkg.git C:/vcpkg && \
cd C:/vcpkg && \
bootstrap-vcpkg.bat

RUN setx /M VCPKG_ROOT "C:/vcpkg" && mkdir C:\skyrim-community-shaders

WORKDIR C:/skyrim-community-shaders
Expand Down
74 changes: 37 additions & 37 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,31 +17,31 @@ SKSE core plugin for community-driven advanced graphics modifications.

## Requirements

- Any terminal of your choice (e.g., PowerShell)
- [Visual Studio Community 2022](https://visualstudio.microsoft.com/)
- Desktop development with C++
- [CMake](https://cmake.org/)
- Edit the `PATH` environment variable and add the cmake.exe install path as a new value
- Instructions for finding and editing the `PATH` environment variable can be found [here](https://www.java.com/en/download/help/path.html)
- [Git](https://git-scm.com/downloads)
- Edit the `PATH` environment variable and add the Git.exe install path as a new value
- [Vcpkg](https://github.com/microsoft/vcpkg)
- Install vcpkg using the directions in vcpkg's [Quick Start Guide](https://github.com/microsoft/vcpkg#quick-start-windows)
- After install, add a new environment variable named `VCPKG_ROOT` with the value as the path to the folder containing vcpkg
- Make sure your local vcpkg repo matches the commit id specified in `builtin-baseline` in `vcpkg.json` otherwise you might get another version of a non pinned vcpkg dependency causing undefined behaviour
- Any terminal of your choice (e.g., PowerShell)
- [Visual Studio Community 2022](https://visualstudio.microsoft.com/)
- Desktop development with C++
- [CMake](https://cmake.org/)
- Edit the `PATH` environment variable and add the cmake.exe install path as a new value
- Instructions for finding and editing the `PATH` environment variable can be found [here](https://www.java.com/en/download/help/path.html)
- [Git](https://git-scm.com/downloads)
- Edit the `PATH` environment variable and add the Git.exe install path as a new value
- [Vcpkg](https://github.com/microsoft/vcpkg)
- Install vcpkg using the directions in vcpkg's [Quick Start Guide](https://github.com/microsoft/vcpkg#quick-start-windows)
- After install, add a new environment variable named `VCPKG_ROOT` with the value as the path to the folder containing vcpkg
- Make sure your local vcpkg repo matches the commit id specified in `builtin-baseline` in `vcpkg.json` otherwise you might get another version of a non pinned vcpkg dependency causing undefined behaviour

## User Requirements

- [Address Library for SKSE](https://www.nexusmods.com/skyrimspecialedition/mods/32444)
- Needed for SSE/AE
- [VR Address Library for SKSEVR](https://www.nexusmods.com/skyrimspecialedition/mods/58101)
- Needed for VR
- [Address Library for SKSE](https://www.nexusmods.com/skyrimspecialedition/mods/32444)
- Needed for SSE/AE
- [VR Address Library for SKSEVR](https://www.nexusmods.com/skyrimspecialedition/mods/58101)
- Needed for VR

## Register Visual Studio as a Generator

- Open `x64 Native Tools Command Prompt`
- Run `cmake`
- Close the cmd window
- Open `x64 Native Tools Command Prompt`
- Run `cmake`
- Close the cmd window

Or, in powershell run:

Expand All @@ -65,27 +65,27 @@ If you want an example CMakeUserPreset to start off with you can copy the `CMake

#### AUTO_PLUGIN_DEPLOYMENT

- This option is default `"OFF"`
- Make sure `"AUTO_PLUGIN_DEPLOYMENT"` is set to `"ON"` in `CMakeUserPresets.json`
- Change the `"CommunityShadersOutputDir"` value to match your desired outputs, if you want multiple folders you can separate them by `;` is shown in the template example
- This option is default `"OFF"`
- Make sure `"AUTO_PLUGIN_DEPLOYMENT"` is set to `"ON"` in `CMakeUserPresets.json`
- Change the `"CommunityShadersOutputDir"` value to match your desired outputs, if you want multiple folders you can separate them by `;` is shown in the template example

#### AIO_ZIP_TO_DIST

- This option is default `"ON"`
- Make sure `"AIO_ZIP_TO_DIST"` is set to `"ON"` in `CMakeUserPresets.json`
- This will create a `CommunityShaders_AIO.7z` archive in /dist containing all features and base mod
- This option is default `"ON"`
- Make sure `"AIO_ZIP_TO_DIST"` is set to `"ON"` in `CMakeUserPresets.json`
- This will create a `CommunityShaders_AIO.7z` archive in /dist containing all features and base mod

#### ZIP_TO_DIST

- This option is default `"ON"`
- Make sure `"ZIP_TO_DIST"` is set to `"ON"` in `CMakeUserPresets.json`
- This will create a zip for each feature and one for the base Community shaders in /dist
- If having a file with name `CORE` in the root of the features folder it will instead be merged into the core zip
- This option is default `"ON"`
- Make sure `"ZIP_TO_DIST"` is set to `"ON"` in `CMakeUserPresets.json`
- This will create a zip for each feature and one for the base Community shaders in /dist
- If having a file with name `CORE` in the root of the features folder it will instead be merged into the core zip

#### TRACY_SUPPORT

- This option is default `"OFF"`
- This will enable tracy support, might need to delete build folder when this option is changed
- This option is default `"OFF"`
- This will enable tracy support, might need to delete build folder when this option is changed

When using custom preset you can call BuildRelease.bat with an parameter to specify which preset to configure eg:
`.\BuildRelease.bat ALL-WITH-AUTO-DEPLOYMENT`
Expand Down Expand Up @@ -128,17 +128,17 @@ docker run -it --rm --isolation=process -v .:C:/skyrim-community-shaders skyrim-
[GPL-3.0-or-later](COPYING) WITH [Modding Exception AND GPL-3.0 Linking Exception (with Corresponding Source)](EXCEPTIONS.md).
Specifically, the Modded Code includes:

- Skyrim (and its variants)
- Hardware drivers to enable additional functionality provided via proprietary SDKs, such as [Nvidia DLSS](https://developer.nvidia.com/rtx/dlss/get-started), [AMD FidelityFX FSR3](https://gpuopen.com/fidelityfx-super-resolution-3/), and [Intel XeSS](https://github.com/intel/xess)
- Skyrim (and its variants)
- Hardware drivers to enable additional functionality provided via proprietary SDKs, such as [Nvidia DLSS](https://developer.nvidia.com/rtx/dlss/get-started), [AMD FidelityFX FSR3](https://gpuopen.com/fidelityfx-super-resolution-3/), and [Intel XeSS](https://github.com/intel/xess)

The Modding Libraries include:

- [SKSE](https://skse.silverlock.org/)
- Commonlib (and variants).
- [SKSE](https://skse.silverlock.org/)
- Commonlib (and variants).

### Shaders

See LICENSE within each directory; if none, it's [Default](#default)

- [Features Shaders](features)
- [Package Shaders](package/Shaders/)
- [Features Shaders](features)
- [Package Shaders](package/Shaders/)
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ license on behalf of a company or other legal entity, you represent that you
have legal authority and "you" will mean the entity you represent. By using the
SDK, you affirm that you have reached the legal age of majority, you accept the
terms of this license, and you take legal and financial responsibility for the
actions of your permitted users.
actions of your permitted users.

You agree to use the SDK only for purposes that are permitted by (a) this
license, and (b) any applicable law, regulation or generally accepted practices
Expand All @@ -20,7 +20,7 @@ or guidelines in the relevant jurisdictions.
1. LICENSE. Subject to the terms of this license and the terms in the supplement
attached, NVIDIA hereby grants you a non-exclusive, non-transferable license,
without the right to sublicense (except as expressly provided in this license)
to:
to:

(a) Install and use the SDK,

Expand All @@ -36,34 +36,34 @@ this license.
exercise the grants above:

(a) An application must have material additional functionality, beyond the
included portions of the SDK.
included portions of the SDK.

(b) The following notice shall be included in modifications and derivative works
of source code distributed: "This software contains source code provided by
NVIDIA Corporation."
NVIDIA Corporation."

(c) You agree to distribute the SDK subject to the terms at least as protective
as the terms of this license, including (without limitation) terms relating to
the license grant, license restrictions and protection of NVIDIA's intellectual
property rights. Additionally, you agree that you will protect the privacy,
security and legal rights of your application users.
security and legal rights of your application users.

(d) You agree to notify NVIDIA in writing of any known or suspected distribution
or use of the SDK not in compliance with the requirements of this license, and
to enforce the terms of your agreements with respect to the distributed portions
of the SDK.
of the SDK.

3. AUTHORIZED USERS. You may allow employees and contractors of your entity or
of your subsidiary(ies) to access and use the SDK from your secure network to
perform work on your behalf. If you are an academic institution you may allow
users enrolled or employed by the academic institution to access and use the SDK
from your secure network. You are responsible for the compliance with the terms
of this license by your authorized users.
of this license by your authorized users.

4. LIMITATIONS. Your license to use the SDK is restricted as follows:

(a) You may not reverse engineer, decompile or disassemble, or remove copyright
or other proprietary notices from any portion of the SDK or copies of the SDK.
or other proprietary notices from any portion of the SDK or copies of the SDK.

(b) Except as expressly provided in this license, you may not copy, sell, rent,
sublicense, transfer, distribute, modify, or create derivative works of any
Expand All @@ -76,7 +76,7 @@ NVIDIA.

(d) You may not bypass, disable, or circumvent any technical limitation,
encryption, security, digital rights management or authentication mechanism in
the SDK.
the SDK.

(e) You may not use the SDK in any manner that would cause it to become subject
to an open source software license. As examples, licenses that require as a
Expand All @@ -91,15 +91,15 @@ death, or catastrophic loss. Examples include use in avionics, navigation,
military, medical, life support or other life critical applications. NVIDIA does
not design, test or manufacture the SDK for these critical uses and NVIDIA shall
not be liable to you or any third party, in whole or in part, for any claims or
damages arising from such uses.
damages arising from such uses.

(g) You agree to defend, indemnify and hold harmless NVIDIA and its affiliates,
and their respective employees, contractors, agents, officers and directors,
from and against any and all claims, damages, obligations, losses, liabilities,
costs or debt, fines, restitutions and expenses (including but not limited to
attorney's fees and costs incident to establishing the right of indemnification)
arising out of or related to your use of the SDK outside of the scope of this
license, or not in compliance with its terms.
license, or not in compliance with its terms.

5. UPDATES. NVIDIA may, at its option, make available patches, workarounds or
other updates to this SDK. Unless the updates are provided with their separate
Expand All @@ -124,9 +124,9 @@ without liability.
separate legal notices or terms as may be described in proprietary notices
accompanying the SDK. If and to the extent there is a conflict between the terms
in this license and the third-party license terms, the third-party terms control
only to the extent necessary to resolve the conflict.
only to the extent necessary to resolve the conflict.

8. OWNERSHIP.
8. OWNERSHIP.

8.1 NVIDIA reserves all rights, title and interest in and to the SDK not
expressly granted to you under this license. NVIDIA and its suppliers hold all
Expand All @@ -137,8 +137,8 @@ of the United States and other countries, and international treaty provisions.
8.2 Subject to the rights of NVIDIA and its suppliers in the SDK, you hold all
rights, title and interest in and to your applications and your derivative works
of the sample source code delivered in the SDK including their respective
intellectual property rights.
intellectual property rights.

9. FEEDBACK. You may, but are not obligated to, provide Feedback to NVIDIA.
"Feedback" means all suggestions, fixes, modifications, feature requests or
other feedback regarding the SDK. Feedback, even if designated as confidential
Expand All @@ -155,7 +155,7 @@ ANY KIND OR NATURE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT
LIMITED TO, WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR A
PARTICULAR PURPOSE. NVIDIA DOES NOT WARRANT THAT THE SDK WILL MEET YOUR
REQUIREMENTS OR THAT THE OPERATION THEREOF WILL BE UNINTERRUPTED OR ERROR-FREE,
OR THAT ALL ERRORS WILL BE CORRECTED.
OR THAT ALL ERRORS WILL BE CORRECTED.

11. LIMITATIONS OF LIABILITY. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW
NVIDIA AND ITS AFFILIATES SHALL NOT BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
Expand All @@ -169,7 +169,7 @@ HAS PREVIOUSLY BEEN ADVISED OF, OR COULD REASONABLY HAVE FORESEEN, THE
POSSIBILITY OF SUCH DAMAGES. IN NO EVENT WILL NVIDIA'S AND ITS AFFILIATES TOTAL
CUMULATIVE LIABILITY UNDER OR ARISING OUT OF THIS LICENSE EXCEED US$10.00. THE
NATURE OF THE LIABILITY OR THE NUMBER OF CLAIMS OR SUITS SHALL NOT ENLARGE OR
EXTEND THIS LIMIT.
EXTEND THIS LIMIT.

12. TERMINATION. Your rights under this license will terminate automatically
without notice from NVIDIA if you fail to comply with any term and condition of
Expand All @@ -181,7 +181,7 @@ commercially viable. Upon any termination of this license, you agree to promptly
discontinue use of the SDK and destroy all copies in your possession or control.
Your prior distributions in accordance with this license are not affected by the
termination of this license. All provisions of this license will survive
termination, except for the license granted to you.
termination, except for the license granted to you.

13. APPLICABLE LAW. This license will be governed in all respects by the laws of
the United States and of the State of Delaware, without regard to the conflicts
Expand All @@ -191,14 +191,14 @@ of this license in the English language. The state or federal courts residing in
Santa Clara County, California shall have exclusive jurisdiction over any
dispute or claim arising out of this license. Notwithstanding this, you agree
that NVIDIA shall still be allowed to apply for injunctive remedies or urgent
legal relief in any jurisdiction.
legal relief in any jurisdiction.

14. NO ASSIGNMENT. This license and your rights and obligations thereunder may
not be assigned by you by any means or operation of law without NVIDIA's
permission. Any attempted assignment not approved by NVIDIA in writing shall be
void and of no effect. NVIDIA may assign, delegate or transfer this license and
its rights and obligations, and if to a non-affiliate you will be notified.

15. EXPORT. The SDK is subject to United States export laws and regulations. You
agree to comply with all applicable U.S. and international export laws,
including the Export Administration Regulations (EAR) administered by the U.S.
Expand All @@ -217,7 +217,7 @@ CFR §§ 227.7202 & 252.227-7014(a)(1). Use, duplication or disclosure by the U.
Government or a U.S. Government subcontractor is subject to the restrictions in
this license pursuant to 48 CFR § 12.212 or 48 CFR § 227.7202. In no event shall
the US Government user acquire rights in the SDK beyond those specified in 48
C.F.R. 52.227-19(b)(1)-(2).
C.F.R. 52.227-19(b)(1)-(2).

17. NOTICES. You agree that any notices that NVIDIA sends you electronically,
such as via email, will satisfy any legal communication requirements. Please
Expand Down Expand Up @@ -254,7 +254,7 @@ but not defined below have the meaning assigned to them in the Agreement.
This supplement is an exhibit to the Agreement and is incorporated as an
integral part of the Agreement. In the event of conflict between the terms in
this supplement and the terms in the Agreement, the terms in this supplement
govern.
govern.

1. Interoperability. Your applications that incorporate, or are based on, the
SDK must be fully interoperable with compatible GPU hardware products designed
Expand All @@ -268,15 +268,15 @@ use of such SDKs or their functionality is outside of the scope of the
Agreement. For the purpose of this section, cloud services include application
service providers or service bureaus, operators of hosted/virtual system
environments, or hosting, time sharing or providing any other type of service to
others.
others.

3. Notification for the DLSS SDK and NGX SDK. You are required to notify NVIDIA
prior to commercial release of an application (including a plug-in to a
commercial application) that incorporates, or is based on, the DLSS SDK or NGX
SDK. Please send notifications to: https://developer.nvidia.com/sw-notification
and provide the following information in the email: company name, publisher and
developer name, NVIDIA SDK used, application name, platform (i.e. PC, Linux),
scheduled ship date, and weblink to product/video.
scheduled ship date, and weblink to product/video.

4. Audio and Video Encoders and Decoders. You acknowledge and agree that it is
your sole responsibility to obtain any additional third-party licenses required
Expand All @@ -286,7 +286,7 @@ content relating to audio and/or video encoders and decoders from, including but
not limited to, Microsoft, Thomson, Fraunhofer IIS, Sisvel S.p.A., MPEG-LA, and
Coding Technologies. NVIDIA does not grant to you under this Agreement any
necessary patent or other rights with respect to any audio and/or video encoders
and decoders.
and decoders.

5. DLSS SDK Terms. By installing or using the DLSS SDK you agree that NVIDIA can
make over-the-air updates of DLSS in systems that have DLSS installed, including
Expand All @@ -309,9 +309,9 @@ collateral, trade-show displays and other retail packaging materials, as the
supplier of the DLSS SDK or NGX SDK for the applications that were developed
with use of such SDKs, provided that all such references to NVIDIA will be
subject to NVIDIA's prior review and written approval, which will not be
unreasonably withheld or delayed.
unreasonably withheld or delayed.

(b) NVIDIA Trademark Placement in Applications with the DLSS SDK or NGX SDK.
(b) NVIDIA Trademark Placement in Applications with the DLSS SDK or NGX SDK.
For applications that incorporate the DLSS SDK or NGX SDK or portions thereof,
you must attribute the use of the applicable SDK and include the NVIDIA Marks
on splash screens, in the about box of the application (if present), and in
Expand Down
Loading