View Issue Details

IDProjectCategoryView StatusLast Update
0000218Medieval EngineersEnhancementpublic2022-08-06 22:48
Reporterequinox Assigned Toequinox  
Status resolvedResolutionfixed 
Product Version0.7.4 (unreleased) 
Target Version0.7.4 (unreleased)Fixed in Version0.7.4 (unreleased) 
Summary0000218: Use memcpy/memset for MyVoxelData operations

Currently MyVoxelData uses naive loops for performing operations on the underlying arrays. Considering the Clear operation shows up as ~5% of CPU time when meshing voxel data it's very reasonable to convert this method to a single memset operation via Span<byte> or Unsafe.InitBlockUnaligned. Similar treatment can be applied to BlockFill and CopyRange relatively easily.

ComputeContentConstitution and ContainsVoxelsAboveIsoLevel are both possible using 8 byte operations instead of 1 byte operations, though this is trickier.

TagsPerformance, Voxel


There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2022-04-12 00:14 equinox New Issue
2022-04-12 00:14 equinox Tag Attached: Voxel
2022-04-12 00:14 equinox Tag Attached: Performance
2022-07-21 21:00 equinox Assigned To => equinox
2022-07-21 21:00 equinox Status new => assigned
2022-07-21 21:00 equinox Status assigned => in progress
2022-08-06 22:48 equinox Status in progress => resolved
2022-08-06 22:48 equinox Resolution open => fixed
2022-08-06 22:48 equinox Fixed in Version => 0.7.4 (unreleased)