From 1f35dba2cac8c953286aadc53f410c9454ed84cd Mon Sep 17 00:00:00 2001 From: Hayodea Hekol Date: Fri, 28 Nov 2025 03:13:55 -0400 Subject: [PATCH] OClCollMeshEngn: use proper alignment for small StagingBuffer size Aligning to uint32_t saves about 1 page of mem? --- .../livoxGen1/openClCollatingAndMeshingEngine.cpp | 14 +++++++++----- stimBuffApis/livoxGen1/pcloudStimulusProducer.cpp | 2 +- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/stimBuffApis/livoxGen1/openClCollatingAndMeshingEngine.cpp b/stimBuffApis/livoxGen1/openClCollatingAndMeshingEngine.cpp index 19b9699..4f1e888 100644 --- a/stimBuffApis/livoxGen1/openClCollatingAndMeshingEngine.cpp +++ b/stimBuffApis/livoxGen1/openClCollatingAndMeshingEngine.cpp @@ -992,8 +992,10 @@ void OpenClCollatingAndMeshingEngine::produceAmbienceStimulusFrame( // Write the ambience count to the ambienceStimFrame StimulusFrame& ambienceFrame = ambienceStimFrame->get(); - uint32_t* ambienceValue = reinterpret_cast( - ambienceFrame.slotDesc.vaddr); + using PcloudAmbienceStimVal = PcloudAmbienceStencil + ::PcloudAmbienceStimulusValue; + PcloudAmbienceStimVal* ambienceValue = reinterpret_cast< + PcloudAmbienceStimVal*>(ambienceFrame.slotDesc.vaddr); ambienceValue[0] = ambienceCount; } @@ -1223,9 +1225,11 @@ public: // Read the stimFrame value (ambience count) StimulusFrame& ambienceFrame = context->ambienceStimFrame->get(); - uint32_t* ambienceValue = reinterpret_cast( - ambienceFrame.slotDesc.vaddr); - uint32_t stimFrameValue = ambienceValue[0]; + using PcloudAmbienceStimVal = PcloudAmbienceStencil + ::PcloudAmbienceStimulusValue; + PcloudAmbienceStimVal* ambienceValue = reinterpret_cast< + PcloudAmbienceStimVal*>(ambienceFrame.slotDesc.vaddr); + PcloudAmbienceStimVal stimFrameValue = ambienceValue[0]; bool meetsPostrinThreshold = (framesMetThreshold >= postrinThreshold); diff --git a/stimBuffApis/livoxGen1/pcloudStimulusProducer.cpp b/stimBuffApis/livoxGen1/pcloudStimulusProducer.cpp index f5a6d1a..6a8cf8d 100644 --- a/stimBuffApis/livoxGen1/pcloudStimulusProducer.cpp +++ b/stimBuffApis/livoxGen1/pcloudStimulusProducer.cpp @@ -56,7 +56,7 @@ static StagingBuffer::IOEngineConstraints openClIntensityInputConstraints( static StagingBuffer::IOEngineConstraints openClAmbienceInputConstraints( // slotStartAlignmentByteVal (sizeof(void*)) - sizeof(void*), + sizeof(PcloudAmbienceStencil::PcloudAmbienceStimulusValue), // slotPadToNBytes (sizeof(PcloudAmbienceStimulusValue)) sizeof(PcloudAmbienceStencil::PcloudAmbienceStimulusValue), // frameStartAlignmentByteVal (page alignment)