Browse Source

Set constant buffer data as part of the command buffers, instead of immediately.

master
Nico de Poel 3 years ago
parent
commit
7c41364109
  1. 10
      Assets/Scripts/Core/Fsr2Context.cs

10
Assets/Scripts/Core/Fsr2Context.cs

@ -215,8 +215,8 @@ namespace FidelityFX
SetupSpdConstants(dispatchParams, out var dispatchThreadGroupCount); SetupSpdConstants(dispatchParams, out var dispatchThreadGroupCount);
// Initialize constant buffers data // Initialize constant buffers data
_fsr2ConstantsBuffer.SetData(_fsr2ConstantsArray);
_spdConstantsBuffer.SetData(_spdConstantsArray);
commandBuffer.SetBufferData(_fsr2ConstantsBuffer, _fsr2ConstantsArray);
commandBuffer.SetBufferData(_spdConstantsBuffer, _spdConstantsArray);
// Auto reactive // Auto reactive
if (dispatchParams.EnableAutoReactive) if (dispatchParams.EnableAutoReactive)
@ -245,7 +245,7 @@ namespace FidelityFX
{ {
// Compute the constants // Compute the constants
SetupRcasConstants(dispatchParams); SetupRcasConstants(dispatchParams);
_rcasConstantsBuffer.SetData(_rcasConstantsArray);
commandBuffer.SetBufferData(_rcasConstantsBuffer, _rcasConstantsArray);
// Dispatch RCAS // Dispatch RCAS
const int threadGroupWorkRegionDimRcas = 16; const int threadGroupWorkRegionDimRcas = 16;
@ -276,7 +276,7 @@ namespace FidelityFX
GenReactiveConsts.threshold = dispatchParams.CutoffThreshold; GenReactiveConsts.threshold = dispatchParams.CutoffThreshold;
GenReactiveConsts.binaryValue = dispatchParams.BinaryValue; GenReactiveConsts.binaryValue = dispatchParams.BinaryValue;
GenReactiveConsts.flags = (uint)dispatchParams.Flags; GenReactiveConsts.flags = (uint)dispatchParams.Flags;
_generateReactiveConstantsBuffer.SetData(_generateReactiveConstantsArray);
commandBuffer.SetBufferData(_generateReactiveConstantsBuffer, _generateReactiveConstantsArray);
((Fsr2GenerateReactivePipeline)_generateReactivePipeline).ScheduleDispatch(commandBuffer, dispatchParams, dispatchSrcX, dispatchSrcY); ((Fsr2GenerateReactivePipeline)_generateReactivePipeline).ScheduleDispatch(commandBuffer, dispatchParams, dispatchSrcX, dispatchSrcY);
} }
@ -291,7 +291,7 @@ namespace FidelityFX
TcrAutoGenConsts.autoTcScale = dispatchParams.AutoTcScale; TcrAutoGenConsts.autoTcScale = dispatchParams.AutoTcScale;
TcrAutoGenConsts.autoReactiveScale = dispatchParams.AutoReactiveScale; TcrAutoGenConsts.autoReactiveScale = dispatchParams.AutoReactiveScale;
TcrAutoGenConsts.autoReactiveMax = dispatchParams.AutoReactiveMax; TcrAutoGenConsts.autoReactiveMax = dispatchParams.AutoReactiveMax;
_tcrAutogenerateConstantsBuffer.SetData(_tcrAutogenerateConstantsArray);
commandBuffer.SetBufferData(_tcrAutogenerateConstantsBuffer, _tcrAutogenerateConstantsArray);
_tcrAutogeneratePipeline.ScheduleDispatch(commandBuffer, dispatchParams, frameIndex, dispatchSrcX, dispatchSrcY); _tcrAutogeneratePipeline.ScheduleDispatch(commandBuffer, dispatchParams, frameIndex, dispatchSrcX, dispatchSrcY);
} }

Loading…
Cancel
Save