Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git "a/C:\\Users\\paul\\Desktop\\VaOceanPlugin/Classes/VaOceanRadixFFT.h" "b/.\\Plugins\\VaOcean\\Source\\VaOceanPlugin/Classes/VaOceanRadixFFT.h"
- index 244fa36..15f304d 100644
- --- "a/C:\\Users\\paul\\Desktop\\VaOceanPlugin/Classes/VaOceanRadixFFT.h"
- +++ "b/.\\Plugins\\VaOcean\\Source\\VaOceanPlugin/Classes/VaOceanRadixFFT.h"
- @@ -54,7 +54,8 @@ struct FRadixPlan512
- void RadixCreatePlan(FRadixPlan512* Plan, uint32 Slices);
- void RadixDestroyPlan(FRadixPlan512* Plan);
- -void RadixCompute( FRadixPlan512* Plan,
- +void RadixCompute( FRHICommandListImmediate & RHICmdList,
- + FRadixPlan512* Plan,
- FUnorderedAccessViewRHIRef pUAV_Dst,
- FShaderResourceViewRHIRef pSRV_Dst,
- FShaderResourceViewRHIRef pSRV_Src);
- diff --git "a/C:\\Users\\paul\\Desktop\\VaOceanPlugin/Classes/VaOceanShaders.h" "b/.\\Plugins\\VaOcean\\Source\\VaOceanPlugin/Classes/VaOceanShaders.h"
- index 0a5eda6..9b6fb41 100644
- --- "a/C:\\Users\\paul\\Desktop\\VaOceanPlugin/Classes/VaOceanShaders.h"
- +++ "b/.\\Plugins\\VaOcean\\Source\\VaOceanPlugin/Classes/VaOceanShaders.h"
- @@ -84,6 +84,7 @@ public:
- }
- void SetParameters(
- + FRHICommandList & RHICmdList,
- uint32 ParamActualDim,
- uint32 ParamInWidth,
- uint32 ParamOutWidth,
- @@ -94,15 +95,16 @@ public:
- {
- FComputeShaderRHIParamRef ComputeShaderRHI = GetComputeShader();
- - SetShaderValue(ComputeShaderRHI, ActualDim, ParamActualDim);
- - SetShaderValue(ComputeShaderRHI, InWidth, ParamInWidth);
- - SetShaderValue(ComputeShaderRHI, OutWidth, ParamOutWidth);
- - SetShaderValue(ComputeShaderRHI, OutHeight, ParamOutHeight);
- - SetShaderValue(ComputeShaderRHI, DtxAddressOffset, ParamDtxAddressOffset);
- - SetShaderValue(ComputeShaderRHI, DtyAddressOffset, ParamDtyAddressOffset);
- + SetShaderValue(RHICmdList, ComputeShaderRHI, ActualDim, ParamActualDim);
- + SetShaderValue(RHICmdList, ComputeShaderRHI, InWidth, ParamInWidth);
- + SetShaderValue(RHICmdList, ComputeShaderRHI, OutWidth, ParamOutWidth);
- + SetShaderValue(RHICmdList, ComputeShaderRHI, OutHeight, ParamOutHeight);
- + SetShaderValue(RHICmdList, ComputeShaderRHI, DtxAddressOffset, ParamDtxAddressOffset);
- + SetShaderValue(RHICmdList, ComputeShaderRHI, DtyAddressOffset, ParamDtyAddressOffset);
- }
- void SetParameters(
- + FRHICommandList & RHICmdList,
- const FUpdateSpectrumUniformBufferRef& UniformBuffer,
- FShaderResourceViewRHIRef ParamInputH0,
- FShaderResourceViewRHIRef ParamInputOmega
- @@ -110,36 +112,36 @@ public:
- {
- FComputeShaderRHIParamRef ComputeShaderRHI = GetComputeShader();
- - SetUniformBufferParameter(ComputeShaderRHI, GetUniformBufferParameter<FUpdateSpectrumUniformParameters>(), UniformBuffer);
- + SetUniformBufferParameter(RHICmdList, ComputeShaderRHI, GetUniformBufferParameter<FUpdateSpectrumUniformParameters>(), UniformBuffer);
- - RHISetShaderResourceViewParameter(ComputeShaderRHI, InputH0.GetBaseIndex(), ParamInputH0);
- - RHISetShaderResourceViewParameter(ComputeShaderRHI, InputOmega.GetBaseIndex(), ParamInputOmega);
- + RHICmdList.SetShaderResourceViewParameter(ComputeShaderRHI, InputH0.GetBaseIndex(), ParamInputH0);
- + RHICmdList.SetShaderResourceViewParameter(ComputeShaderRHI, InputOmega.GetBaseIndex(), ParamInputOmega);
- }
- - void UnsetParameters()
- + void UnsetParameters(FRHICommandList & RHICmdList)
- {
- FComputeShaderRHIParamRef ComputeShaderRHI = GetComputeShader();
- FShaderResourceViewRHIParamRef NullSRV = FShaderResourceViewRHIParamRef();
- - RHISetShaderResourceViewParameter(ComputeShaderRHI, InputH0.GetBaseIndex(), NullSRV);
- - RHISetShaderResourceViewParameter(ComputeShaderRHI, InputOmega.GetBaseIndex(), NullSRV);
- + RHICmdList.SetShaderResourceViewParameter(ComputeShaderRHI, InputH0.GetBaseIndex(), NullSRV);
- + RHICmdList.SetShaderResourceViewParameter(ComputeShaderRHI, InputOmega.GetBaseIndex(), NullSRV);
- }
- - void SetOutput(FUnorderedAccessViewRHIParamRef ParamOutputHtRW)
- + void SetOutput(FRHICommandList & RHICmdList, FUnorderedAccessViewRHIParamRef ParamOutputHtRW)
- {
- FComputeShaderRHIParamRef ComputeShaderRHI = GetComputeShader();
- if (OutputHtRW.IsBound())
- {
- - RHISetUAVParameter(ComputeShaderRHI, OutputHtRW.GetBaseIndex(), ParamOutputHtRW);
- + RHICmdList.SetUAVParameter(ComputeShaderRHI, OutputHtRW.GetBaseIndex(), ParamOutputHtRW);
- }
- }
- - void UnbindBuffers()
- + void UnbindBuffers(FRHICommandList & RHICmdList)
- {
- FComputeShaderRHIParamRef ComputeShaderRHI = GetComputeShader();
- if (OutputHtRW.IsBound())
- {
- - RHISetUAVParameter(ComputeShaderRHI, OutputHtRW.GetBaseIndex(), FUnorderedAccessViewRHIParamRef());
- + RHICmdList.SetUAVParameter(ComputeShaderRHI, OutputHtRW.GetBaseIndex(), FUnorderedAccessViewRHIParamRef());
- }
- }
- @@ -206,27 +208,27 @@ public:
- {
- }
- - void SetParameters(const FRadixFFTUniformBufferRef& UniformBuffer)
- + void SetParameters(FRHICommandList & RHICmdList, const FRadixFFTUniformBufferRef& UniformBuffer)
- {
- FComputeShaderRHIParamRef ComputeShaderRHI = GetComputeShader();
- - SetUniformBufferParameter(ComputeShaderRHI, GetUniformBufferParameter<FRadixFFTUniformParameters>(), UniformBuffer);
- + SetUniformBufferParameter(RHICmdList, ComputeShaderRHI, GetUniformBufferParameter<FRadixFFTUniformParameters>(), UniformBuffer);
- }
- - void SetParameters(FShaderResourceViewRHIRef ParamSrcData, FUnorderedAccessViewRHIRef ParamDstData)
- + void SetParameters(FRHICommandList & RHICmdList, FShaderResourceViewRHIRef ParamSrcData, FUnorderedAccessViewRHIRef ParamDstData)
- {
- FComputeShaderRHIParamRef ComputeShaderRHI = GetComputeShader();
- - RHISetShaderResourceViewParameter(ComputeShaderRHI, SrcData.GetBaseIndex(), ParamSrcData);
- - RHISetUAVParameter(ComputeShaderRHI, DstData.GetBaseIndex(), ParamDstData);
- + RHICmdList.SetShaderResourceViewParameter(ComputeShaderRHI, SrcData.GetBaseIndex(), ParamSrcData);
- + RHICmdList.SetUAVParameter(ComputeShaderRHI, DstData.GetBaseIndex(), ParamDstData);
- }
- - void UnsetParameters()
- + void UnsetParameters(FRHICommandList & RHICmdList)
- {
- FComputeShaderRHIParamRef ComputeShaderRHI = GetComputeShader();
- - RHISetShaderResourceViewParameter(ComputeShaderRHI, SrcData.GetBaseIndex(), FShaderResourceViewRHIParamRef());
- - RHISetUAVParameter(ComputeShaderRHI, DstData.GetBaseIndex(), FUnorderedAccessViewRHIParamRef());
- + RHICmdList.SetShaderResourceViewParameter(ComputeShaderRHI, SrcData.GetBaseIndex(), FShaderResourceViewRHIParamRef());
- + RHICmdList.SetUAVParameter(ComputeShaderRHI, DstData.GetBaseIndex(), FUnorderedAccessViewRHIParamRef());
- }
- virtual bool Serialize(FArchive& Ar)
- @@ -285,8 +287,8 @@ public:
- virtual void InitRHI()
- {
- FVertexDeclarationElementList Elements;
- - Elements.Add(FVertexElement(0, STRUCT_OFFSET(FQuadVertex, Position), VET_Float4, 0));
- - Elements.Add(FVertexElement(0, STRUCT_OFFSET(FQuadVertex, UV), VET_Float2, 1));
- + Elements.Add(FVertexElement(0, STRUCT_OFFSET(FQuadVertex, Position), VET_Float4, 0, sizeof(FQuadVertex)));
- + Elements.Add(FVertexElement(0, STRUCT_OFFSET(FQuadVertex, UV), VET_Float2, 1, sizeof(FQuadVertex)));
- VertexDeclarationRHI = RHICreateVertexDeclaration(Elements);
- }
- @@ -371,6 +373,7 @@ public:
- }
- void SetParameters(
- + FRHICommandList & RHICmdList,
- uint32 ParamActualDim,
- uint32 ParamInWidth,
- uint32 ParamOutWidth,
- @@ -381,31 +384,32 @@ public:
- {
- FPixelShaderRHIParamRef PixelShaderRHI = GetPixelShader();
- - SetShaderValue(PixelShaderRHI, ActualDim, ParamActualDim);
- - SetShaderValue(PixelShaderRHI, InWidth, ParamInWidth);
- - SetShaderValue(PixelShaderRHI, OutWidth, ParamOutWidth);
- - SetShaderValue(PixelShaderRHI, OutHeight, ParamOutHeight);
- - SetShaderValue(PixelShaderRHI, DtxAddressOffset, ParamDtxAddressOffset);
- - SetShaderValue(PixelShaderRHI, DtyAddressOffset, ParamDtyAddressOffset);
- + SetShaderValue(RHICmdList, PixelShaderRHI, ActualDim, ParamActualDim);
- + SetShaderValue(RHICmdList, PixelShaderRHI, InWidth, ParamInWidth);
- + SetShaderValue(RHICmdList, PixelShaderRHI, OutWidth, ParamOutWidth);
- + SetShaderValue(RHICmdList, PixelShaderRHI, OutHeight, ParamOutHeight);
- + SetShaderValue(RHICmdList, PixelShaderRHI, DtxAddressOffset, ParamDtxAddressOffset);
- + SetShaderValue(RHICmdList, PixelShaderRHI, DtyAddressOffset, ParamDtyAddressOffset);
- }
- void SetParameters(
- + FRHICommandList & RHICmdList,
- const FUpdateDisplacementUniformBufferRef& UniformBuffer,
- FShaderResourceViewRHIRef ParamInputDxyz
- )
- {
- FPixelShaderRHIParamRef PixelShaderRHI = GetPixelShader();
- - SetUniformBufferParameter(PixelShaderRHI, GetUniformBufferParameter<FUpdateDisplacementUniformParameters>(), UniformBuffer);
- + SetUniformBufferParameter(RHICmdList, PixelShaderRHI, GetUniformBufferParameter<FUpdateDisplacementUniformParameters>(), UniformBuffer);
- - RHISetShaderResourceViewParameter(PixelShaderRHI, InputDxyz.GetBaseIndex(), ParamInputDxyz);
- + RHICmdList.SetShaderResourceViewParameter(PixelShaderRHI, InputDxyz.GetBaseIndex(), ParamInputDxyz);
- }
- - void UnsetParameters()
- + void UnsetParameters(FRHICommandList & RHICmdList)
- {
- FPixelShaderRHIParamRef PixelShaderRHI = GetPixelShader();
- - RHISetShaderResourceViewParameter(PixelShaderRHI, InputDxyz.GetBaseIndex(), FShaderResourceViewRHIParamRef());
- + RHICmdList.SetShaderResourceViewParameter(PixelShaderRHI, InputDxyz.GetBaseIndex(), FShaderResourceViewRHIParamRef());
- }
- virtual bool Serialize(FArchive& Ar)
- @@ -479,6 +483,7 @@ public:
- }
- void SetParameters(
- + FRHICommandList & RHICmdList,
- uint32 ParamActualDim,
- uint32 ParamInWidth,
- uint32 ParamOutWidth,
- @@ -489,28 +494,29 @@ public:
- {
- FPixelShaderRHIParamRef PixelShaderRHI = GetPixelShader();
- - SetShaderValue(PixelShaderRHI, ActualDim, ParamActualDim);
- - SetShaderValue(PixelShaderRHI, InWidth, ParamInWidth);
- - SetShaderValue(PixelShaderRHI, OutWidth, ParamOutWidth);
- - SetShaderValue(PixelShaderRHI, OutHeight, ParamOutHeight);
- - SetShaderValue(PixelShaderRHI, DtxAddressOffset, ParamDtxAddressOffset);
- - SetShaderValue(PixelShaderRHI, DtyAddressOffset, ParamDtyAddressOffset);
- + SetShaderValue(RHICmdList, PixelShaderRHI, ActualDim, ParamActualDim);
- + SetShaderValue(RHICmdList, PixelShaderRHI, InWidth, ParamInWidth);
- + SetShaderValue(RHICmdList, PixelShaderRHI, OutWidth, ParamOutWidth);
- + SetShaderValue(RHICmdList, PixelShaderRHI, OutHeight, ParamOutHeight);
- + SetShaderValue(RHICmdList, PixelShaderRHI, DtxAddressOffset, ParamDtxAddressOffset);
- + SetShaderValue(RHICmdList, PixelShaderRHI, DtyAddressOffset, ParamDtyAddressOffset);
- }
- void SetParameters(
- + FRHICommandList & RHICmdList,
- const FUpdateDisplacementUniformBufferRef& UniformBuffer,
- FTextureRHIParamRef DisplacementMapRHI
- )
- {
- FPixelShaderRHIParamRef PixelShaderRHI = GetPixelShader();
- - SetUniformBufferParameter(PixelShaderRHI, GetUniformBufferParameter<FUpdateDisplacementUniformParameters>(), UniformBuffer);
- + SetUniformBufferParameter(RHICmdList, PixelShaderRHI, GetUniformBufferParameter<FUpdateDisplacementUniformParameters>(), UniformBuffer);
- FSamplerStateRHIParamRef SamplerStateLinear = TStaticSamplerState<SF_Bilinear, AM_Clamp, AM_Clamp, AM_Clamp>::GetRHI();
- - SetTextureParameter(PixelShaderRHI, DisplacementMap, DisplacementMapSampler, SamplerStateLinear, DisplacementMapRHI);
- + SetTextureParameter(RHICmdList, PixelShaderRHI, DisplacementMap, DisplacementMapSampler, SamplerStateLinear, DisplacementMapRHI);
- }
- - void UnsetParameters() {}
- + void UnsetParameters(FRHICommandList & RHICmdList) {}
- virtual bool Serialize(FArchive& Ar)
- {
- diff --git "a/C:\\Users\\paul\\Desktop\\VaOceanPlugin/Private/VaOceanPlugin.cpp" "b/.\\Plugins\\VaOcean\\Source\\VaOceanPlugin/Private/VaOceanPlugin.cpp"
- index cae1ab2..1f3c42e 100644
- --- "a/C:\\Users\\paul\\Desktop\\VaOceanPlugin/Private/VaOceanPlugin.cpp"
- +++ "b/.\\Plugins\\VaOcean\\Source\\VaOceanPlugin/Private/VaOceanPlugin.cpp"
- @@ -1,7 +1,6 @@
- // Copyright 2014 Vladimir Alyamkin. All Rights Reserved.
- #include "VaOceanPluginPrivatePCH.h"
- -#include "VaOceanPlugin.generated.inl"
- class FVaOceanPlugin : public IVaOceanPlugin
- {
- diff --git "a/C:\\Users\\paul\\Desktop\\VaOceanPlugin/Private/VaOceanPluginPrivatePCH.h" "b/.\\Plugins\\VaOcean\\Source\\VaOceanPlugin/Private/VaOceanPluginPrivatePCH.h"
- index dae2a93..abcf58f 100644
- --- "a/C:\\Users\\paul\\Desktop\\VaOceanPlugin/Private/VaOceanPluginPrivatePCH.h"
- +++ "b/.\\Plugins\\VaOcean\\Source\\VaOceanPlugin/Private/VaOceanPluginPrivatePCH.h"
- @@ -6,7 +6,9 @@
- #include "Engine.h"
- #include "UniformBuffer.h"
- #include "ShaderParameters.h"
- +#include "ShaderParameterUtils.h"
- #include "GlobalShader.h"
- +#include "RHIStaticStates.h"
- // You should place include statements to your module's private header files here. You only need to
- // add includes for headers that are used in most of your module's source files though.
- diff --git "a/C:\\Users\\paul\\Desktop\\VaOceanPlugin/Private/VaOceanRadixFFT.cpp" "b/.\\Plugins\\VaOcean\\Source\\VaOceanPlugin/Private/VaOceanRadixFFT.cpp"
- index a7beb6e..9c43032 100644
- --- "a/C:\\Users\\paul\\Desktop\\VaOceanPlugin/Private/VaOceanRadixFFT.cpp"
- +++ "b/.\\Plugins\\VaOcean\\Source\\VaOceanPlugin/Private/VaOceanRadixFFT.cpp"
- @@ -2,7 +2,9 @@
- #include "VaOceanPluginPrivatePCH.h"
- -void Radix008A(FRadixPlan512* Plan,
- +void Radix008A(
- + FRHICommandListImmediate & RHICmdList,
- + FRadixPlan512* Plan,
- uint32 ParamSet,
- FUnorderedAccessViewRHIRef pUAV_Dst,
- FShaderResourceViewRHIRef pSRV_Src,
- @@ -22,31 +24,31 @@ void Radix008A(FRadixPlan512* Plan,
- Parameters.PhaseBase = Plan->PerFrame[ParamSet].PhaseBase;
- FRadixFFTUniformBufferRef UniformBuffer =
- - FRadixFFTUniformBufferRef::CreateUniformBufferImmediate(Parameters, UniformBuffer_SingleUse);
- + FRadixFFTUniformBufferRef::CreateUniformBufferImmediate(Parameters, EUniformBufferUsage::UniformBuffer_SingleFrame);
- if (istride > 1)
- {
- TShaderMapRef<FRadix008A_CS> Radix008A_CS(GetGlobalShaderMap());
- - RHISetComputeShader(Radix008A_CS->GetComputeShader());
- + RHICmdList.SetComputeShader(Radix008A_CS->GetComputeShader());
- - Radix008A_CS->SetParameters(UniformBuffer);
- - Radix008A_CS->SetParameters(pSRV_Src, pUAV_Dst);
- + Radix008A_CS->SetParameters(RHICmdList, UniformBuffer);
- + Radix008A_CS->SetParameters(RHICmdList, pSRV_Src, pUAV_Dst);
- - RHIDispatchComputeShader(grid, 1, 1);
- + RHICmdList.DispatchComputeShader(grid, 1, 1);
- - Radix008A_CS->UnsetParameters();
- + Radix008A_CS->UnsetParameters(RHICmdList);
- }
- else
- {
- TShaderMapRef<FRadix008A_CS2> Radix008A_CS2(GetGlobalShaderMap());
- - RHISetComputeShader(Radix008A_CS2->GetComputeShader());
- + RHICmdList.SetComputeShader(Radix008A_CS2->GetComputeShader());
- - Radix008A_CS2->SetParameters(UniformBuffer);
- - Radix008A_CS2->SetParameters(pSRV_Src, pUAV_Dst);
- + Radix008A_CS2->SetParameters(RHICmdList, UniformBuffer);
- + Radix008A_CS2->SetParameters(RHICmdList, pSRV_Src, pUAV_Dst);
- - RHIDispatchComputeShader(grid, 1, 1);
- + RHICmdList.DispatchComputeShader(grid, 1, 1);
- - Radix008A_CS2->UnsetParameters();
- + Radix008A_CS2->UnsetParameters(RHICmdList);
- }
- }
- @@ -96,8 +98,11 @@ void RadixCreatePlan(FRadixPlan512* Plan, uint32 Slices)
- // Temp buffers
- uint32 BytesPerElement = sizeof(float) * 2;
- - uint32 NumElements = (512 * Plan->Slices) * 512;
- - Plan->pBuffer_Tmp = RHICreateStructuredBuffer(BytesPerElement, BytesPerElement * NumElements, NULL, (BUF_UnorderedAccess | BUF_ShaderResource));
- + uint32 NumElements = (512 * Plan->Slices) * 512;
- + FRHIResourceCreateInfo info;
- + info.BulkData = nullptr;
- + info.ResourceArray = nullptr;
- + Plan->pBuffer_Tmp = RHICreateStructuredBuffer(BytesPerElement, BytesPerElement * NumElements, (BUF_UnorderedAccess | BUF_ShaderResource), info);
- Plan->pUAV_Tmp = RHICreateUnorderedAccessView(Plan->pBuffer_Tmp, false, false);
- Plan->pSRV_Tmp = RHICreateShaderResourceView(Plan->pBuffer_Tmp);
- }
- @@ -109,7 +114,9 @@ void RadixDestroyPlan(FRadixPlan512* Plan)
- Plan->pSRV_Tmp.SafeRelease();
- }
- -void RadixCompute(FRadixPlan512* Plan,
- +void RadixCompute(
- + FRHICommandListImmediate & RHICmdList,
- + FRadixPlan512* Plan,
- FUnorderedAccessViewRHIRef pUAV_Dst,
- FShaderResourceViewRHIRef pSRV_Dst,
- FShaderResourceViewRHIRef pSRV_Src)
- @@ -121,20 +128,20 @@ void RadixCompute(FRadixPlan512* Plan,
- FShaderResourceViewRHIRef pSRV_Tmp = Plan->pSRV_Tmp;
- istride /= 8;
- - Radix008A(Plan, 0, pUAV_Tmp, pSRV_Src, thread_count, istride);
- + Radix008A(RHICmdList, Plan, 0, pUAV_Tmp, pSRV_Src, thread_count, istride);
- istride /= 8;
- - Radix008A(Plan, 1, pUAV_Dst, pSRV_Tmp, thread_count, istride);
- + Radix008A(RHICmdList, Plan, 1, pUAV_Dst, pSRV_Tmp, thread_count, istride);
- istride /= 8;
- - Radix008A(Plan, 2, pUAV_Tmp, pSRV_Dst, thread_count, istride);
- + Radix008A(RHICmdList, Plan, 2, pUAV_Tmp, pSRV_Dst, thread_count, istride);
- istride /= 8;
- - Radix008A(Plan, 3, pUAV_Dst, pSRV_Tmp, thread_count, istride);
- + Radix008A(RHICmdList, Plan, 3, pUAV_Dst, pSRV_Tmp, thread_count, istride);
- istride /= 8;
- - Radix008A(Plan, 4, pUAV_Tmp, pSRV_Dst, thread_count, istride);
- + Radix008A(RHICmdList, Plan, 4, pUAV_Tmp, pSRV_Dst, thread_count, istride);
- istride /= 8;
- - Radix008A(Plan, 5, pUAV_Dst, pSRV_Tmp, thread_count, istride);
- + Radix008A(RHICmdList, Plan, 5, pUAV_Dst, pSRV_Tmp, thread_count, istride);
- }
- diff --git "a/C:\\Users\\paul\\Desktop\\VaOceanPlugin/Private/VaOceanSimulatorComponent.cpp" "b/.\\Plugins\\VaOcean\\Source\\VaOceanPlugin/Private/VaOceanSimulatorComponent.cpp"
- index dc4a17d..555243f 100644
- --- "a/C:\\Users\\paul\\Desktop\\VaOceanPlugin/Private/VaOceanSimulatorComponent.cpp"
- +++ "b/.\\Plugins\\VaOcean\\Source\\VaOceanPlugin/Private/VaOceanSimulatorComponent.cpp"
- @@ -189,7 +189,9 @@ void UVaOceanSimulatorComponent::InitHeightMap(FOceanData& Params, TResourceArra
- void UVaOceanSimulatorComponent::CreateBufferAndUAV(FResourceArrayInterface* Data, uint32 byte_width, uint32 byte_stride,
- FStructuredBufferRHIRef* ppBuffer, FUnorderedAccessViewRHIRef* ppUAV, FShaderResourceViewRHIRef* ppSRV)
- {
- - *ppBuffer = RHICreateStructuredBuffer(byte_stride, Data->GetResourceDataSize(), Data, (BUF_UnorderedAccess | BUF_ShaderResource));
- + FRHIResourceCreateInfo info;
- + info.ResourceArray = Data;
- + *ppBuffer = RHICreateStructuredBuffer(byte_stride, Data->GetResourceDataSize(), (BUF_UnorderedAccess | BUF_ShaderResource), info);
- *ppUAV = RHICreateUnorderedAccessView(*ppBuffer, false, false);
- *ppSRV = RHICreateShaderResourceView(*ppBuffer);
- }
- @@ -245,24 +247,24 @@ void UVaOceanSimulatorComponent::UpdateDisplacementMap(float WorldTime)
- Parameters.Time = PerFrameParams.g_Time;
- FUpdateSpectrumUniformBufferRef UniformBuffer =
- - FUpdateSpectrumUniformBufferRef::CreateUniformBufferImmediate(Parameters, UniformBuffer_SingleUse);
- + FUpdateSpectrumUniformBufferRef::CreateUniformBufferImmediate(Parameters, UniformBuffer_SingleFrame);
- TShaderMapRef<FUpdateSpectrumCS> UpdateSpectrumCS(GetGlobalShaderMap());
- - RHISetComputeShader(UpdateSpectrumCS->GetComputeShader());
- + RHICmdList.SetComputeShader(UpdateSpectrumCS->GetComputeShader());
- - UpdateSpectrumCS->SetParameters(ImmutableParams.g_ActualDim,
- + UpdateSpectrumCS->SetParameters(RHICmdList, ImmutableParams.g_ActualDim,
- ImmutableParams.g_InWidth, ImmutableParams.g_OutWidth, ImmutableParams.g_OutHeight,
- ImmutableParams.g_DtxAddressOffset, ImmutableParams.g_DtyAddressOffset);
- - UpdateSpectrumCS->SetParameters(UniformBuffer, PerFrameParams.m_pSRV_H0, PerFrameParams.m_pSRV_Omega);
- - UpdateSpectrumCS->SetOutput(PerFrameParams.m_pUAV_Ht);
- + UpdateSpectrumCS->SetParameters(RHICmdList, UniformBuffer, PerFrameParams.m_pSRV_H0, PerFrameParams.m_pSRV_Omega);
- + UpdateSpectrumCS->SetOutput(RHICmdList, PerFrameParams.m_pUAV_Ht);
- uint32 group_count_x = (ImmutableParams.g_ActualDim + BLOCK_SIZE_X - 1) / BLOCK_SIZE_X;
- uint32 group_count_y = (ImmutableParams.g_ActualDim + BLOCK_SIZE_Y - 1) / BLOCK_SIZE_Y;
- - RHIDispatchComputeShader(group_count_x, group_count_y, 1);
- + RHICmdList.DispatchComputeShader(group_count_x, group_count_y, 1);
- - UpdateSpectrumCS->UnsetParameters();
- - UpdateSpectrumCS->UnbindBuffers();
- + UpdateSpectrumCS->UnsetParameters(RHICmdList);
- + UpdateSpectrumCS->UnbindBuffers(RHICmdList);
- });
- // ------------------------------------ Perform FFT -------------------------------------------
- @@ -273,7 +275,7 @@ void UVaOceanSimulatorComponent::UpdateDisplacementMap(float WorldTime)
- FShaderResourceViewRHIRef, m_pSRV_Dxyz, m_pSRV_Dxyz,
- FShaderResourceViewRHIRef, m_pSRV_Ht, m_pSRV_Ht,
- {
- - RadixCompute(pPlan, m_pUAV_Dxyz, m_pSRV_Dxyz, m_pSRV_Ht);
- + RadixCompute(RHICmdList, pPlan, m_pUAV_Dxyz, m_pSRV_Dxyz, m_pSRV_Ht);
- });
- // --------------------------------- Wrap Dx, Dy and Dz ---------------------------------------
- @@ -296,26 +298,26 @@ void UVaOceanSimulatorComponent::UpdateDisplacementMap(float WorldTime)
- Parameters.GridLen = PerFrameParams.g_GridLen;
- FUpdateDisplacementUniformBufferRef UniformBuffer =
- - FUpdateDisplacementUniformBufferRef::CreateUniformBufferImmediate(Parameters, UniformBuffer_SingleUse);
- + FUpdateDisplacementUniformBufferRef::CreateUniformBufferImmediate(Parameters, UniformBuffer_SingleFrame);
- - RHISetRenderTarget(TextureRenderTarget->GetRenderTargetTexture(), NULL);
- + SetRenderTarget(RHICmdList, TextureRenderTarget->GetRenderTargetTexture(), NULL);
- //RHIClear(true, FLinearColor::Black, false, 0.f, false, 0, FIntRect());
- TShaderMapRef<FQuadVS> QuadVS(GetGlobalShaderMap());
- TShaderMapRef<FUpdateDisplacementPS> UpdateDisplacementPS(GetGlobalShaderMap());
- static FGlobalBoundShaderState UpdateDisplacementBoundShaderState;
- - SetGlobalBoundShaderState(UpdateDisplacementBoundShaderState, GQuadVertexDeclaration.VertexDeclarationRHI, *QuadVS, *UpdateDisplacementPS);
- + SetGlobalBoundShaderState(RHICmdList, UpdateDisplacementBoundShaderState, GQuadVertexDeclaration.VertexDeclarationRHI, *QuadVS, *UpdateDisplacementPS);
- - UpdateDisplacementPS->SetParameters(ImmutableParams.g_ActualDim,
- + UpdateDisplacementPS->SetParameters(RHICmdList, ImmutableParams.g_ActualDim,
- ImmutableParams.g_InWidth, ImmutableParams.g_OutWidth, ImmutableParams.g_OutHeight,
- ImmutableParams.g_DtxAddressOffset, ImmutableParams.g_DtyAddressOffset);
- - UpdateDisplacementPS->SetParameters(UniformBuffer, PerFrameParams.g_InputDxyz);
- + UpdateDisplacementPS->SetParameters(RHICmdList, UniformBuffer, PerFrameParams.g_InputDxyz);
- - RHIDrawPrimitiveUP(PT_TriangleStrip, 2, PerFrameParams.m_pQuadVB, sizeof(PerFrameParams.m_pQuadVB[0]));
- + DrawPrimitiveUP(RHICmdList, PT_TriangleStrip, 2, PerFrameParams.m_pQuadVB, sizeof(PerFrameParams.m_pQuadVB[0]));
- - UpdateDisplacementPS->UnsetParameters();
- + UpdateDisplacementPS->UnsetParameters(RHICmdList);
- });
- // ----------------------------------- Generate Normal ----------------------------------------
- @@ -329,7 +331,7 @@ void UVaOceanSimulatorComponent::UpdateDisplacementMap(float WorldTime)
- ENQUEUE_UNIQUE_RENDER_COMMAND_FOURPARAMETER(
- GenGradientFoldingPSCommand,
- FTextureRenderTargetResource*, TextureRenderTarget, GradientRenderTarget,
- - FUpdateSpectrumCSImmutable, ImmutableParams, UpdateSpectrumCSImmutableParams, // We're using the same params as for CS
- + FUpdateSpectrumCSImmutable, ImmutableParams, UpdateSpectrumCSImmutableParams,
- FGenGradientFoldingPSPerFrame, PerFrameParams, GenGradientFoldingPSPerFrameParams,
- FTextureRenderTargetResource*, DisplacementRenderTarget, DisplacementRenderTarget,
- {
- @@ -338,26 +340,26 @@ void UVaOceanSimulatorComponent::UpdateDisplacementMap(float WorldTime)
- Parameters.GridLen = PerFrameParams.g_GridLen;
- FUpdateDisplacementUniformBufferRef UniformBuffer =
- - FUpdateDisplacementUniformBufferRef::CreateUniformBufferImmediate(Parameters, UniformBuffer_SingleUse);
- + FUpdateDisplacementUniformBufferRef::CreateUniformBufferImmediate(Parameters, UniformBuffer_SingleFrame);
- - RHISetRenderTarget(TextureRenderTarget->GetRenderTargetTexture(), NULL);
- + SetRenderTarget(RHICmdList, TextureRenderTarget->GetRenderTargetTexture(), NULL);
- //RHIClear(true, FLinearColor::Black, false, 0.f, false, 0, FIntRect());
- TShaderMapRef<FQuadVS> QuadVS(GetGlobalShaderMap());
- TShaderMapRef<FGenGradientFoldingPS> GenGradientFoldingPS(GetGlobalShaderMap());
- static FGlobalBoundShaderState UpdateDisplacementBoundShaderState;
- - SetGlobalBoundShaderState(UpdateDisplacementBoundShaderState, GQuadVertexDeclaration.VertexDeclarationRHI, *QuadVS, *GenGradientFoldingPS);
- + SetGlobalBoundShaderState(RHICmdList, UpdateDisplacementBoundShaderState, GQuadVertexDeclaration.VertexDeclarationRHI, *QuadVS, *GenGradientFoldingPS);
- - GenGradientFoldingPS->SetParameters(ImmutableParams.g_ActualDim,
- + GenGradientFoldingPS->SetParameters(RHICmdList, ImmutableParams.g_ActualDim,
- ImmutableParams.g_InWidth, ImmutableParams.g_OutWidth, ImmutableParams.g_OutHeight,
- ImmutableParams.g_DtxAddressOffset, ImmutableParams.g_DtyAddressOffset);
- - GenGradientFoldingPS->SetParameters(UniformBuffer, DisplacementRenderTarget->TextureRHI);
- + GenGradientFoldingPS->SetParameters(RHICmdList, UniformBuffer, DisplacementRenderTarget->TextureRHI);
- - RHIDrawPrimitiveUP(PT_TriangleStrip, 2, PerFrameParams.m_pQuadVB, sizeof(PerFrameParams.m_pQuadVB[0]));
- + DrawPrimitiveUP(RHICmdList, PT_TriangleStrip, 2, PerFrameParams.m_pQuadVB, sizeof(PerFrameParams.m_pQuadVB[0]));
- - GenGradientFoldingPS->UnsetParameters();
- + GenGradientFoldingPS->UnsetParameters(RHICmdList);
- });
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement