diff --git a/Samples/Desktop/D3D12Raytracing/src/D3D12RaytracingRealTimeDenoisedAmbientOcclusion/RTAO/RTAO.cpp b/Samples/Desktop/D3D12Raytracing/src/D3D12RaytracingRealTimeDenoisedAmbientOcclusion/RTAO/RTAO.cpp index b02d73630..646f72e44 100644 --- a/Samples/Desktop/D3D12Raytracing/src/D3D12RaytracingRealTimeDenoisedAmbientOcclusion/RTAO/RTAO.cpp +++ b/Samples/Desktop/D3D12Raytracing/src/D3D12RaytracingRealTimeDenoisedAmbientOcclusion/RTAO/RTAO.cpp @@ -448,6 +448,7 @@ void RTAO::CreateSamplesRNG() m_samplesGPUBuffer[i].value = XMFLOAT2(p.x * 0.5f + 0.5f, p.y * 0.5f + 0.5f); m_hemisphereSamplesGPUBuffer[i].value = p; } + m_numAOSamplesUploadFrames = m_deviceResources->GetBackBufferCount(); } void RTAO::GetRayGenParameters(bool* isCheckerboardSamplingEnabled, bool* checkerboardLoadEvenPixels) @@ -547,8 +548,11 @@ void RTAO::Run( } // Copy dynamic buffers to GPU. + UpdateConstantBuffer(frameIndex); + + if (m_numAOSamplesUploadFrames) { - UpdateConstantBuffer(frameIndex); + m_numAOSamplesUploadFrames--; m_hemisphereSamplesGPUBuffer.CopyStagingToGpu(frameIndex); } diff --git a/Samples/Desktop/D3D12Raytracing/src/D3D12RaytracingRealTimeDenoisedAmbientOcclusion/RTAO/RTAO.h b/Samples/Desktop/D3D12Raytracing/src/D3D12RaytracingRealTimeDenoisedAmbientOcclusion/RTAO/RTAO.h index 7bc67fba0..0e17cc347 100644 --- a/Samples/Desktop/D3D12Raytracing/src/D3D12RaytracingRealTimeDenoisedAmbientOcclusion/RTAO/RTAO.h +++ b/Samples/Desktop/D3D12Raytracing/src/D3D12RaytracingRealTimeDenoisedAmbientOcclusion/RTAO/RTAO.h @@ -108,6 +108,7 @@ class RTAO StructuredBuffer m_hemisphereSamplesGPUBuffer; BOOL m_isRecreateAOSamplesRequested = true; + UINT m_numAOSamplesUploadFrames = 0; UINT m_numAORayGeometryHits; bool m_checkerboardGenerateRaysForEvenPixels = false; diff --git a/Samples/Desktop/D3D12Raytracing/src/D3D12RaytracingRealTimeDenoisedAmbientOcclusion/SampleCore/Shaders/util/GenerateGrassStrawsCS.hlsl b/Samples/Desktop/D3D12Raytracing/src/D3D12RaytracingRealTimeDenoisedAmbientOcclusion/SampleCore/Shaders/util/GenerateGrassStrawsCS.hlsl index 911bd15b6..9af105f63 100644 --- a/Samples/Desktop/D3D12Raytracing/src/D3D12RaytracingRealTimeDenoisedAmbientOcclusion/SampleCore/Shaders/util/GenerateGrassStrawsCS.hlsl +++ b/Samples/Desktop/D3D12Raytracing/src/D3D12RaytracingRealTimeDenoisedAmbientOcclusion/SampleCore/Shaders/util/GenerateGrassStrawsCS.hlsl @@ -194,6 +194,9 @@ void main(uint2 DTid : SV_DispatchThreadID) { VertexPositionNormalTextureTangent vertex; vertex.position = 0; + vertex.normal = 0; + vertex.textureCoordinate = 0; + vertex.tangent = 0; uint threadID = DTid.x + DTid.y * cb.p.maxPatchDim.x; uint baseVertexID = threadID * N_GRASS_VERTICES;