|
|
|
@ -1,4 +1,6 @@ |
|
|
|
namespace UnityEngine.Rendering.HighDefinition.AMD |
|
|
|
using System; |
|
|
|
|
|
|
|
namespace UnityEngine.Rendering.HighDefinition.AMD |
|
|
|
{ |
|
|
|
public class FSR2WrapperUpscaler: UpscalerPlugin |
|
|
|
{ |
|
|
|
@ -25,7 +27,7 @@ |
|
|
|
public override FSR2Context CreateFeature(CommandBuffer cmd, in FSR2CommandInitializationData initSettings) |
|
|
|
{ |
|
|
|
var wrappedInitSettings = initSettings.ToWrapped(); |
|
|
|
return new FSR2WrappedContext(_wrappedDevice.CreateFeature(cmd, in wrappedInitSettings)); |
|
|
|
return new FSR2WrappedContext(_wrappedDevice.CreateFeature(cmd, in wrappedInitSettings), in initSettings); |
|
|
|
} |
|
|
|
|
|
|
|
public override void DestroyFeature(CommandBuffer cmd, FSR2Context fsrContext) |
|
|
|
@ -42,12 +44,14 @@ |
|
|
|
|
|
|
|
public override bool GetRenderResolutionFromQualityMode(FSR2Quality qualityMode, uint displayWidth, uint displayHeight, out uint renderWidth, out uint renderHeight) |
|
|
|
{ |
|
|
|
return _wrappedDevice.GetRenderResolutionFromQualityMode((UnityEngine.AMD.FSR2Quality)(qualityMode - 2), displayWidth, displayHeight, out renderWidth, out renderHeight); |
|
|
|
var quality = (UnityEngine.AMD.FSR2Quality)Math.Max(0, (int)qualityMode - 2); |
|
|
|
return _wrappedDevice.GetRenderResolutionFromQualityMode(quality, displayWidth, displayHeight, out renderWidth, out renderHeight); |
|
|
|
} |
|
|
|
|
|
|
|
public override float GetUpscaleRatioFromQualityMode(FSR2Quality qualityMode) |
|
|
|
{ |
|
|
|
return _wrappedDevice.GetUpscaleRatioFromQualityMode((UnityEngine.AMD.FSR2Quality)(qualityMode - 2)); |
|
|
|
var quality = (UnityEngine.AMD.FSR2Quality)Math.Max(0, (int)qualityMode - 2); |
|
|
|
return _wrappedDevice.GetUpscaleRatioFromQualityMode(quality); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@ -61,9 +65,10 @@ |
|
|
|
private FSR2CommandExecutionData _executeData; |
|
|
|
public override ref FSR2CommandExecutionData executeData => ref _executeData; |
|
|
|
|
|
|
|
internal FSR2WrappedContext(UnityEngine.AMD.FSR2Context wrappedContext) |
|
|
|
internal FSR2WrappedContext(UnityEngine.AMD.FSR2Context wrappedContext, in FSR2CommandInitializationData initData) |
|
|
|
{ |
|
|
|
WrappedContext = wrappedContext; |
|
|
|
_initData = initData; |
|
|
|
} |
|
|
|
|
|
|
|
internal void SyncExecuteData() |
|
|
|
|