diff --git a/FSR3UnityPlugin.cpp b/FSR3UnityPlugin.cpp index 64922f4..e1a69d0 100644 --- a/FSR3UnityPlugin.cpp +++ b/FSR3UnityPlugin.cpp @@ -439,6 +439,9 @@ static void UNITY_INTERFACE_API OnRenderEventAndData(int eventID, void* data) dispatchDescription.transparencyAndComposition = ffxGetResourceDX11(&feature.fsr2Context, (ID3D11Resource*)feature.textureTable.transparencyMask.image); dispatchDescription.output = ffxGetResourceDX11(&feature.fsr2Context, (ID3D11Resource*)feature.textureTable.colorOutput.image, nullptr, FFX_RESOURCE_STATE_UNORDERED_ACCESS); + if (dispatchDescription.reactive.resource == nullptr) + dispatchDescription.reactive = ffxGetResourceDX11(&feature.fsr2Context, (ID3D11Resource*)feature.textureTable.biasColorMask.image); + dispatchDescription.jitterOffset.x = params->jitterOffsetX; dispatchDescription.jitterOffset.y = params->jitterOffsetY; dispatchDescription.motionVectorScale.x = params->MVScaleX; @@ -486,6 +489,9 @@ static void UNITY_INTERFACE_API OnRenderEventAndData(int eventID, void* data) dispatchUpscale.reactive = ffxApiGetResourceDX12((ID3D12Resource*)feature.textureTable.reactiveMask.image, FFX_API_RESOURCE_STATE_PIXEL_COMPUTE_READ); dispatchUpscale.transparencyAndComposition = ffxApiGetResourceDX12((ID3D12Resource*)feature.textureTable.transparencyMask.image, FFX_API_RESOURCE_STATE_PIXEL_COMPUTE_READ); dispatchUpscale.output = ffxApiGetResourceDX12((ID3D12Resource*)feature.textureTable.colorOutput.image, FFX_API_RESOURCE_STATE_UNORDERED_ACCESS); + + if (dispatchUpscale.reactive.resource == nullptr) + dispatchUpscale.reactive = ffxApiGetResourceDX12((ID3D12Resource*)feature.textureTable.biasColorMask.image, FFX_API_RESOURCE_STATE_PIXEL_COMPUTE_READ); } else if (s_GraphicsVulkan != nullptr) { @@ -504,6 +510,9 @@ static void UNITY_INTERFACE_API OnRenderEventAndData(int eventID, void* data) dispatchUpscale.reactive = GetVulkanTextureResource(instance, feature.textureTable.reactiveMask); dispatchUpscale.transparencyAndComposition = GetVulkanTextureResource(instance, feature.textureTable.transparencyMask); dispatchUpscale.output = GetVulkanTextureResource(instance, feature.textureTable.colorOutput, FFX_API_RESOURCE_STATE_UNORDERED_ACCESS); + + if (dispatchUpscale.reactive.resource == nullptr) + dispatchUpscale.reactive = GetVulkanTextureResource(instance, feature.textureTable.biasColorMask); } dispatchUpscale.jitterOffset.x = params->jitterOffsetX;