Last active
September 26, 2023 02:25
-
-
Save coderespawn/16e761a006fedf2e341cc9f17a10971d to your computer and use it in GitHub Desktop.
Upgrades and builds the DLSS Unreal Engine Plugin from 5.2 to 5.3
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import os | |
import shutil | |
import subprocess | |
# Step 0: Delete 'Plugins_Temp' and 'Plugins_5.3' directories if they exist | |
if os.path.exists('Plugins_Temp'): | |
shutil.rmtree('Plugins_Temp') | |
print('Deleted existing Plugins_Temp directory.') | |
if os.path.exists('Plugins_5.3'): | |
shutil.rmtree('Plugins_5.3') | |
print('Deleted existing Plugins_5.3 directory.') | |
# Step 1: Copy the 'Plugins' folder to 'Plugins_Temp' | |
source_folder = 'Plugins' | |
destination_folder = 'Plugins_Temp' | |
try: | |
shutil.copytree(source_folder, destination_folder) | |
print(f'Copied {source_folder} to {destination_folder}') | |
except FileExistsError: | |
print(f'{destination_folder} already exists. Skipping copy.') | |
# Step 2: Install the 'patch' package using pip | |
try: | |
subprocess.run(['pip', 'install', 'patch'], check=True) | |
print('Successfully installed the "patch" package') | |
except subprocess.CalledProcessError as e: | |
print(f'Error installing "patch" package: {e}') | |
exit(1) | |
# Step 3: Apply the patch inside the 'Plugins_Temp' folder | |
patch_file = 'upgrade53.patch' | |
if not os.path.exists(patch_file): | |
print(f'Patch file "{patch_file}" not found.') | |
exit(1) | |
# Step 4: Move into the 'Plugins_Temp' folder | |
os.chdir(destination_folder) | |
try: | |
subprocess.run(['python', '-m', 'patch', '../' + patch_file], check=True) | |
print(f'Applied patch from "{patch_file}" inside "{destination_folder}"') | |
except subprocess.CalledProcessError as e: | |
print(f'Error applying patch: {e}') | |
exit(1) | |
# Step 5: Move back out of the 'Plugins_Temp' folder | |
os.chdir('..') | |
# Step 6: Ask the user for the Unreal Engine 5.3 installation location | |
while True: | |
unreal_engine_path = input('Enter the Unreal Engine 5.3 installation path: ') | |
runuat_path = os.path.join(unreal_engine_path, 'Engine', 'Build', 'BatchFiles', 'RunUAT.bat') | |
if os.path.exists(runuat_path): | |
break | |
else: | |
print('Invalid Unreal Engine 5.3 installation path. Please try again.') | |
# Step 7: Iterate through the plugins and build them (excluding DLSSMoviePipelineSupport) | |
plugins_to_build = ['DLSS', 'NIS', 'Streamline'] | |
target_package_path = os.path.abspath('Plugins_5.3') | |
for plugin in plugins_to_build: | |
plugin_path = os.path.abspath(os.path.join(destination_folder, plugin, plugin + ".uplugin")) | |
runuat_command = [ | |
runuat_path, | |
'BuildPlugin', | |
f'-Plugin={plugin_path}', | |
f'-Package={target_package_path}/{plugin}', | |
'-Rocket', | |
'-TargetPlatforms=Win64' | |
] | |
print(f'Running: {" ".join(runuat_command)}') | |
try: | |
subprocess.run(runuat_command, cwd=unreal_engine_path, check=True, shell=True) | |
print(f'Successfully built {plugin}') | |
except subprocess.CalledProcessError as e: | |
print(f'Error building {plugin}: {e}') | |
# Step 8: Delete the 'Plugins_Temp' folder | |
shutil.rmtree(destination_folder) | |
print(f'Deleted {destination_folder}') | |
print('Script completed successfully.') |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import os | |
import shutil | |
import subprocess | |
# Step 0: Delete 'Plugins_Temp' and 'Plugins_5.3' directories if they exist | |
if os.path.exists('Plugins_Temp'): | |
shutil.rmtree('Plugins_Temp') | |
print('Deleted existing Plugins_Temp directory.') | |
# Step 1: Copy the 'Plugins' folder to 'Plugins_Temp' | |
source_folder = 'Plugins' | |
destination_folder = 'Plugins_Temp' | |
try: | |
shutil.copytree(source_folder, destination_folder) | |
print(f'Copied {source_folder} to {destination_folder}') | |
except FileExistsError: | |
print(f'{destination_folder} already exists. Skipping copy.') | |
# Step 2: Install the 'patch' package using pip | |
try: | |
subprocess.run(['pip', 'install', 'patch'], check=True) | |
print('Successfully installed the "patch" package') | |
except subprocess.CalledProcessError as e: | |
print(f'Error installing "patch" package: {e}') | |
exit(1) | |
# Step 3: Apply the patch inside the 'Plugins_Temp' folder | |
patch_file = 'upgrade53.patch' | |
if not os.path.exists(patch_file): | |
print(f'Patch file "{patch_file}" not found.') | |
exit(1) | |
# Step 4: Move into the 'Plugins_Temp' folder | |
os.chdir(destination_folder) | |
try: | |
subprocess.run(['python', '-m', 'patch', '../' + patch_file], check=True) | |
print(f'Applied patch from "{patch_file}" inside "{destination_folder}"') | |
except subprocess.CalledProcessError as e: | |
print(f'Error applying patch: {e}') | |
exit(1) | |
# Step 5: Move back out of the 'Plugins_Temp' folder | |
os.chdir('..') | |
# Step 6: Ask the user for the Unreal Engine 5.3 installation location | |
while True: | |
unreal_engine_path = input('Enter the Unreal Engine 5.3 installation path: ') | |
runuat_path = os.path.join(unreal_engine_path, 'Engine', 'Build', 'BatchFiles', 'RunUAT.bat') | |
if os.path.exists(runuat_path): | |
break | |
else: | |
print('Invalid Unreal Engine 5.3 installation path. Please try again.') | |
# Step 7: Iterate through the plugins and build them | |
plugins_to_build = ['DLSSMoviePipelineSupport'] | |
target_package_path = os.path.abspath('Plugins_5.3') | |
for plugin in plugins_to_build: | |
plugin_path = os.path.abspath(os.path.join(destination_folder, plugin, plugin + ".uplugin")) | |
runuat_command = [ | |
runuat_path, | |
'BuildPlugin', | |
f'-Plugin={plugin_path}', | |
f'-Package={target_package_path}/{plugin}', | |
'-Rocket', | |
'-TargetPlatforms=Win64' | |
] | |
print(f'Running: {" ".join(runuat_command)}') | |
try: | |
subprocess.run(runuat_command, cwd=unreal_engine_path, check=True, shell=True) | |
print(f'Successfully built {plugin}') | |
except subprocess.CalledProcessError as e: | |
print(f'Error building {plugin}: {e}') | |
# Step 8: Delete the 'Plugins_Temp' folder | |
shutil.rmtree(destination_folder) | |
print(f'Deleted {destination_folder}') | |
print('Script completed successfully.') |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/DLSS/DLSS.uplugin b/DLSS/DLSS.uplugin | |
index d5b958e..a052a49 100644 | |
--- a/DLSS/DLSS.uplugin | |
+++ b/DLSS/DLSS.uplugin | |
@@ -10,7 +10,7 @@ | |
"DocsURL": "", | |
"MarketplaceURL": "https://www.unrealengine.com/marketplace/en-US/product/nvidia-dlss", | |
"SupportURL": "mailto:DLSS-Support@nvidia.com", | |
- "EngineVersion": "5.2.0", | |
+ "EngineVersion": "5.3.0", | |
"CanContainContent": true, | |
"Installed": true, | |
"Modules": [ | |
diff --git a/DLSSMoviePipelineSupport/DLSSMoviePipelineSupport.uplugin b/DLSSMoviePipelineSupport/DLSSMoviePipelineSupport.uplugin | |
index abf072a..180712c 100644 | |
--- a/DLSSMoviePipelineSupport/DLSSMoviePipelineSupport.uplugin | |
+++ b/DLSSMoviePipelineSupport/DLSSMoviePipelineSupport.uplugin | |
@@ -10,7 +10,7 @@ | |
"DocsURL": "", | |
"MarketplaceURL": "https://www.unrealengine.com/marketplace/en-US/product/nvidia-dlss", | |
"SupportURL": "mailto:DLSS-Support@nvidia.com", | |
- "EngineVersion": "5.2.0", | |
+ "EngineVersion": "5.3.0", | |
"CanContainContent": true, | |
"Installed": true, | |
"Modules": [ | |
diff --git a/NIS/NIS.uplugin b/NIS/NIS.uplugin | |
index be1f224..a5d452c 100644 | |
--- a/NIS/NIS.uplugin | |
+++ b/NIS/NIS.uplugin | |
@@ -10,7 +10,7 @@ | |
"DocsURL": "", | |
"MarketplaceURL": "https://www.unrealengine.com/marketplace/en-US/product/nvidia-dlss", | |
"SupportURL": "mailto:DLSS-Support@nvidia.com", | |
- "EngineVersion": "5.2.0", | |
+ "EngineVersion": "5.3.0", | |
"CanContainContent": false, | |
"Installed": true, | |
"Modules": [ | |
diff --git a/NIS/Source/NISBlueprint/Private/NISLibrary.cpp b/NIS/Source/NISBlueprint/Private/NISLibrary.cpp | |
index 18d66ef..f0ec4c4 100644 | |
--- a/NIS/Source/NISBlueprint/Private/NISLibrary.cpp | |
+++ b/NIS/Source/NISBlueprint/Private/NISLibrary.cpp | |
@@ -58,8 +58,13 @@ void UNISLibrary::GetNISScreenPercentageRange(float& MinScreenPercentage, float& | |
} | |
else | |
{ | |
+ /* | |
+ using namespace UE::Renderer::Private; | |
MinScreenPercentage = 100.0f * ITemporalUpscaler::GetDefaultTemporalUpscaler()->GetMinUpsampleResolutionFraction(); | |
MaxScreenPercentage = 100.0f * ITemporalUpscaler::GetDefaultTemporalUpscaler()->GetMaxUpsampleResolutionFraction(); | |
+ */ | |
+ MinScreenPercentage = 100.0f * 0.5f; | |
+ MaxScreenPercentage = 100.0f * 1.0f; | |
} | |
} | |
diff --git a/NIS/Source/NISShaders/Private/NISShaders.cpp b/NIS/Source/NISShaders/Private/NISShaders.cpp | |
index 3e44475..83166c4 100644 | |
--- a/NIS/Source/NISShaders/Private/NISShaders.cpp | |
+++ b/NIS/Source/NISShaders/Private/NISShaders.cpp | |
@@ -27,6 +27,7 @@ | |
// however we also have static_asserts that make sure that FNISConfigParameters matches NISConfig | |
#define NIS_ALIGNED(x) | |
#include "NIS_Config.h" | |
+#include "SceneRendering.h" | |
#define LOCTEXT_NAMESPACE "FNISImageScalingShadersModule" | |
@@ -298,7 +299,7 @@ struct FNISCoefficients : public FRenderResource | |
* Called when entering the state where both the resource and the RHI have been initialized. | |
* This is only called by the rendering thread. | |
*/ | |
- virtual void InitRHI() | |
+ virtual void InitRHI(FRHICommandListBase& RHICmdList) | |
{ | |
// FP32 | |
{ | |
diff --git a/Streamline/Source/StreamlineD3D11RHI/Private/StreamlineD3D11RHI.cpp b/Streamline/Source/StreamlineD3D11RHI/Private/StreamlineD3D11RHI.cpp | |
index dacfd2f..4b433d3 100644 | |
--- a/Streamline/Source/StreamlineD3D11RHI/Private/StreamlineD3D11RHI.cpp | |
+++ b/Streamline/Source/StreamlineD3D11RHI/Private/StreamlineD3D11RHI.cpp | |
@@ -60,6 +60,11 @@ public: | |
return Name; | |
} | |
+ virtual const TCHAR* GetProviderName() const override { | |
+ static const TCHAR* ProviderName = TEXT("StreamlineD3D11DXGISwapchainProvider"); | |
+ return ProviderName; | |
+ } | |
+ | |
HRESULT CreateSwapChainForHwnd(IDXGIFactory2* pFactory, IUnknown* pDevice, HWND hWnd, const DXGI_SWAP_CHAIN_DESC1* pDesc, const DXGI_SWAP_CHAIN_FULLSCREEN_DESC* pFullScreenDesc, IDXGIOutput* pRestrictToOutput, IDXGISwapChain1** ppSwapChain) override final | |
{ | |
if (!StreamlineRHI->IsSwapchainHookingAllowed()) | |
diff --git a/Streamline/Source/StreamlineD3D12RHI/Private/StreamlineD3D12RHI.cpp b/Streamline/Source/StreamlineD3D12RHI/Private/StreamlineD3D12RHI.cpp | |
index 9a30bc6..23ce2ea 100644 | |
--- a/Streamline/Source/StreamlineD3D12RHI/Private/StreamlineD3D12RHI.cpp | |
+++ b/Streamline/Source/StreamlineD3D12RHI/Private/StreamlineD3D12RHI.cpp | |
@@ -73,6 +73,11 @@ public: | |
bool SupportsRHI(const TCHAR* RHIName) const override final { return FString(RHIName) == FString("D3D12"); } | |
#endif | |
+ virtual const TCHAR* GetProviderName() const override { | |
+ static TCHAR Name[] = TEXT("FStreamlineD3D12DXGISwapchainProvider"); | |
+ return Name; | |
+ } | |
+ | |
TCHAR* GetName() const override final | |
{ | |
static TCHAR Name[] = TEXT("FStreamlineD3D12DXGISwapchainProvider"); | |
diff --git a/Streamline/Streamline.uplugin b/Streamline/Streamline.uplugin | |
index 84b6da6..e9abd87 100644 | |
--- a/Streamline/Streamline.uplugin | |
+++ b/Streamline/Streamline.uplugin | |
@@ -10,7 +10,7 @@ | |
"DocsURL": "", | |
"MarketplaceURL": "https://www.unrealengine.com/marketplace/en-US/product/nvidia-dlss", | |
"SupportURL": "mailto:DLSS-Support@nvidia.com", | |
- "EngineVersion": "5.2.0", | |
+ "EngineVersion": "5.3.0", | |
"CanContainContent": false, | |
"Installed": true, | |
"Modules": [ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment