From 9c377cc1441c3b144cd21124285f8e4250825a80 Mon Sep 17 00:00:00 2001 From: Nico de Poel Date: Sun, 4 Aug 2024 17:26:15 +0200 Subject: [PATCH] Use derived classes to reference passes. --- .../FrameInterpolationContext.cs | 24 +++++++++---------- Runtime/OpticalFlow/OpticalFlowContext.cs | 15 ++++++------ 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/Runtime/FrameInterpolation/FrameInterpolationContext.cs b/Runtime/FrameInterpolation/FrameInterpolationContext.cs index d4f2c95..8d81053 100644 --- a/Runtime/FrameInterpolation/FrameInterpolationContext.cs +++ b/Runtime/FrameInterpolation/FrameInterpolationContext.cs @@ -11,17 +11,17 @@ namespace FidelityFX.FrameGen { private FrameInterpolation.ContextDescription _contextDescription; - private FrameInterpolationPass _reconstructAndDilatePass; - private FrameInterpolationPass _setupPass; - private FrameInterpolationPass _reconstructPreviousDepthPass; - private FrameInterpolationPass _gameMotionVectorFieldPass; - private FrameInterpolationPass _opticalFlowVectorFieldPass; - private FrameInterpolationPass _disocclusionMaskPass; - private FrameInterpolationPass _interpolationPass; - private FrameInterpolationPass _inpaintingPyramidPass; - private FrameInterpolationPass _inpaintingPass; - private FrameInterpolationPass _gameVectorFieldInpaintingPyramidPass; - private FrameInterpolationPass _debugViewPass; + private FrameInterpolationReconstructAndDilatePass _reconstructAndDilatePass; + private FrameInterpolationSetupPass _setupPass; + private FrameInterpolationReconstructPreviousDepthPass _reconstructPreviousDepthPass; + private FrameInterpolationGameMotionVectorFieldPass _gameMotionVectorFieldPass; + private FrameInterpolationOpticalFlowVectorFieldPass _opticalFlowVectorFieldPass; + private FrameInterpolationDisocclusionMaskPass _disocclusionMaskPass; + private FrameInterpolationInterpolationPass _interpolationPass; + private FrameInterpolationInpaintingPyramidPass _inpaintingPyramidPass; + private FrameInterpolationInpaintingPass _inpaintingPass; + private FrameInterpolationGameVectorFieldInpaintingPyramidPass _gameVectorFieldInpaintingPyramidPass; + private FrameInterpolationDebugViewPass _debugViewPass; private readonly FrameInterpolationResources _resources = new FrameInterpolationResources(); @@ -120,7 +120,7 @@ namespace FidelityFX.FrameGen int renderDispatchSizeX = (prepareDescription.renderSize.x + 7) / 8; int renderDispatchSizeY = (prepareDescription.renderSize.y + 7) / 8; - ((FrameInterpolationReconstructAndDilatePass)_reconstructAndDilatePass).ScheduleDispatch(commandBuffer, prepareDescription, doubleBufferId, renderDispatchSizeX, renderDispatchSizeY); + _reconstructAndDilatePass.ScheduleDispatch(commandBuffer, prepareDescription, doubleBufferId, renderDispatchSizeX, renderDispatchSizeY); commandBuffer.EndSample(_prepareSampler); } diff --git a/Runtime/OpticalFlow/OpticalFlowContext.cs b/Runtime/OpticalFlow/OpticalFlowContext.cs index 02f4c16..a6d3cfc 100644 --- a/Runtime/OpticalFlow/OpticalFlowContext.cs +++ b/Runtime/OpticalFlow/OpticalFlowContext.cs @@ -15,13 +15,13 @@ namespace FidelityFX.FrameGen private OpticalFlow.ContextDescription _contextDescription; - private OpticalFlowPass _prepareLumaPass; - private OpticalFlowPass _generateInputPyramidPass; - private OpticalFlowPass _generateScdHistogramPass; - private OpticalFlowPass _computeScdDivergencePass; - private OpticalFlowPass _computeOpticalFlowPass; - private OpticalFlowPass _filterOpticalFlowPass; - private OpticalFlowPass _scaleOpticalFlowPass; + private OpticalFlowPrepareLumaPass _prepareLumaPass; + private OpticalFlowGenerateInputPyramidPass _generateInputPyramidPass; + private OpticalFlowGenerateSCDHistogramPass _generateScdHistogramPass; + private OpticalFlowComputeSCDDivergencePass _computeScdDivergencePass; + private OpticalFlowComputePass _computeOpticalFlowPass; + private OpticalFlowFilterPass _filterOpticalFlowPass; + private OpticalFlowScalePass _scaleOpticalFlowPass; private readonly OpticalFlowResources _resources = new OpticalFlowResources(); @@ -31,6 +31,7 @@ namespace FidelityFX.FrameGen private bool _firstExecution; private int _resourceFrameIndex; private readonly Vector2Int[] _opticalFlowTextureSizes = new Vector2Int[OpticalFlow.OpticalFlowMaxPyramidLevels]; + private readonly CustomSampler _sampler = CustomSampler.Create("Optical Flow"); public void Create(in OpticalFlow.ContextDescription contextDescription)