From 97e9c8a807d41c1f8d69f0801d522f054f690e68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kai=20St=C3=BCdemann?= Date: Wed, 18 Feb 2026 16:39:03 +0100 Subject: [PATCH 1/2] Persona5: fixed missing nvngx_dlss.dll --- .github/workflows/build_and_release.yml | 3 ++- Source/Games/Persona 5/main.cpp | 22 +++++++++++----------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build_and_release.yml b/.github/workflows/build_and_release.yml index 1c83eeb..e06c383 100644 --- a/.github/workflows/build_and_release.yml +++ b/.github/workflows/build_and_release.yml @@ -209,7 +209,8 @@ jobs: -or $projectName -like '*Trine 5*' ` -or $projectName -like '*Just Cause 3*' ` -or $projectName -like '*Unreal Engine' ` - -or $projectName -like '*Granblue Fantasy Relink*') { + -or $projectName -like '*Granblue Fantasy Relink*' ` + -or $projectName -like '*Persona 5*') { # Source path for NGX DLSS DLL if (("${{ matrix.config }}" -eq "Development-Debug") -or ("${{ matrix.config }}" -eq "Development-Release")) { diff --git a/Source/Games/Persona 5/main.cpp b/Source/Games/Persona 5/main.cpp index cc8a2cc..276d02b 100644 --- a/Source/Games/Persona 5/main.cpp +++ b/Source/Games/Persona 5/main.cpp @@ -892,17 +892,17 @@ class Persona5 final : public Game com_ptr motion_vectors_srv; { - D3D11_SHADER_RESOURCE_VIEW_DESC srv_desc; - srv_desc.Format = motion_vectors_desc.Format; - srv_desc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D; - srv_desc.Texture2D.MostDetailedMip = 0; - srv_desc.Texture2D.MipLevels = 1; - device->CreateShaderResourceView(game_device_data.motion_vectors.get(), - &srv_desc, - &motion_vectors_srv); + D3D11_SHADER_RESOURCE_VIEW_DESC srv_desc; + srv_desc.Format = motion_vectors_desc.Format; + srv_desc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D; + srv_desc.Texture2D.MostDetailedMip = 0; + srv_desc.Texture2D.MipLevels = 1; + device->CreateShaderResourceView(game_device_data.motion_vectors.get(), + &srv_desc, + &motion_vectors_srv); } - ID3D11ShaderResourceView* srvs[] = { motion_vectors_srv.get()}; + ID3D11ShaderResourceView* srvs[] = {motion_vectors_srv.get()}; ID3D11UnorderedAccessView* uavs[] = {game_device_data.decoded_motion_vectors_uav.get()}; native_device_context->CSSetShader(device_data.native_compute_shaders[CompileTimeStringHash("Decode Motion Vector")].get(), 0, 0); native_device_context->CSSetShaderResources(0, 1, srvs); @@ -1089,7 +1089,7 @@ class Persona5 final : public Game } if (ImGui::IsItemHovered(ImGuiHoveredFlags_AllowWhenDisabled)) { - ImGui::SetTooltip("When enabled setting Rendering Scale to 50%% or 75%% will use Super Resolution (DLSS or FSR) to scale the image to the output resolution.\nOtherwise Super Resolution will only be used as AA and the image is bilinearly upscaled."); + ImGui::SetTooltip("When enabled setting Rendering Scale to 50%% or 75%% will use Super Resolution (DLSS or FSR) to scale the image to the output resolution.\nOtherwise Super Resolution will only be used as AA and the image is bilinearly upscaled."); } const char* previewString; @@ -1129,7 +1129,7 @@ class Persona5 final : public Game } if (ImGui::IsItemHovered(ImGuiHoveredFlags_AllowWhenDisabled)) { - ImGui::SetTooltip("Set ingame Shadow Quality to Medium. Requires restart/resetting Shadow Quality in settings.\nIn game settings:\nLow - 1024\nMedium - 2048\nHigh - 4096"); + ImGui::SetTooltip("Set ingame Shadow Quality to Medium. Requires restart/resetting Shadow Quality in settings.\nIn game settings:\nLow - 1024\nMedium - 2048\nHigh - 4096"); } } From a1824c05628a43858c2971312e2d5f243d35496c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kai=20St=C3=BCdemann?= Date: Fri, 6 Mar 2026 15:55:04 +0100 Subject: [PATCH 2/2] Persona5: improve compatibility with RenoDX texture upgrades --- Source/Games/Persona 5/main.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Source/Games/Persona 5/main.cpp b/Source/Games/Persona 5/main.cpp index 276d02b..544f849 100644 --- a/Source/Games/Persona 5/main.cpp +++ b/Source/Games/Persona 5/main.cpp @@ -499,7 +499,7 @@ class Persona5 final : public Game auto CheckAndHandleRenderPassTransition = [native_device_context, &cmd_list_data, &device_data, &game_device_data](ID3D11RenderTargetView** render_target_views, ID3D11DepthStencilView* depth_stencil_view) { com_ptr resource; - render_target_views[0]->GetResource(&resource); + render_target_views[1]->GetResource(&resource); if (!resource) { return DrawOrDispatchOverrideType::None; @@ -513,9 +513,10 @@ class Persona5 final : public Game D3D11_TEXTURE2D_DESC tex_desc; tex->GetDesc(&tex_desc); - // the normal gbuffer is DXGI_FORMAT_R11G11B10_FLOAT - // for planar reflection it will be the standart scene color format(DXGI_FORMAT_R10G10B10A2_UNORM) - if (tex_desc.Format != DXGI_FORMAT_R11G11B10_FLOAT) + // the normal gbuffer is DXGI_FORMAT_R10G10B10A2_UNORM (or DXGI_FORMAT_R16G16B16A16_FLOAT when upgraded by renodx) + // for planar reflections render target 1 is DXGI_FORMAT_R8G8B8A8_UNORM + if (tex_desc.Format != DXGI_FORMAT_R10G10B10A2_UNORM && + tex_desc.Format != DXGI_FORMAT_R16G16B16A16_FLOAT) { game_device_data.frame_phase = FramePhase::REFLECTION; }