Browse Source

Updated shaders and passes to the framework changes

fsr3framegen
Nico de Poel 2 years ago
parent
commit
cb4321b8ae
  1. 57
      Runtime/FrameInterpolation/FrameInterpolationPass.cs
  2. 30
      Runtime/OpticalFlow/OpticalFlowPass.cs
  3. 2
      Shaders/ffx_frameinterpolation_compute_game_vector_field_inpainting_pyramid_pass.compute
  4. 2
      Shaders/ffx_frameinterpolation_compute_inpainting_pyramid_pass.compute
  5. 2
      Shaders/ffx_frameinterpolation_debug_view_pass.compute
  6. 2
      Shaders/ffx_frameinterpolation_disocclusion_mask_pass.compute
  7. 2
      Shaders/ffx_frameinterpolation_game_motion_vector_field_pass.compute
  8. 2
      Shaders/ffx_frameinterpolation_inpainting_pass.compute
  9. 2
      Shaders/ffx_frameinterpolation_optical_flow_vector_field_pass.compute
  10. 2
      Shaders/ffx_frameinterpolation_pass.compute
  11. 2
      Shaders/ffx_frameinterpolation_reconstruct_and_dilate_pass.compute
  12. 2
      Shaders/ffx_frameinterpolation_reconstruct_previous_depth_pass.compute
  13. 2
      Shaders/ffx_frameinterpolation_setup_pass.compute
  14. 2
      Shaders/ffx_opticalflow_compute_luminance_pyramid_pass.compute
  15. 2
      Shaders/ffx_opticalflow_compute_optical_flow_advanced_pass_v5.compute
  16. 2
      Shaders/ffx_opticalflow_compute_scd_divergence_pass.compute
  17. 2
      Shaders/ffx_opticalflow_filter_optical_flow_pass_v5.compute
  18. 2
      Shaders/ffx_opticalflow_generate_scd_histogram_pass.compute
  19. 2
      Shaders/ffx_opticalflow_prepare_luma_pass.compute
  20. 2
      Shaders/ffx_opticalflow_scale_optical_flow_advanced_pass_v5.compute

57
Runtime/FrameInterpolation/FrameInterpolationPass.cs

@ -3,7 +3,7 @@ using UnityEngine.Rendering;
namespace FidelityFX.FrameGen namespace FidelityFX.FrameGen
{ {
internal abstract class FrameInterpolationPass: FfxPassWithFlags<FrameInterpolation.DispatchDescription, FrameInterpolation.InitializationFlags>
internal abstract class FrameInterpolationPass: FfxPassWithFlags<FrameInterpolation.InitializationFlags>
{ {
protected readonly FrameInterpolationResources Resources; protected readonly FrameInterpolationResources Resources;
protected readonly ComputeBuffer Constants; protected readonly ComputeBuffer Constants;
@ -15,6 +15,16 @@ namespace FidelityFX.FrameGen
Constants = constants; Constants = constants;
} }
public void ScheduleDispatch(CommandBuffer commandBuffer, FrameInterpolation.DispatchDescription dispatchParams, int frameIndex, int dispatchX, int dispatchY, int dispatchZ = 1)
{
using (ProfilerSample(commandBuffer))
{
Dispatch(commandBuffer, dispatchParams, frameIndex, dispatchX, dispatchY, dispatchZ);
}
}
protected abstract void Dispatch(CommandBuffer commandBuffer, in FrameInterpolation.DispatchDescription dispatchParams, int frameIndex, int dispatchX, int dispatchY, int dispatchZ);
protected override void SetupShaderKeywords() protected override void SetupShaderKeywords()
{ {
if ((Flags & FrameInterpolation.InitializationFlags.EnableDisplayResolutionMotionVectors) == 0) ComputeShader.EnableKeyword("FFX_FRAMEINTERPOLATION_OPTION_LOW_RES_MOTION_VECTORS"); if ((Flags & FrameInterpolation.InitializationFlags.EnableDisplayResolutionMotionVectors) == 0) ComputeShader.EnableKeyword("FFX_FRAMEINTERPOLATION_OPTION_LOW_RES_MOTION_VECTORS");
@ -31,26 +41,25 @@ namespace FidelityFX.FrameGen
InitComputeShader("Reconstruct and Dilate", contextDescription.shaders.reconstructAndDilate); InitComputeShader("Reconstruct and Dilate", contextDescription.shaders.reconstructAndDilate);
} }
protected override void DoScheduleDispatch(CommandBuffer commandBuffer, in FrameInterpolation.DispatchDescription dispatchParams, int frameIndex, int dispatchX, int dispatchY, int dispatchZ)
protected override void Dispatch(CommandBuffer commandBuffer, in FrameInterpolation.DispatchDescription dispatchParams, int frameIndex, int dispatchX, int dispatchY, int dispatchZ)
{ {
} }
public void ScheduleDispatch(CommandBuffer commandBuffer, FrameInterpolation.PrepareDescription prepareParams, int frameIndex, int dispatchX, int dispatchY, int dispatchZ = 1) public void ScheduleDispatch(CommandBuffer commandBuffer, FrameInterpolation.PrepareDescription prepareParams, int frameIndex, int dispatchX, int dispatchY, int dispatchZ = 1)
{ {
commandBuffer.BeginSample(Sampler);
using (ProfilerSample(commandBuffer))
{
commandBuffer.SetComputeResourceParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.SrvInputMotionVectors, prepareParams.motionVectors);
commandBuffer.SetComputeResourceParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.SrvInputDepth, prepareParams.depth);
commandBuffer.SetComputeResourceParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.SrvInputMotionVectors, prepareParams.motionVectors);
commandBuffer.SetComputeResourceParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.SrvInputDepth, prepareParams.depth);
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.UavReconstructedDepthPreviousFrame, Resources.ReconstructedDepth[frameIndex]);
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.UavDilatedMotionVectors, Resources.DilatedMotionVectors[frameIndex]);
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.UavDilatedDepth, Resources.DilatedDepth[frameIndex]);
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.UavReconstructedDepthPreviousFrame, Resources.ReconstructedDepth[frameIndex]);
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.UavDilatedMotionVectors, Resources.DilatedMotionVectors[frameIndex]);
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.UavDilatedDepth, Resources.DilatedDepth[frameIndex]);
commandBuffer.SetComputeConstantBufferParam<FrameInterpolation.Constants>(ComputeShader, FrameInterpolationShaderIDs.CbFrameInterpolation, Constants);
commandBuffer.DispatchCompute(ComputeShader, KernelIndex, dispatchX, dispatchY, dispatchZ);
commandBuffer.EndSample(Sampler);
commandBuffer.SetComputeConstantBufferParam<FrameInterpolation.Constants>(ComputeShader, FrameInterpolationShaderIDs.CbFrameInterpolation, Constants);
commandBuffer.DispatchCompute(ComputeShader, KernelIndex, dispatchX, dispatchY, dispatchZ);
}
} }
} }
@ -62,7 +71,7 @@ namespace FidelityFX.FrameGen
InitComputeShader("Setup", contextDescription.shaders.setup); InitComputeShader("Setup", contextDescription.shaders.setup);
} }
protected override void DoScheduleDispatch(CommandBuffer commandBuffer, in FrameInterpolation.DispatchDescription dispatchParams, int frameIndex, int dispatchX, int dispatchY, int dispatchZ)
protected override void Dispatch(CommandBuffer commandBuffer, in FrameInterpolation.DispatchDescription dispatchParams, int frameIndex, int dispatchX, int dispatchY, int dispatchZ)
{ {
commandBuffer.SetComputeResourceParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.SrvOpticalFlowSceneChangeDetection, dispatchParams.opticalFlowSceneChangeDetection); commandBuffer.SetComputeResourceParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.SrvOpticalFlowSceneChangeDetection, dispatchParams.opticalFlowSceneChangeDetection);
@ -87,7 +96,7 @@ namespace FidelityFX.FrameGen
InitComputeShader("Reconstruct Previous Depth", contextDescription.shaders.reconstructPreviousDepth); InitComputeShader("Reconstruct Previous Depth", contextDescription.shaders.reconstructPreviousDepth);
} }
protected override void DoScheduleDispatch(CommandBuffer commandBuffer, in FrameInterpolation.DispatchDescription dispatchParams, int frameIndex, int dispatchX, int dispatchY, int dispatchZ)
protected override void Dispatch(CommandBuffer commandBuffer, in FrameInterpolation.DispatchDescription dispatchParams, int frameIndex, int dispatchX, int dispatchY, int dispatchZ)
{ {
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.SrvDilatedMotionVectors, Resources.DilatedMotionVectors[frameIndex]); commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.SrvDilatedMotionVectors, Resources.DilatedMotionVectors[frameIndex]);
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.SrvDilatedDepth, Resources.DilatedDepth[frameIndex]); commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.SrvDilatedDepth, Resources.DilatedDepth[frameIndex]);
@ -109,7 +118,7 @@ namespace FidelityFX.FrameGen
InitComputeShader("Game Motion Vector Field", contextDescription.shaders.gameMotionVectorField); InitComputeShader("Game Motion Vector Field", contextDescription.shaders.gameMotionVectorField);
} }
protected override void DoScheduleDispatch(CommandBuffer commandBuffer, in FrameInterpolation.DispatchDescription dispatchParams, int frameIndex, int dispatchX, int dispatchY, int dispatchZ)
protected override void Dispatch(CommandBuffer commandBuffer, in FrameInterpolation.DispatchDescription dispatchParams, int frameIndex, int dispatchX, int dispatchY, int dispatchZ)
{ {
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.SrvDilatedMotionVectors, Resources.DilatedMotionVectors[frameIndex]); commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.SrvDilatedMotionVectors, Resources.DilatedMotionVectors[frameIndex]);
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.SrvDilatedDepth, Resources.DilatedDepth[frameIndex]); commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.SrvDilatedDepth, Resources.DilatedDepth[frameIndex]);
@ -133,7 +142,7 @@ namespace FidelityFX.FrameGen
InitComputeShader("Optical Flow Vector Field", contextDescription.shaders.opticalFlowVectorField); InitComputeShader("Optical Flow Vector Field", contextDescription.shaders.opticalFlowVectorField);
} }
protected override void DoScheduleDispatch(CommandBuffer commandBuffer, in FrameInterpolation.DispatchDescription dispatchParams, int frameIndex, int dispatchX, int dispatchY, int dispatchZ)
protected override void Dispatch(CommandBuffer commandBuffer, in FrameInterpolation.DispatchDescription dispatchParams, int frameIndex, int dispatchX, int dispatchY, int dispatchZ)
{ {
if (dispatchParams.opticalFlowScale.x > 0f) if (dispatchParams.opticalFlowScale.x > 0f)
commandBuffer.SetComputeResourceParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.SrvOpticalFlowVector, dispatchParams.opticalFlowVector); commandBuffer.SetComputeResourceParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.SrvOpticalFlowVector, dispatchParams.opticalFlowVector);
@ -162,7 +171,7 @@ namespace FidelityFX.FrameGen
InitComputeShader("Disocclusion Mask", contextDescription.shaders.disocclusionMask); InitComputeShader("Disocclusion Mask", contextDescription.shaders.disocclusionMask);
} }
protected override void DoScheduleDispatch(CommandBuffer commandBuffer, in FrameInterpolation.DispatchDescription dispatchParams, int frameIndex, int dispatchX, int dispatchY, int dispatchZ)
protected override void Dispatch(CommandBuffer commandBuffer, in FrameInterpolation.DispatchDescription dispatchParams, int frameIndex, int dispatchX, int dispatchY, int dispatchZ)
{ {
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.SrvGameMotionVectorFieldX, Resources.GameMotionVectorFieldX); commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.SrvGameMotionVectorFieldX, Resources.GameMotionVectorFieldX);
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.SrvGameMotionVectorFieldY, Resources.GameMotionVectorFieldY); commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.SrvGameMotionVectorFieldY, Resources.GameMotionVectorFieldY);
@ -187,7 +196,7 @@ namespace FidelityFX.FrameGen
InitComputeShader("Interpolation", contextDescription.shaders.interpolation); InitComputeShader("Interpolation", contextDescription.shaders.interpolation);
} }
protected override void DoScheduleDispatch(CommandBuffer commandBuffer, in FrameInterpolation.DispatchDescription dispatchParams, int frameIndex, int dispatchX, int dispatchY, int dispatchZ)
protected override void Dispatch(CommandBuffer commandBuffer, in FrameInterpolation.DispatchDescription dispatchParams, int frameIndex, int dispatchX, int dispatchY, int dispatchZ)
{ {
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.SrvGameMotionVectorFieldX, Resources.GameMotionVectorFieldX); commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.SrvGameMotionVectorFieldX, Resources.GameMotionVectorFieldX);
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.SrvGameMotionVectorFieldY, Resources.GameMotionVectorFieldY); commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.SrvGameMotionVectorFieldY, Resources.GameMotionVectorFieldY);
@ -219,7 +228,7 @@ namespace FidelityFX.FrameGen
InitComputeShader("Inpainting Pyramid", contextDescription.shaders.inpaintingPyramid); InitComputeShader("Inpainting Pyramid", contextDescription.shaders.inpaintingPyramid);
} }
protected override void DoScheduleDispatch(CommandBuffer commandBuffer, in FrameInterpolation.DispatchDescription dispatchParams, int frameIndex, int dispatchX, int dispatchY, int dispatchZ)
protected override void Dispatch(CommandBuffer commandBuffer, in FrameInterpolation.DispatchDescription dispatchParams, int frameIndex, int dispatchX, int dispatchY, int dispatchZ)
{ {
commandBuffer.SetComputeResourceParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.SrvOutput, dispatchParams.output); commandBuffer.SetComputeResourceParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.SrvOutput, dispatchParams.output);
@ -247,7 +256,7 @@ namespace FidelityFX.FrameGen
InitComputeShader("Inpainting", contextDescription.shaders.inpainting); InitComputeShader("Inpainting", contextDescription.shaders.inpainting);
} }
protected override void DoScheduleDispatch(CommandBuffer commandBuffer, in FrameInterpolation.DispatchDescription dispatchParams, int frameIndex, int dispatchX, int dispatchY, int dispatchZ)
protected override void Dispatch(CommandBuffer commandBuffer, in FrameInterpolation.DispatchDescription dispatchParams, int frameIndex, int dispatchX, int dispatchY, int dispatchZ)
{ {
commandBuffer.SetComputeResourceParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.SrvOpticalFlowSceneChangeDetection, dispatchParams.opticalFlowSceneChangeDetection); commandBuffer.SetComputeResourceParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.SrvOpticalFlowSceneChangeDetection, dispatchParams.opticalFlowSceneChangeDetection);
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.SrvInpaintingPyramid, Resources.InpaintingPyramid); commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.SrvInpaintingPyramid, Resources.InpaintingPyramid);
@ -274,7 +283,7 @@ namespace FidelityFX.FrameGen
InitComputeShader("Game Vector Field Inpainting Pyramid", contextDescription.shaders.gameVectorFieldInpaintingPyramid); InitComputeShader("Game Vector Field Inpainting Pyramid", contextDescription.shaders.gameVectorFieldInpaintingPyramid);
} }
protected override void DoScheduleDispatch(CommandBuffer commandBuffer, in FrameInterpolation.DispatchDescription dispatchParams, int frameIndex, int dispatchX, int dispatchY, int dispatchZ)
protected override void Dispatch(CommandBuffer commandBuffer, in FrameInterpolation.DispatchDescription dispatchParams, int frameIndex, int dispatchX, int dispatchY, int dispatchZ)
{ {
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.SrvGameMotionVectorFieldX, Resources.GameMotionVectorFieldX); commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.SrvGameMotionVectorFieldX, Resources.GameMotionVectorFieldX);
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.SrvGameMotionVectorFieldY, Resources.GameMotionVectorFieldY); commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.SrvGameMotionVectorFieldY, Resources.GameMotionVectorFieldY);
@ -303,7 +312,7 @@ namespace FidelityFX.FrameGen
InitComputeShader("Debug View", contextDescription.shaders.debugView); InitComputeShader("Debug View", contextDescription.shaders.debugView);
} }
protected override void DoScheduleDispatch(CommandBuffer commandBuffer, in FrameInterpolation.DispatchDescription dispatchParams, int frameIndex, int dispatchX, int dispatchY, int dispatchZ)
protected override void Dispatch(CommandBuffer commandBuffer, in FrameInterpolation.DispatchDescription dispatchParams, int frameIndex, int dispatchX, int dispatchY, int dispatchZ)
{ {
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.SrvGameMotionVectorFieldX, Resources.GameMotionVectorFieldX); commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.SrvGameMotionVectorFieldX, Resources.GameMotionVectorFieldX);
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.SrvGameMotionVectorFieldY, Resources.GameMotionVectorFieldY); commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, FrameInterpolationShaderIDs.SrvGameMotionVectorFieldY, Resources.GameMotionVectorFieldY);

30
Runtime/OpticalFlow/OpticalFlowPass.cs

@ -6,7 +6,7 @@ using UnityEngine.Rendering;
namespace FidelityFX.FrameGen namespace FidelityFX.FrameGen
{ {
internal abstract class OpticalFlowPass: FfxPassBase<OpticalFlow.DispatchDescription>
internal abstract class OpticalFlowPass: FfxPassBase
{ {
protected readonly OpticalFlowResources Resources; protected readonly OpticalFlowResources Resources;
protected readonly ComputeBuffer Constants; protected readonly ComputeBuffer Constants;
@ -20,17 +20,13 @@ namespace FidelityFX.FrameGen
public void ScheduleDispatch(CommandBuffer commandBuffer, in OpticalFlow.DispatchDescription dispatchParams, int bufferIndex, int level, int dispatchX, int dispatchY, int dispatchZ = 1) public void ScheduleDispatch(CommandBuffer commandBuffer, in OpticalFlow.DispatchDescription dispatchParams, int bufferIndex, int level, int dispatchX, int dispatchY, int dispatchZ = 1)
{ {
commandBuffer.BeginSample(Sampler);
DoScheduleDispatch(commandBuffer, dispatchParams, bufferIndex, level, dispatchX, dispatchY, dispatchZ);
commandBuffer.EndSample(Sampler);
using (ProfilerSample(commandBuffer))
{
Dispatch(commandBuffer, dispatchParams, bufferIndex, level, dispatchX, dispatchY, dispatchZ);
}
} }
protected abstract void DoScheduleDispatch(CommandBuffer commandBuffer, in OpticalFlow.DispatchDescription dispatchParams, int bufferIndex, int level, int dispatchX, int dispatchY, int dispatchZ);
protected override void DoScheduleDispatch(CommandBuffer commandBuffer, in OpticalFlow.DispatchDescription dispatchParams, int bufferIndex, int dispatchX, int dispatchY, int dispatchZ)
{
// Optical Flow dispatch requires an extra `level` parameter, so we don't use this overload
}
protected abstract void Dispatch(CommandBuffer commandBuffer, in OpticalFlow.DispatchDescription dispatchParams, int bufferIndex, int level, int dispatchX, int dispatchY, int dispatchZ);
} }
internal sealed class OpticalFlowPrepareLumaPass : OpticalFlowPass internal sealed class OpticalFlowPrepareLumaPass : OpticalFlowPass
@ -41,7 +37,7 @@ namespace FidelityFX.FrameGen
InitComputeShader("Prepare Luma", contextDescription.shaders.prepareLuma); InitComputeShader("Prepare Luma", contextDescription.shaders.prepareLuma);
} }
protected override void DoScheduleDispatch(CommandBuffer commandBuffer, in OpticalFlow.DispatchDescription dispatchParams, int bufferIndex, int level, int dispatchX, int dispatchY, int dispatchZ)
protected override void Dispatch(CommandBuffer commandBuffer, in OpticalFlow.DispatchDescription dispatchParams, int bufferIndex, int level, int dispatchX, int dispatchY, int dispatchZ)
{ {
commandBuffer.SetComputeResourceParam(ComputeShader, KernelIndex, OpticalFlowShaderIDs.SrvInputColor, dispatchParams.color); commandBuffer.SetComputeResourceParam(ComputeShader, KernelIndex, OpticalFlowShaderIDs.SrvInputColor, dispatchParams.color);
@ -64,7 +60,7 @@ namespace FidelityFX.FrameGen
InitComputeShader("Generate Optical Flow Input Pyramid", contextDescription.shaders.generateOpticalFlowInputPyramid); InitComputeShader("Generate Optical Flow Input Pyramid", contextDescription.shaders.generateOpticalFlowInputPyramid);
} }
protected override void DoScheduleDispatch(CommandBuffer commandBuffer, in OpticalFlow.DispatchDescription dispatchParams, int bufferIndex, int level, int dispatchX, int dispatchY, int dispatchZ)
protected override void Dispatch(CommandBuffer commandBuffer, in OpticalFlow.DispatchDescription dispatchParams, int bufferIndex, int level, int dispatchX, int dispatchY, int dispatchZ)
{ {
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, OpticalFlowShaderIDs.UavOpticalFlowInput, Resources.OpticalFlowInputLevels[0][bufferIndex]); commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, OpticalFlowShaderIDs.UavOpticalFlowInput, Resources.OpticalFlowInputLevels[0][bufferIndex]);
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, OpticalFlowShaderIDs.UavOpticalFlowInputLevel1, Resources.OpticalFlowInputLevels[1][bufferIndex]); commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, OpticalFlowShaderIDs.UavOpticalFlowInputLevel1, Resources.OpticalFlowInputLevels[1][bufferIndex]);
@ -89,7 +85,7 @@ namespace FidelityFX.FrameGen
InitComputeShader("Generate SCD Histogram", contextDescription.shaders.generateScdHistogram); InitComputeShader("Generate SCD Histogram", contextDescription.shaders.generateScdHistogram);
} }
protected override void DoScheduleDispatch(CommandBuffer commandBuffer, in OpticalFlow.DispatchDescription dispatchParams, int bufferIndex, int level, int dispatchX, int dispatchY, int dispatchZ)
protected override void Dispatch(CommandBuffer commandBuffer, in OpticalFlow.DispatchDescription dispatchParams, int bufferIndex, int level, int dispatchX, int dispatchY, int dispatchZ)
{ {
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, OpticalFlowShaderIDs.SrvOpticalFlowInput, Resources.OpticalFlowInputLevels[0][bufferIndex]); commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, OpticalFlowShaderIDs.SrvOpticalFlowInput, Resources.OpticalFlowInputLevels[0][bufferIndex]);
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, OpticalFlowShaderIDs.UavOpticalFlowScdHistogram, Resources.OpticalFlowSCDHistogram); commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, OpticalFlowShaderIDs.UavOpticalFlowScdHistogram, Resources.OpticalFlowSCDHistogram);
@ -108,7 +104,7 @@ namespace FidelityFX.FrameGen
InitComputeShader("Compute SCD Divergence", contextDescription.shaders.computeScdDivergence); InitComputeShader("Compute SCD Divergence", contextDescription.shaders.computeScdDivergence);
} }
protected override void DoScheduleDispatch(CommandBuffer commandBuffer, in OpticalFlow.DispatchDescription dispatchParams, int bufferIndex, int level, int dispatchX, int dispatchY, int dispatchZ)
protected override void Dispatch(CommandBuffer commandBuffer, in OpticalFlow.DispatchDescription dispatchParams, int bufferIndex, int level, int dispatchX, int dispatchY, int dispatchZ)
{ {
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, OpticalFlowShaderIDs.UavOpticalFlowScdHistogram, Resources.OpticalFlowSCDHistogram); commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, OpticalFlowShaderIDs.UavOpticalFlowScdHistogram, Resources.OpticalFlowSCDHistogram);
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, OpticalFlowShaderIDs.UavOpticalFlowScdPreviousHistogram, Resources.OpticalFlowSCDPreviousHistogram); commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, OpticalFlowShaderIDs.UavOpticalFlowScdPreviousHistogram, Resources.OpticalFlowSCDPreviousHistogram);
@ -129,7 +125,7 @@ namespace FidelityFX.FrameGen
InitComputeShader("Optical Flow Search", contextDescription.shaders.computeOpticalFlow); InitComputeShader("Optical Flow Search", contextDescription.shaders.computeOpticalFlow);
} }
protected override void DoScheduleDispatch(CommandBuffer commandBuffer, in OpticalFlow.DispatchDescription dispatchParams, int bufferIndex, int level, int dispatchX, int dispatchY, int dispatchZ)
protected override void Dispatch(CommandBuffer commandBuffer, in OpticalFlow.DispatchDescription dispatchParams, int bufferIndex, int level, int dispatchX, int dispatchY, int dispatchZ)
{ {
int levelIndex = bufferIndex ^ (level & 1); int levelIndex = bufferIndex ^ (level & 1);
@ -152,7 +148,7 @@ namespace FidelityFX.FrameGen
InitComputeShader("Optical Flow Filter", contextDescription.shaders.filterOpticalFlow); InitComputeShader("Optical Flow Filter", contextDescription.shaders.filterOpticalFlow);
} }
protected override void DoScheduleDispatch(CommandBuffer commandBuffer, in OpticalFlow.DispatchDescription dispatchParams, int bufferIndex, int level, int dispatchX, int dispatchY, int dispatchZ)
protected override void Dispatch(CommandBuffer commandBuffer, in OpticalFlow.DispatchDescription dispatchParams, int bufferIndex, int level, int dispatchX, int dispatchY, int dispatchZ)
{ {
int levelIndex = bufferIndex ^ (level & 1); int levelIndex = bufferIndex ^ (level & 1);
@ -182,7 +178,7 @@ namespace FidelityFX.FrameGen
InitComputeShader("Optical Flow Scale", contextDescription.shaders.scaleOpticalFlow); InitComputeShader("Optical Flow Scale", contextDescription.shaders.scaleOpticalFlow);
} }
protected override void DoScheduleDispatch(CommandBuffer commandBuffer, in OpticalFlow.DispatchDescription dispatchParams, int bufferIndex, int level, int dispatchX, int dispatchY, int dispatchZ)
protected override void Dispatch(CommandBuffer commandBuffer, in OpticalFlow.DispatchDescription dispatchParams, int bufferIndex, int level, int dispatchX, int dispatchY, int dispatchZ)
{ {
if (level <= 0) if (level <= 0)
return; return;

2
Shaders/ffx_frameinterpolation_compute_game_vector_field_inpainting_pyramid_pass.compute

@ -28,6 +28,6 @@
#pragma use_dxc #pragma use_dxc
#pragma require WaveBasic #pragma require WaveBasic
#include "ffx_fsr_unity_common.cginc"
#include "ffx_unity_common.cginc"
#include "shaders/ffx_frameinterpolation_compute_game_vector_field_inpainting_pyramid_pass.hlsl" #include "shaders/ffx_frameinterpolation_compute_game_vector_field_inpainting_pyramid_pass.hlsl"

2
Shaders/ffx_frameinterpolation_compute_inpainting_pyramid_pass.compute

@ -28,6 +28,6 @@
#pragma use_dxc #pragma use_dxc
#pragma require WaveBasic #pragma require WaveBasic
#include "ffx_fsr_unity_common.cginc"
#include "ffx_unity_common.cginc"
#include "shaders/ffx_frameinterpolation_compute_inpainting_pyramid_pass.hlsl" #include "shaders/ffx_frameinterpolation_compute_inpainting_pyramid_pass.hlsl"

2
Shaders/ffx_frameinterpolation_debug_view_pass.compute

@ -28,6 +28,6 @@
#pragma use_dxc #pragma use_dxc
#pragma require WaveBasic #pragma require WaveBasic
#include "ffx_fsr_unity_common.cginc"
#include "ffx_unity_common.cginc"
#include "shaders/ffx_frameinterpolation_debug_view_pass.hlsl" #include "shaders/ffx_frameinterpolation_debug_view_pass.hlsl"

2
Shaders/ffx_frameinterpolation_disocclusion_mask_pass.compute

@ -28,6 +28,6 @@
#pragma use_dxc #pragma use_dxc
#pragma require WaveBasic #pragma require WaveBasic
#include "ffx_fsr_unity_common.cginc"
#include "ffx_unity_common.cginc"
#include "shaders/ffx_frameinterpolation_disocclusion_mask_pass.hlsl" #include "shaders/ffx_frameinterpolation_disocclusion_mask_pass.hlsl"

2
Shaders/ffx_frameinterpolation_game_motion_vector_field_pass.compute

@ -28,6 +28,6 @@
#pragma use_dxc #pragma use_dxc
#pragma require WaveBasic #pragma require WaveBasic
#include "ffx_fsr_unity_common.cginc"
#include "ffx_unity_common.cginc"
#include "shaders/ffx_frameinterpolation_game_motion_vector_field_pass.hlsl" #include "shaders/ffx_frameinterpolation_game_motion_vector_field_pass.hlsl"

2
Shaders/ffx_frameinterpolation_inpainting_pass.compute

@ -28,6 +28,6 @@
#pragma use_dxc #pragma use_dxc
#pragma require WaveBasic #pragma require WaveBasic
#include "ffx_fsr_unity_common.cginc"
#include "ffx_unity_common.cginc"
#include "shaders/ffx_frameinterpolation_inpainting_pass.hlsl" #include "shaders/ffx_frameinterpolation_inpainting_pass.hlsl"

2
Shaders/ffx_frameinterpolation_optical_flow_vector_field_pass.compute

@ -28,6 +28,6 @@
#pragma use_dxc #pragma use_dxc
#pragma require WaveBasic #pragma require WaveBasic
#include "ffx_fsr_unity_common.cginc"
#include "ffx_unity_common.cginc"
#include "shaders/ffx_frameinterpolation_optical_flow_vector_field_pass.hlsl" #include "shaders/ffx_frameinterpolation_optical_flow_vector_field_pass.hlsl"

2
Shaders/ffx_frameinterpolation_pass.compute

@ -28,6 +28,6 @@
#pragma use_dxc #pragma use_dxc
#pragma require WaveBasic #pragma require WaveBasic
#include "ffx_fsr_unity_common.cginc"
#include "ffx_unity_common.cginc"
#include "shaders/ffx_frameinterpolation_pass.hlsl" #include "shaders/ffx_frameinterpolation_pass.hlsl"

2
Shaders/ffx_frameinterpolation_reconstruct_and_dilate_pass.compute

@ -29,6 +29,6 @@
#pragma use_dxc #pragma use_dxc
#pragma require WaveBasic #pragma require WaveBasic
#include "ffx_fsr_unity_common.cginc"
#include "ffx_unity_common.cginc"
#include "shaders/ffx_frameinterpolation_reconstruct_and_dilate_pass.hlsl" #include "shaders/ffx_frameinterpolation_reconstruct_and_dilate_pass.hlsl"

2
Shaders/ffx_frameinterpolation_reconstruct_previous_depth_pass.compute

@ -28,6 +28,6 @@
#pragma use_dxc #pragma use_dxc
#pragma require WaveBasic #pragma require WaveBasic
#include "ffx_fsr_unity_common.cginc"
#include "ffx_unity_common.cginc"
#include "shaders/ffx_frameinterpolation_reconstruct_previous_depth_pass.hlsl" #include "shaders/ffx_frameinterpolation_reconstruct_previous_depth_pass.hlsl"

2
Shaders/ffx_frameinterpolation_setup_pass.compute

@ -28,6 +28,6 @@
#pragma use_dxc #pragma use_dxc
#pragma require WaveBasic #pragma require WaveBasic
#include "ffx_fsr_unity_common.cginc"
#include "ffx_unity_common.cginc"
#include "shaders/ffx_frameinterpolation_setup_pass.hlsl" #include "shaders/ffx_frameinterpolation_setup_pass.hlsl"

2
Shaders/ffx_opticalflow_compute_luminance_pyramid_pass.compute

@ -25,6 +25,6 @@
#pragma use_dxc #pragma use_dxc
#pragma require WaveBasic #pragma require WaveBasic
#include "ffx_fsr_unity_common.cginc"
#include "ffx_unity_common.cginc"
#include "shaders/ffx_opticalflow_compute_luminance_pyramid_pass.hlsl" #include "shaders/ffx_opticalflow_compute_luminance_pyramid_pass.hlsl"

2
Shaders/ffx_opticalflow_compute_optical_flow_advanced_pass_v5.compute

@ -25,6 +25,6 @@
#pragma use_dxc #pragma use_dxc
#pragma require WaveBasic #pragma require WaveBasic
#include "ffx_fsr_unity_common.cginc"
#include "ffx_unity_common.cginc"
#include "shaders/ffx_opticalflow_compute_optical_flow_advanced_pass_v5.hlsl" #include "shaders/ffx_opticalflow_compute_optical_flow_advanced_pass_v5.hlsl"

2
Shaders/ffx_opticalflow_compute_scd_divergence_pass.compute

@ -25,6 +25,6 @@
#pragma use_dxc #pragma use_dxc
#pragma require WaveBasic #pragma require WaveBasic
#include "ffx_fsr_unity_common.cginc"
#include "ffx_unity_common.cginc"
#include "shaders/ffx_opticalflow_compute_scd_divergence_pass.hlsl" #include "shaders/ffx_opticalflow_compute_scd_divergence_pass.hlsl"

2
Shaders/ffx_opticalflow_filter_optical_flow_pass_v5.compute

@ -25,6 +25,6 @@
#pragma use_dxc #pragma use_dxc
#pragma require WaveBasic #pragma require WaveBasic
#include "ffx_fsr_unity_common.cginc"
#include "ffx_unity_common.cginc"
#include "shaders/ffx_opticalflow_filter_optical_flow_pass_v5.hlsl" #include "shaders/ffx_opticalflow_filter_optical_flow_pass_v5.hlsl"

2
Shaders/ffx_opticalflow_generate_scd_histogram_pass.compute

@ -25,6 +25,6 @@
#pragma use_dxc #pragma use_dxc
#pragma require WaveBasic #pragma require WaveBasic
#include "ffx_fsr_unity_common.cginc"
#include "ffx_unity_common.cginc"
#include "shaders/ffx_opticalflow_generate_scd_histogram_pass.hlsl" #include "shaders/ffx_opticalflow_generate_scd_histogram_pass.hlsl"

2
Shaders/ffx_opticalflow_prepare_luma_pass.compute

@ -25,6 +25,6 @@
#pragma use_dxc #pragma use_dxc
#pragma require WaveBasic #pragma require WaveBasic
#include "ffx_fsr_unity_common.cginc"
#include "ffx_unity_common.cginc"
#include "shaders/ffx_opticalflow_prepare_luma_pass.hlsl" #include "shaders/ffx_opticalflow_prepare_luma_pass.hlsl"

2
Shaders/ffx_opticalflow_scale_optical_flow_advanced_pass_v5.compute

@ -25,6 +25,6 @@
#pragma use_dxc #pragma use_dxc
#pragma require WaveBasic #pragma require WaveBasic
#include "ffx_fsr_unity_common.cginc"
#include "ffx_unity_common.cginc"
#include "shaders/ffx_opticalflow_scale_optical_flow_advanced_pass_v5.hlsl" #include "shaders/ffx_opticalflow_scale_optical_flow_advanced_pass_v5.hlsl"
Loading…
Cancel
Save