Skip to content

Commit

Permalink
Optimize usage of TOSERVER_GOTBLOCKS packet
Browse files Browse the repository at this point in the history
  • Loading branch information
sfan5 committed Aug 7, 2019
1 parent 4d7f296 commit 1942638
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 10 deletions.
26 changes: 17 additions & 9 deletions src/client/client.cpp
Expand Up @@ -475,6 +475,7 @@ void Client::step(float dtime)
*/
{
int num_processed_meshes = 0;
std::vector<v3s16> blocks_to_ack;
while (!m_mesh_update_thread.m_queue_out.empty())
{
num_processed_meshes++;
Expand Down Expand Up @@ -513,14 +514,18 @@ void Client::step(float dtime)
m_minimap->addBlock(r.p, minimap_mapblock);

if (r.ack_block_to_server) {
/*
Acknowledge block
[0] u8 count
[1] v3s16 pos_0
*/
sendGotBlocks(r.p);
if (blocks_to_ack.size() == 255) {
sendGotBlocks(blocks_to_ack);
blocks_to_ack.clear();
}

blocks_to_ack.emplace_back(r.p);
}
}
if (blocks_to_ack.size() > 0) {
// Acknowledge block(s)
sendGotBlocks(blocks_to_ack);
}

if (num_processed_meshes > 0)
g_profiler->graphAdd("num_processed_meshes", num_processed_meshes);
Expand Down Expand Up @@ -1069,10 +1074,13 @@ void Client::sendDeletedBlocks(std::vector<v3s16> &blocks)
Send(&pkt);
}

void Client::sendGotBlocks(v3s16 block)
void Client::sendGotBlocks(const std::vector<v3s16> &blocks)
{
NetworkPacket pkt(TOSERVER_GOTBLOCKS, 1 + 6);
pkt << (u8) 1 << block;
NetworkPacket pkt(TOSERVER_GOTBLOCKS, 1 + 6 * blocks.size());
pkt << (u8) blocks.size();
for (const v3s16 &block : blocks)
pkt << block;

Send(&pkt);
}

Expand Down
2 changes: 1 addition & 1 deletion src/client/client.h
Expand Up @@ -465,7 +465,7 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef
void promptConfirmRegistration(AuthMechanism chosen_auth_mechanism);
void startAuth(AuthMechanism chosen_auth_mechanism);
void sendDeletedBlocks(std::vector<v3s16> &blocks);
void sendGotBlocks(v3s16 block);
void sendGotBlocks(const std::vector<v3s16> &blocks);
void sendRemovedSounds(std::vector<s32> &soundList);

// Helper function
Expand Down

0 comments on commit 1942638

Please sign in to comment.