Skip to content

Commit f46ff22

Browse files
Gracefully handle dynamic buffer map failures
1 parent 6ce3727 commit f46ff22

File tree

10 files changed

+87
-68
lines changed

10 files changed

+87
-68
lines changed

Components/src/BoundBoxRenderer.cpp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -214,11 +214,13 @@ void BoundBoxRenderer::Prepare(IDeviceContext* pContext, const RenderAttribs& At
214214
}
215215
else
216216
{
217-
MapHelper<BoundBoxShaderAttribs> BBAttribs{pContext, m_RenderAttribsCB, MAP_WRITE, MAP_FLAG_DISCARD};
218-
WriteShaderMatrix(&BBAttribs->Transform, *Attribs.BoundBoxTransform, !m_PackMatrixRowMajor);
219-
BBAttribs->Color = Attribs.Color != nullptr ? *Attribs.Color : float4{1.0, 1.0, 1.0, 1.0};
220-
BBAttribs->PatternLength = Attribs.PatternLength;
221-
BBAttribs->PatternMask = Attribs.PatternMask;
217+
if (MapHelper<BoundBoxShaderAttribs> BBAttribs{pContext, m_RenderAttribsCB, MAP_WRITE, MAP_FLAG_DISCARD})
218+
{
219+
WriteShaderMatrix(&BBAttribs->Transform, *Attribs.BoundBoxTransform, !m_PackMatrixRowMajor);
220+
BBAttribs->Color = Attribs.Color != nullptr ? *Attribs.Color : float4{1.0, 1.0, 1.0, 1.0};
221+
BBAttribs->PatternLength = Attribs.PatternLength;
222+
BBAttribs->PatternMask = Attribs.PatternMask;
223+
}
222224
}
223225
}
224226

Components/src/CoordinateGridRenderer.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,10 @@ void CoordinateGridRenderer::Render(const RenderAttributes& RenderAttribs)
8080
m_Resources.Insert(RESOURCE_IDENTIFIER_CAMERA_CONSTANT_BUFFER, pBuffer);
8181
}
8282

83-
MapHelper<HLSL::CameraAttribs> CameraAttibs{RenderAttribs.pDeviceContext, m_Resources[RESOURCE_IDENTIFIER_CAMERA_CONSTANT_BUFFER], MAP_WRITE, MAP_FLAG_DISCARD};
84-
*CameraAttibs = *RenderAttribs.pCamera;
83+
if (MapHelper<HLSL::CameraAttribs> CameraAttibs{RenderAttribs.pDeviceContext, m_Resources[RESOURCE_IDENTIFIER_CAMERA_CONSTANT_BUFFER], MAP_WRITE, MAP_FLAG_DISCARD})
84+
{
85+
*CameraAttibs = *RenderAttribs.pCamera;
86+
}
8587
}
8688
else
8789
{

Components/src/EnvMapRenderer.cpp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -237,11 +237,13 @@ void EnvMapRenderer::Prepare(IDeviceContext* pContext,
237237
}
238238
else
239239
{
240-
MapHelper<EnvMapShaderAttribs> EnvMapAttribs{pContext, m_RenderAttribsCB, MAP_WRITE, MAP_FLAG_DISCARD};
241-
EnvMapAttribs->ToneMapping = ToneMapping;
242-
EnvMapAttribs->AverageLogLum = Attribs.AverageLogLum;
243-
EnvMapAttribs->MipLevel = Attribs.MipLevel;
244-
EnvMapAttribs->Alpha = Attribs.Alpha;
240+
if (MapHelper<EnvMapShaderAttribs> EnvMapAttribs{pContext, m_RenderAttribsCB, MAP_WRITE, MAP_FLAG_DISCARD})
241+
{
242+
EnvMapAttribs->ToneMapping = ToneMapping;
243+
EnvMapAttribs->AverageLogLum = Attribs.AverageLogLum;
244+
EnvMapAttribs->MipLevel = Attribs.MipLevel;
245+
EnvMapAttribs->Alpha = Attribs.Alpha;
246+
}
245247
}
246248
}
247249

Components/src/ShadowMapManager.cpp

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -556,25 +556,27 @@ void ShadowMapManager::ConvertToFilterable(IDeviceContext* pCtx, const ShadowMap
556556
float fEVSMNegativeExponent;
557557
int Is32BitEVSM;
558558
};
559-
MapHelper<ConversionAttribs> pAttribs(pCtx, m_pConversionAttribsBuffer, MAP_WRITE, MAP_FLAG_DISCARD);
560-
pAttribs->iCascade = i;
561-
if (ShadowAttribs.iFixedFilterSize > 0)
559+
if (MapHelper<ConversionAttribs> pAttribs{pCtx, m_pConversionAttribsBuffer, MAP_WRITE, MAP_FLAG_DISCARD})
562560
{
563-
pAttribs->fHorzFilterRadius = static_cast<float>(iFilterRadius);
564-
pAttribs->fVertFilterRadius = static_cast<float>(iFilterRadius);
565-
}
566-
else
567-
{
568-
const auto& Cascade = ShadowAttribs.Cascades[i];
569-
float fNDCtoUVScale = 0.5f;
570-
float fFilterWidth = ShadowAttribs.fFilterWorldSize * Cascade.f4LightSpaceScale.x * fNDCtoUVScale;
571-
float fFilterHeight = ShadowAttribs.fFilterWorldSize * Cascade.f4LightSpaceScale.y * fNDCtoUVScale;
572-
pAttribs->fHorzFilterRadius = fFilterWidth / 2.f * static_cast<float>(ShadowMapDesc.Width);
573-
pAttribs->fVertFilterRadius = fFilterHeight / 2.f * static_cast<float>(ShadowMapDesc.Height);
561+
pAttribs->iCascade = i;
562+
if (ShadowAttribs.iFixedFilterSize > 0)
563+
{
564+
pAttribs->fHorzFilterRadius = static_cast<float>(iFilterRadius);
565+
pAttribs->fVertFilterRadius = static_cast<float>(iFilterRadius);
566+
}
567+
else
568+
{
569+
const auto& Cascade = ShadowAttribs.Cascades[i];
570+
float fNDCtoUVScale = 0.5f;
571+
float fFilterWidth = ShadowAttribs.fFilterWorldSize * Cascade.f4LightSpaceScale.x * fNDCtoUVScale;
572+
float fFilterHeight = ShadowAttribs.fFilterWorldSize * Cascade.f4LightSpaceScale.y * fNDCtoUVScale;
573+
pAttribs->fHorzFilterRadius = fFilterWidth / 2.f * static_cast<float>(ShadowMapDesc.Width);
574+
pAttribs->fVertFilterRadius = fFilterHeight / 2.f * static_cast<float>(ShadowMapDesc.Height);
575+
}
576+
pAttribs->fEVSMPositiveExponent = ShadowAttribs.fEVSMPositiveExponent;
577+
pAttribs->fEVSMNegativeExponent = ShadowAttribs.fEVSMNegativeExponent;
578+
pAttribs->Is32BitEVSM = ShadowAttribs.bIs32BitEVSM;
574579
}
575-
pAttribs->fEVSMPositiveExponent = ShadowAttribs.fEVSMPositiveExponent;
576-
pAttribs->fEVSMNegativeExponent = ShadowAttribs.fEVSMNegativeExponent;
577-
pAttribs->Is32BitEVSM = ShadowAttribs.bIs32BitEVSM;
578580
}
579581
pCtx->SetPipelineState(Tech.PSO);
580582
pCtx->CommitShaderResources(Tech.SRB, RESOURCE_STATE_TRANSITION_MODE_TRANSITION);

Components/src/VectorFieldRenderer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,8 +207,8 @@ void VectorFieldRenderer::Render(const RenderAttribs& Attribs)
207207

208208
m_pVectorFieldVar->Set(Attribs.pVectorField);
209209

210+
if (MapHelper<HLSL::VectorFieldRenderAttribs> AttribsData{Attribs.pContext, m_RenderAttribsCB, MAP_WRITE, MAP_FLAG_DISCARD})
210211
{
211-
MapHelper<HLSL::VectorFieldRenderAttribs> AttribsData{Attribs.pContext, m_RenderAttribsCB, MAP_WRITE, MAP_FLAG_DISCARD};
212212
AttribsData->ScaleAndBias = {Attribs.Scale, Attribs.Bias};
213213
AttribsData->f2GridSize = {static_cast<float>(Attribs.GridSize.x), static_cast<float>(Attribs.GridSize.y)};
214214
AttribsData->u2GridSize = {Attribs.GridSize.x, Attribs.GridSize.y};

Hydrogent/src/Tasks/HnProcessSelectionTask.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -342,8 +342,10 @@ void HnProcessSelectionTask::Execute(pxr::HdTaskContext* TaskCtx)
342342
UNEXPECTED("Background depth is not set in the task context");
343343
}
344344

345-
MapHelper<HLSL::ClosestSelectedLocationConstants> Constants{pCtx, m_ConstantsCB, MAP_WRITE, MAP_FLAG_DISCARD};
346-
Constants->ClearDepth = BackgroundDepth;
345+
if (MapHelper<HLSL::ClosestSelectedLocationConstants> Constants{pCtx, m_ConstantsCB, MAP_WRITE, MAP_FLAG_DISCARD})
346+
{
347+
Constants->ClearDepth = BackgroundDepth;
348+
}
347349
}
348350

349351
ITextureView* ClosestSelectedLocationRTVs[] = {Targets->ClosestSelectedLocationRTV[0], Targets->ClosestSelectedLocationRTV[1]};
@@ -354,8 +356,8 @@ void HnProcessSelectionTask::Execute(pxr::HdTaskContext* TaskCtx)
354356

355357
for (Uint32 i = 0; i < m_NumJFIterations; ++i)
356358
{
359+
if (MapHelper<HLSL::ClosestSelectedLocationConstants> Constants{pCtx, m_ConstantsCB, MAP_WRITE, MAP_FLAG_DISCARD})
357360
{
358-
MapHelper<HLSL::ClosestSelectedLocationConstants> Constants{pCtx, m_ConstantsCB, MAP_WRITE, MAP_FLAG_DISCARD};
359361
Constants->SampleRange = static_cast<float>(1 << (m_NumJFIterations - 1 - i));
360362
}
361363

PBR/src/GLTF_PBR_Renderer.cpp

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -632,15 +632,16 @@ void GLTF_PBR_Renderer::Render(IDeviceContext* pCtx,
632632

633633
if ((PSOFlags & PSO_FLAG_USE_JOINTS) != 0)
634634
{
635-
MapHelper<float4x4> pJoints{pCtx, m_JointsBuffer, MAP_WRITE, MAP_FLAG_DISCARD};
636-
637-
WriteSkinningDataAttribs WriteSkinningAttribs{PSOFlags, static_cast<Uint32>(JointCount)};
638-
WriteSkinningAttribs.JointMatrices = JointMatrices.data();
639-
if ((PSOFlags & PSO_FLAG_COMPUTE_MOTION_VECTORS) != 0)
635+
if (MapHelper<float4x4> pJoints{pCtx, m_JointsBuffer, MAP_WRITE, MAP_FLAG_DISCARD})
640636
{
641-
WriteSkinningAttribs.PrevJointMatrices = PrevTransforms->Skins[Node.SkinTransformsIndex].JointMatrices.data();
637+
WriteSkinningDataAttribs WriteSkinningAttribs{PSOFlags, static_cast<Uint32>(JointCount)};
638+
WriteSkinningAttribs.JointMatrices = JointMatrices.data();
639+
if ((PSOFlags & PSO_FLAG_COMPUTE_MOTION_VECTORS) != 0)
640+
{
641+
WriteSkinningAttribs.PrevJointMatrices = PrevTransforms->Skins[Node.SkinTransformsIndex].JointMatrices.data();
642+
}
643+
WriteSkinningData(pJoints, WriteSkinningAttribs);
642644
}
643-
WriteSkinningData(pJoints, WriteSkinningAttribs);
644645
}
645646
}
646647

PBR/src/PBR_Renderer.cpp

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -814,12 +814,14 @@ void PBR_Renderer::PrecomputeCubemaps(IDeviceContext* pCtx,
814814
ProcessCubemapFaces(pCtx, pIrradianceCube, [&](ITextureView* pRTV, Uint32 mip, Uint32 face) {
815815
VERIFY_EXPR(mip == 0);
816816
{
817-
MapHelper<PrecomputeEnvMapAttribs> Attribs{pCtx, m_PrecomputeEnvMapAttribsCB, MAP_WRITE, MAP_FLAG_DISCARD};
818-
Attribs->Rotation = Matrices[face];
819-
Attribs->EnvMapWidth = static_cast<float>(pEnvironmentMap->GetTexture()->GetDesc().Width);
820-
Attribs->EnvMapHeight = static_cast<float>(pEnvironmentMap->GetTexture()->GetDesc().Height);
821-
Attribs->EnvMapMipCount = static_cast<float>(pEnvironmentMap->GetTexture()->GetDesc().MipLevels);
822-
Attribs->NumSamples = NumDiffuseSamples;
817+
if (MapHelper<PrecomputeEnvMapAttribs> Attribs{pCtx, m_PrecomputeEnvMapAttribsCB, MAP_WRITE, MAP_FLAG_DISCARD})
818+
{
819+
Attribs->Rotation = Matrices[face];
820+
Attribs->EnvMapWidth = static_cast<float>(pEnvironmentMap->GetTexture()->GetDesc().Width);
821+
Attribs->EnvMapHeight = static_cast<float>(pEnvironmentMap->GetTexture()->GetDesc().Height);
822+
Attribs->EnvMapMipCount = static_cast<float>(pEnvironmentMap->GetTexture()->GetDesc().MipLevels);
823+
Attribs->NumSamples = NumDiffuseSamples;
824+
}
823825
}
824826
DrawAttribs drawAttrs(4, DRAW_FLAG_VERIFY_ALL);
825827
pCtx->Draw(drawAttrs);
@@ -834,13 +836,15 @@ void PBR_Renderer::PrecomputeCubemaps(IDeviceContext* pCtx,
834836
auto* pPrefilteredEnvMap = m_pPrefilteredEnvMapSRV->GetTexture();
835837
ProcessCubemapFaces(pCtx, pPrefilteredEnvMap, [&](ITextureView* pRTV, Uint32 mip, Uint32 face) {
836838
{
837-
MapHelper<PrecomputeEnvMapAttribs> Attribs{pCtx, m_PrecomputeEnvMapAttribsCB, MAP_WRITE, MAP_FLAG_DISCARD};
838-
Attribs->Rotation = Matrices[face];
839-
Attribs->Roughness = static_cast<float>(mip) / static_cast<float>(pPrefilteredEnvMap->GetDesc().MipLevels - 1);
840-
Attribs->EnvMapWidth = static_cast<float>(pEnvironmentMap->GetTexture()->GetDesc().Width);
841-
Attribs->EnvMapHeight = static_cast<float>(pEnvironmentMap->GetTexture()->GetDesc().Height);
842-
Attribs->EnvMapMipCount = static_cast<float>(pEnvironmentMap->GetTexture()->GetDesc().MipLevels);
843-
Attribs->NumSamples = NumSpecularSamples;
839+
if (MapHelper<PrecomputeEnvMapAttribs> Attribs{pCtx, m_PrecomputeEnvMapAttribsCB, MAP_WRITE, MAP_FLAG_DISCARD})
840+
{
841+
Attribs->Rotation = Matrices[face];
842+
Attribs->Roughness = static_cast<float>(mip) / static_cast<float>(pPrefilteredEnvMap->GetDesc().MipLevels - 1);
843+
Attribs->EnvMapWidth = static_cast<float>(pEnvironmentMap->GetTexture()->GetDesc().Width);
844+
Attribs->EnvMapHeight = static_cast<float>(pEnvironmentMap->GetTexture()->GetDesc().Height);
845+
Attribs->EnvMapMipCount = static_cast<float>(pEnvironmentMap->GetTexture()->GetDesc().MipLevels);
846+
Attribs->NumSamples = NumSpecularSamples;
847+
}
844848
}
845849

846850
DrawAttribs drawAttrs(4, DRAW_FLAG_VERIFY_ALL);

PostProcess/Common/src/PostFXContext.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -311,9 +311,11 @@ void PostFXContext::Execute(const RenderAttributes& RenderAttribs)
311311
m_Resources.Insert(RESOURCE_IDENTIFIER_CONSTANT_BUFFER, pBuffer);
312312
}
313313

314-
MapHelper<HLSL::CameraAttribs> CameraAttibs{RenderAttribs.pDeviceContext, m_Resources[RESOURCE_IDENTIFIER_CONSTANT_BUFFER], MAP_WRITE, MAP_FLAG_DISCARD};
315-
CameraAttibs[0] = *RenderAttribs.pCurrCamera;
316-
CameraAttibs[1] = *RenderAttribs.pPrevCamera;
314+
if (MapHelper<HLSL::CameraAttribs> CameraAttibs{RenderAttribs.pDeviceContext, m_Resources[RESOURCE_IDENTIFIER_CONSTANT_BUFFER], MAP_WRITE, MAP_FLAG_DISCARD})
315+
{
316+
CameraAttibs[0] = *RenderAttribs.pCurrCamera;
317+
CameraAttibs[1] = *RenderAttribs.pPrevCamera;
318+
}
317319
}
318320
else
319321
{
@@ -573,8 +575,8 @@ void PostFXContext::ComputeBlueNoiseTexture(const RenderAttributes& RenderAttrib
573575
}
574576
else
575577
{
578+
if (MapHelper<Uint32> IndexBuffer{RenderAttribs.pDeviceContext, m_Resources[RESOURCE_IDENTIFIER_INDEX_BUFFER_INTERMEDIATE], MAP_WRITE, MAP_FLAG_DISCARD})
576579
{
577-
MapHelper<Uint32> IndexBuffer{RenderAttribs.pDeviceContext, m_Resources[RESOURCE_IDENTIFIER_INDEX_BUFFER_INTERMEDIATE], MAP_WRITE, MAP_FLAG_DISCARD};
578580
IndexBuffer[0] = 3 * m_FrameDesc.Index + 0;
579581
IndexBuffer[1] = 3 * m_FrameDesc.Index + 1;
580582
IndexBuffer[2] = 3 * m_FrameDesc.Index + 2;

PostProcess/EpipolarLightScattering/src/EpipolarLightScattering.cpp

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1427,8 +1427,8 @@ void EpipolarLightScattering::Build1DMinMaxMipMap(int iCascadeIndex)
14271427
m_FrameAttribs.pDeviceContext->SetViewports(1, &VP, 0, 0);
14281428

14291429
// Set source and destination min/max data offsets:
1430+
if (MapHelper<MiscDynamicParams> pMiscDynamicParams{m_FrameAttribs.pDeviceContext, m_pcbMiscParams, MAP_WRITE, MAP_FLAG_DISCARD})
14301431
{
1431-
MapHelper<MiscDynamicParams> pMiscDynamicParams(m_FrameAttribs.pDeviceContext, m_pcbMiscParams, MAP_WRITE, MAP_FLAG_DISCARD);
14321432
pMiscDynamicParams->ui4SrcMinMaxLevelXOffset = uiPrevXOffset;
14331433
pMiscDynamicParams->ui4DstMinMaxLevelXOffset = uiXOffset;
14341434
pMiscDynamicParams->fCascadeInd = static_cast<float>(iCascadeIndex);
@@ -1560,8 +1560,8 @@ void EpipolarLightScattering::DoRayMarching(Uint32 uiMaxStepsAlongRay,
15601560
SRB_DEPENDENCY_AVERAGE_LUMINANCE_TEX;
15611561
}
15621562

1563+
if (MapHelper<MiscDynamicParams> pMiscDynamicParams{m_FrameAttribs.pDeviceContext, m_pcbMiscParams, MAP_WRITE, MAP_FLAG_DISCARD})
15631564
{
1564-
MapHelper<MiscDynamicParams> pMiscDynamicParams(m_FrameAttribs.pDeviceContext, m_pcbMiscParams, MAP_WRITE, MAP_FLAG_DISCARD);
15651565
pMiscDynamicParams->fMaxStepsAlongRay = static_cast<float>(uiMaxStepsAlongRay);
15661566
pMiscDynamicParams->fCascadeInd = static_cast<float>(iCascadeIndex);
15671567
}
@@ -1813,8 +1813,8 @@ void EpipolarLightScattering::UpdateAverageLuminance()
18131813
UpdateAverageLuminanceTech.PSODependencyFlags = PSO_DEPENDENCY_LIGHT_ADAPTATION;
18141814
}
18151815

1816+
if (MapHelper<MiscDynamicParams> pMiscDynamicParams{m_FrameAttribs.pDeviceContext, m_pcbMiscParams, MAP_WRITE, MAP_FLAG_DISCARD})
18161817
{
1817-
MapHelper<MiscDynamicParams> pMiscDynamicParams(m_FrameAttribs.pDeviceContext, m_pcbMiscParams, MAP_WRITE, MAP_FLAG_DISCARD);
18181818
pMiscDynamicParams->fElapsedTime = (float)m_FrameAttribs.dElapsedTime;
18191819
}
18201820

@@ -1952,8 +1952,8 @@ void EpipolarLightScattering::FixInscatteringAtDepthBreaks(Uint32
19521952
SRB_DEPENDENCY_AVERAGE_LUMINANCE_TEX;
19531953
}
19541954

1955+
if (MapHelper<MiscDynamicParams> pMiscDynamicParams{m_FrameAttribs.pDeviceContext, m_pcbMiscParams, MAP_WRITE, MAP_FLAG_DISCARD})
19551956
{
1956-
MapHelper<MiscDynamicParams> pMiscDynamicParams(m_FrameAttribs.pDeviceContext, m_pcbMiscParams, MAP_WRITE, MAP_FLAG_DISCARD);
19571957
pMiscDynamicParams->fMaxStepsAlongRay = static_cast<float>(uiMaxStepsAlongRay);
19581958
pMiscDynamicParams->fCascadeInd = static_cast<float>(m_PostProcessingAttribs.iFirstCascadeToRayMarch);
19591959
}
@@ -2310,9 +2310,10 @@ void EpipolarLightScattering::PrepareForNewFrame(FrameAttribs&
23102310
CreateUniformBuffer(m_FrameAttribs.pDevice, sizeof(CameraAttribs), "Camera attribs", &m_pcbCameraAttribs);
23112311
VERIFY_EXPR(StaleSRBDependencyFlags & SRB_DEPENDENCY_CAMERA_ATTRIBS);
23122312
}
2313-
MapHelper<CameraAttribs> CamAttribs(m_FrameAttribs.pDeviceContext, m_pcbCameraAttribs, MAP_WRITE, MAP_FLAG_DISCARD);
2314-
*CamAttribs = *m_FrameAttribs.pCameraAttribs;
2315-
2313+
if (MapHelper<CameraAttribs> CamAttribs{m_FrameAttribs.pDeviceContext, m_pcbCameraAttribs, MAP_WRITE, MAP_FLAG_DISCARD})
2314+
{
2315+
*CamAttribs = *m_FrameAttribs.pCameraAttribs;
2316+
}
23162317
m_FrameAttribs.pcbCameraAttribs = m_pcbCameraAttribs;
23172318
}
23182319

@@ -2323,9 +2324,10 @@ void EpipolarLightScattering::PrepareForNewFrame(FrameAttribs&
23232324
CreateUniformBuffer(m_FrameAttribs.pDevice, sizeof(LightAttribs), "Light attribs", &m_pcbLightAttribs);
23242325
VERIFY_EXPR(StaleSRBDependencyFlags & SRB_DEPENDENCY_LIGHT_ATTRIBS);
23252326
}
2326-
MapHelper<LightAttribs> LightAttribs(m_FrameAttribs.pDeviceContext, m_pcbLightAttribs, MAP_WRITE, MAP_FLAG_DISCARD);
2327-
*LightAttribs = *m_FrameAttribs.pLightAttribs;
2328-
2327+
if (MapHelper<LightAttribs> LightAttribs{m_FrameAttribs.pDeviceContext, m_pcbLightAttribs, MAP_WRITE, MAP_FLAG_DISCARD})
2328+
{
2329+
*LightAttribs = *m_FrameAttribs.pLightAttribs;
2330+
}
23292331
m_FrameAttribs.pcbLightAttribs = m_pcbLightAttribs;
23302332
}
23312333

@@ -2360,8 +2362,8 @@ void EpipolarLightScattering::PrepareForNewFrame(FrameAttribs&
23602362
}
23612363
}
23622364

2365+
if (MapHelper<EpipolarLightScatteringAttribs> pPPAttribsBuffData{m_FrameAttribs.pDeviceContext, m_pcbPostProcessingAttribs, MAP_WRITE, MAP_FLAG_DISCARD})
23632366
{
2364-
MapHelper<EpipolarLightScatteringAttribs> pPPAttribsBuffData(m_FrameAttribs.pDeviceContext, m_pcbPostProcessingAttribs, MAP_WRITE, MAP_FLAG_DISCARD);
23652367
memcpy(pPPAttribsBuffData, &m_PostProcessingAttribs, sizeof(m_PostProcessingAttribs));
23662368
}
23672369

0 commit comments

Comments
 (0)