Fix sort heuristic being wrong on pending blocks surviving more than one thread_sync(), we really have to overwrite it
parent
6515ac2c94
commit
439e5d9964
|
@ -532,8 +532,8 @@ private:
|
||||||
|
|
||||||
for (auto it = data.input.blocks.begin(); it != data.input.blocks.end(); ++it) {
|
for (auto it = data.input.blocks.begin(); it != data.input.blocks.end(); ++it) {
|
||||||
InputBlock &ib = *it;
|
InputBlock &ib = *it;
|
||||||
// Gets added so it can be modified by queries
|
// Set or override previous heuristic based on new infos
|
||||||
ib.sort_heuristic += get_priority_heuristic(ib,
|
ib.sort_heuristic = get_priority_heuristic(ib,
|
||||||
data.input.priority_position,
|
data.input.priority_position,
|
||||||
data.input.priority_direction,
|
data.input.priority_direction,
|
||||||
data.input.max_lod_index);
|
data.input.max_lod_index);
|
||||||
|
|
|
@ -219,8 +219,7 @@ struct ScheduleSaveAction {
|
||||||
VoxelDataLoader::InputBlock b;
|
VoxelDataLoader::InputBlock b;
|
||||||
b.data.voxels_to_save = with_copy ? block->voxels->duplicate() : block->voxels;
|
b.data.voxels_to_save = with_copy ? block->voxels->duplicate() : block->voxels;
|
||||||
b.position = block->position;
|
b.position = block->position;
|
||||||
// Modify heuristic so it doesn't get processed too soon
|
b.can_be_discarded = false;
|
||||||
b.sort_heuristic = 2 << block->lod_index;
|
|
||||||
blocks_to_save.push_back(b);
|
blocks_to_save.push_back(b);
|
||||||
block->modified = false;
|
block->modified = false;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue