Battle Pet Completionist

Battle Pet Completionist

115k Downloads

Micro stutters

devwrk opened this issue ยท 15 comments

commented

I get micro stutter just flying over SW every time I activate this addon.
I tried to disable all addons one by one to test the issue.

Edit (I forgot to test with only this addon active... Yes, I have micro stutters if only BattlePetCompletionist is active)

When BattlePetCompletionist is disabled, it's smooth at 80 FPS on triple 1440p monitors with a 3080TI and Ryzen 9 5950X

I updated all my addons and I still get the same problem.

(I replaced Bagnon with Baganator because of a similar issue)

AddOns list from Swatter the the last error I had with Dragon race time...:
Swatter, v<%version%> (<%codename%>)
AddonFactory, v10.2.011
AdvancedInterfaceOptions, v1.8.10
Altoholic, v10.2.012
Baganator, v253
BattlePetDailyTamer, v3.2.12
BattlePetBattleUITweaks, v2.1.12
BattlePetBinds, vv2.19.1
BattlePetBreedID, vv1.27.0
BattlePetCompletionist, v10.2.7-20240508-1
BattlePetCount, v10.2.6-20240412_1
BetterFishing, v1.1.18
BlizzardActionButtonCastAnimationHider, v
BtWQuests, v2.36.0
BtWQuestsDragonflight, v8.0
BtWQuestsDragonflightPrologue, v1.4
BuyEmAll, v3.5.17
CanIMogIt, v10.2.5v1.54
ChatSoundCustomizer, vv2.0
CollapseQuestLog, v02.05
CopyAnything, vv1.1.28
CursorMod, vv10.2.6
DataStore, v2024.01.31
DataStoreAchievements, v2024.01.31
DataStoreAgenda, v2024.01.31
DataStoreAuctions, v2024.01.31
DataStoreCharacters, v2024.01.31
DataStoreContainers, v2024.01.31
DataStoreCrafts, v2024.01.31
DataStoreCurrencies, v2024.01.31
DataStoreGarrisons, v2024.01.31
DataStoreInventory, v2024.01.31
DataStoreMails, v2024.01.31
DataStorePets, v2024.01.31
DataStoreQuests, v2024.01.31
DataStoreReputations, v2024.01.31
DataStoreSpells, v2024.01.31
DataStoreStats, v2024.01.31
DataStoreTalents, v2024.01.31
DBMCore, v10.2.39
DBMFFXIVEventsPack, v1.0.0
DBMFlightTimers, v@project-version@
DBMSoundEventsPack, v1.6.35
DBMSpellTimers, vr157
DBMStatusBarTimers, v10.2.39
DBMVPVEM, v70abac3
DBMWorldEvents, v
DragonridingSpeedrun, v10.2-012
Drift, v2.2.14
EasyDelete, v1.7
ExtraQuestButton, v100200.47-Release
FamilyFamiliarHelper, v2.1.8
FasterLoot, v10.1.0
GatherMate2, v1.48.9
Glider, v0.2.8
GroundClutter, v1.01
GTFO, v5.7.1
HandyNotes, vv1.6.17
HandyNotesAdorableRaptorHatchlings, v1.23
HandyNotesAPathLessTravelled, v1.36
HandyNotesBattleForAzeroth, v17
HandyNotesCodDoBatter, v4.08
HandyNotesCovenantSanctum, vv26
HandyNotesDirections, v1
HandyNotesDragonflight, v46
HandyNotesDragonflightTreasures, vv56
HandyNotesDragonGlyphs, v0.0.6
HandyNotesDungeonLocations, v2.1a
HandyNotesFerryNetwork, vv1.3.6
HandyNotesMapNotes, v1.8.9a
HandyNotesNooksAndCrannies, v
HandyNotesOribos, vv27
HandyNotesShadowlands, v58
HandyNotesSpringfurAlpaca, v1.23
HandyNotesTravelGuide, vv2.17.0
HandyNotesValdrakken, vv12
HandyNotesWorldMapButton, v100200.01-Release
IHearYouAll, v6.1
idTip, v10.5.3
ItemVersion, v2024.18.0
LargerMacroIconSelection, vv1.8.2
LazyMachine, v1.0
MasterPlanA, vA
MinimapButtonButton, v1.17.3
MinimapTracking, v2022.10.27.2
MouseTooltip, v1.0
OrderHallCommander, v1.12.2 100100
Outfitter, v10.2.6.4
Paste, v10.2.6-20240320-1
Pawn, v2.9.1
PetTracker, v10.1.1
PetWalker, v2.1.5
Plumber, v1.2.7
ProtoformSynthesisFieldJournal, v1.3.8
RareScanner, v10.2.7
RareTracker, v1.0.22
Recount, vv10.1.5a
Rematch, v5.1.4
Scrap, v10.2.10
Simulationcraft, v10.2.7-01
SlideBar, v<%version%> (<%codename%>)
SlowFaller, v0.1.7
StatPriority, v2.7
Stubby, v9.1.BETA.5.4 (OneMawTime)
Syndicator, v29
tdBattlePetScript, vv1.10.1
TLDRMissions, v10.2-022
Todo, v1.1.4
TomPoints, v100206_29
TomTom, vv3.6.1-release
TruePath, v1.3.9
VenturePlan, v4.40e
VenturePlanMoreFollowers, v13
WarPlan, v3.23a
WeakAuras, v5.12.1
WeakAurasArchive, v5.12.1
WorldFlightMap, v10.0.0.0
WorldMapTrackingEnhanced, vv4.26
WorldQuestTab, v0.0.3-release
WQAchievements, vv10.2.6-2
BlizRuntimeLib_enUS v10.2.7.100207

commented

Does it happen if you unload all other addons than this one?

commented

That seems like support for my theory. A few possibilities we can consider:

  • profiling the operations being performed when zone changes trigger, to look for ways to do it more efficiently
  • rate limiting zone change processing
  • disabling data broker processing when mounted
  • adding an options toggle to disable data broker processing completely (either permanently or until one of the other approaches "fixes" the problem)
commented

Yep, but as long as you stay within the same zone, it shouldn't cause any data reload, so I do wonder why it would cause lag spiked.

commented

I bet the game considers Stormwind to actually be a bunch of smaller zones that you go through rapidly when flying overhead, which might cause repeated triggers of the data broker hooks.

commented

I got the same issue with the stutters and reverted to the 10.2.5-20240317_1 version, and it's smooth

commented

Yes, I did test with only this addon and I have the same issue.

commented

Can you take a screenshot of the settings window, with your settings, and attach it?
Also, how many pets are showing up on the map, when it happens?

commented

Not sure about Stormwind, but Orgrimmar has 36 distinct species, with all the holidays and profession-based ones. The capitals seem like a likely place for scaling issues to become noticeable first.

commented

Using Addon Usage (see https://arcaneintellect.com/addon-usage-world-of-warcraft-wow-addon-guide-spotlight/) I was able to confirm increased CPU usage flying over Orgrimmar compared to adventuring in Eastern Plaguelands (which just happened to be my plans for the evening).

I'll take a look tomorrow to see if I can spot any areas for improvement.

commented

@davidmc24 if it is triggered all the time, I think rate limiting it would be better. (Or if it is only in the capital cities, it might be worth it to have a list of "sub-zones" and if an even fires for a sub zone change, just return from it, instead of doing a refresh)
What do you think?

commented

@GurliGebis Sorry for the late reply. Probably too late but here are my settings. And no pets are showing, my collection is complete for now. Thanks!

image

commented

@GurliGebis Please see linked PR. I believe it should address this issue. Moving rapidly through a zone-dense area like a capital was giving a bunch of ZONE_CHANGED and NEW_WMO_CHUNK events, none of which changed the value of C_Map.GetBestMapForUnit("player"), so were redundant as far as this add-on is concerned. I added a bit of code to track which mapID we last loaded, and only do a real "refresh" if either the mapID actually changes or the pet journal data changes.

Re-testing with Addon Usage, the CPU usage is way down from what I was seeing before.

If we find later that there are cases where there are too many changes between different sub-maps (that is, the value returned by C_Map.GetBestMapForUnit("player") changes too quickly), I have a way in mind we could address that by identifying certain parent maps as not supporting further detail, but I didn't implement that as there doesn't seem to be a current need.

commented

@davidmc24 thank you as always.
I have merged your fix and released 10.2.7-20240512-1 ๐Ÿ™‚
@devwrk can you give the new release a try (it should be available within 1-2 hours)

commented

Just to give an update - the new release is already approved (they work fast on a Sunday it seems) ๐Ÿ˜€

commented

I could not detect any lag or stutter.
Thank you @davidmc24 and @GurliGebis for your great help and support!