1
0

Optimise chunk set (#4260)

Closes #1244

Initially I was just going to add the cChunkData to cSetChunkData but profiling revealed 
that the copying wasn't even the biggest slowdown. Much more time was being spent in 
cChunk::CreateBlockEntities and cChunk::WakeUpSimulators than was in memcpy so I've made 
those significantly faster as well.

Optimisations performed:
 * cSetChunkData now stores blocks in a cChunkData object
 * cChunkData objects can now perform moves even if they are using different pools
 * cChunk::CreateBlockEntities now iterates in the correct order and only over present chunk sections
 * Similarly for cChunk::WakeUpSimulators
 * cSetChunkData::CalculateHeightMap now shortcuts to the highest present chunk section before checking blocks directly
This commit is contained in:
peterbell10
2018-07-23 19:12:51 +01:00
committed by GitHub
parent e27290f7d2
commit 31a11a6df4
14 changed files with 194 additions and 166 deletions

View File

@@ -113,7 +113,7 @@ void cChunkData::Assign(cChunkData && a_Other)
return;
}
if (&m_Pool != &a_Other.m_Pool)
if (m_Pool != a_Other.m_Pool)
{
// Cannot transfer the memory, do a copy instead
const cChunkData & CopyOther = a_Other;