mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-22 23:30:14 +00:00
Throttle player equipment compositing and spawning to fix walking stutter
Defer equipment texture compositing to a queue processed max 1 per frame instead of compositing immediately on callback (each compositeWithRegions call does file I/O + CPU blit + GPU upload on the main thread). Reduce MAX_SPAWNS_PER_FRAME from 96 to 8 and increase inspect rate limit from 0.75s to 2s. Demote noisy per-frame logs to DEBUG level.
This commit is contained in:
parent
d87a86e35c
commit
35034ca544
3 changed files with 23 additions and 7 deletions
|
|
@ -224,7 +224,7 @@ private:
|
|||
float x, y, z, orientation;
|
||||
};
|
||||
std::vector<PendingCreatureSpawn> pendingCreatureSpawns_;
|
||||
static constexpr int MAX_SPAWNS_PER_FRAME = 96;
|
||||
static constexpr int MAX_SPAWNS_PER_FRAME = 8;
|
||||
static constexpr uint16_t MAX_CREATURE_SPAWN_RETRIES = 300;
|
||||
std::unordered_set<uint64_t> pendingCreatureSpawnGuids_;
|
||||
std::unordered_map<uint64_t, uint16_t> creatureSpawnRetryCounts_;
|
||||
|
|
@ -244,6 +244,9 @@ private:
|
|||
};
|
||||
std::unordered_map<uint64_t, OnlinePlayerAppearanceState> onlinePlayerAppearance_;
|
||||
std::unordered_map<uint64_t, std::pair<std::array<uint32_t, 19>, std::array<uint8_t, 19>>> pendingOnlinePlayerEquipment_;
|
||||
// Deferred equipment compositing queue — processes max 1 per frame to avoid stutter
|
||||
std::vector<std::pair<uint64_t, std::pair<std::array<uint32_t, 19>, std::array<uint8_t, 19>>>> deferredEquipmentQueue_;
|
||||
void processDeferredEquipmentQueue();
|
||||
// Cache base player model geometry by (raceId, genderId)
|
||||
std::unordered_map<uint32_t, uint32_t> playerModelCache_; // key=(race<<8)|gender → modelId
|
||||
struct PlayerTextureSlots { int skin = -1; int hair = -1; int underwear = -1; };
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue