Browse Source

Fall back to biasColorMask if reactiveMask is empty, because Unity can't seem to make up its mind what either of these textures mean.

fsr2
Nico de Poel 1 year ago
parent
commit
c2f3bb7958
  1. 9
      FSR2UnityPlugin.cpp

9
FSR2UnityPlugin.cpp

@ -405,6 +405,9 @@ static void UNITY_INTERFACE_API OnRenderEventAndData(int eventID, void* data)
dispatchDescription.reactive = ffxGetResourceDX11(&feature.upscalingContext, (ID3D11Resource*)feature.textureTable.reactiveMask.image);
dispatchDescription.transparencyAndComposition = ffxGetResourceDX11(&feature.upscalingContext, (ID3D11Resource*)feature.textureTable.transparencyMask.image);
dispatchDescription.output = ffxGetResourceDX11(&feature.upscalingContext, (ID3D11Resource*)feature.textureTable.colorOutput.image, nullptr, FFX_RESOURCE_STATE_UNORDERED_ACCESS);
if (dispatchDescription.reactive.resource == nullptr)
dispatchDescription.reactive = ffxGetResourceDX11(&feature.upscalingContext, (ID3D11Resource*)feature.textureTable.biasColorMask.image);
}
else if (s_GraphicsD3D12 != nullptr)
{
@ -422,6 +425,9 @@ static void UNITY_INTERFACE_API OnRenderEventAndData(int eventID, void* data)
dispatchDescription.reactive = ffxGetResourceDX12(&feature.upscalingContext, (ID3D12Resource*)feature.textureTable.reactiveMask.image);
dispatchDescription.transparencyAndComposition = ffxGetResourceDX12(&feature.upscalingContext, (ID3D12Resource*)feature.textureTable.transparencyMask.image);
dispatchDescription.output = ffxGetResourceDX12(&feature.upscalingContext, (ID3D12Resource*)feature.textureTable.colorOutput.image, nullptr, FFX_RESOURCE_STATE_UNORDERED_ACCESS);
if (dispatchDescription.reactive.resource == nullptr)
dispatchDescription.reactive = ffxGetResourceDX12(&feature.upscalingContext, (ID3D12Resource*)feature.textureTable.biasColorMask.image);
}
else if (s_GraphicsVulkan != nullptr)
{
@ -440,6 +446,9 @@ static void UNITY_INTERFACE_API OnRenderEventAndData(int eventID, void* data)
dispatchDescription.reactive = GetVulkanTextureResource(instance, feature, feature.textureTable.reactiveMask);
dispatchDescription.transparencyAndComposition = GetVulkanTextureResource(instance, feature, feature.textureTable.transparencyMask);
dispatchDescription.output = GetVulkanTextureResource(instance, feature, feature.textureTable.colorOutput, FFX_RESOURCE_STATE_UNORDERED_ACCESS);
if (dispatchDescription.reactive.resource == nullptr)
dispatchDescription.reactive = GetVulkanTextureResource(instance, feature, feature.textureTable.biasColorMask);
}
dispatchDescription.jitterOffset.x = params->jitterOffsetX;

Loading…
Cancel
Save