Pillars of Eternity
0 of 0

File information

Last updated

Original upload

Created by

veyn

Uploaded by

veyn

Virus scan

Safe to use

Tags for this mod

28 comments

  1. deleted141830958
    deleted141830958
    • account closed
    • 0 kudos
    Thank you so much for this essential mod. Endorsed.
  2. Arthandas9
    Arthandas9
    • member
    • 7 kudos
    Thanks, works flawlessly even in the newest version.
    1. MeDuhMatster
      MeDuhMatster
      • member
      • 0 kudos
      It worked for me as well. I'm not sure what issue @xanthus1942 et al. were having. Maybe they didn't have the .NET Framework 4.5+ requirement that the Patchwork guide pointed out? Or maybe they didn't follow step 2 of this mod's install instructions?

      [EDIT: this entire part is automatically done so is unnecessary to do manually] The only thing I did different from the instructions is that after step 3, I removed this mod from the 'active mods' of the launcher; the launcher seems to automatically copy your added mods to a folder called "Mods", so I then repeated step 3 with that new location of the mod—it should be ".../PatchworkLauncher/Mods/PoETooltipFlickerFix.pw.dll". (And I deleted the original mod folder to keep things neat.)
  3. xanthus1942
    xanthus1942
    • supporter
    • 7 kudos
    Get a bunch of "exception" pop-ups on the launcher when I load the dll file for this mod. No other mods, 100% clean install, lastest version of the launcher.

    If I simply click through all of the exception windows and then try to "launch the game with mods," I get this:

    2019-05-15 12:52:18.298 -04:00 [Error] An error has occurred,
    While trying to: Patch the game
    Error type: A system error or some sort of bug. (KeyNotFoundException)
    Internal message: The given key was not present in the dictionary.

    System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
    at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
    at Patchwork.Utility.ReflectHelper.GetEnumValueText[T](T value)
    at PatchworkLauncher.LaunchManager.Command_Display_Patching_Error(PatchingProcessException ex)
    at PatchworkLauncher.LaunchManager.<Command_Patch>d__46.MoveNext()
    1. Maverynthia
      Maverynthia
      • member
      • 0 kudos
      Same here. :| I think this mod is broken.
    2. Acleacius
      Acleacius
      • supporter
      • 66 kudos
      Same for me 3/26/2021. Too bad was looking forward to trying this mod.

      Sure hope it gets an update.
  4. rlesch
    rlesch
    • member
    • 0 kudos
    First things first: Could you do that with the horizontal flickering as well? :)

    Hi, great mod, makes the game less annoying in some aspects.
    Havent encountered any vertical flickering anymore, but sadly a horizontal flickering e.g when hovering over weapons in chest and the compare tooltip appears, the left tooltip starts to flicker horizontally, depending on resolution/maginification.

    ill add a screenshot later
    1. veyn
      veyn
      • member
      • 21 kudos
      Currently the mod fixes one of the sources of flickering, which should apply both to horizontal and vertical. That said, I think there are more sources of this bug - I remember seeing flickering even with this mod, however I couldn't find a stable way to reproduce it - without it, tracking the root cause is impossible.

      If you can find such steps (ideally, something like "load this save game, open this panel and hover over this element"), please tell me details (and upload relevant save) - I'll try to fix it.
    2. rlesch
      rlesch
      • member
      • 0 kudos
      ok, i assembled some files that should help to replicate. in the zip are 2 images and the savegame, one of the image contains description for bug-replication

      file: flickertest.zip
      https://drive.google.com/open?id=1HW8WWO5CnRqqMQbY6WzOziU0O94ztFuN

      to (hopefully) reproduce:
      - used resolution is 1680x1050 - 98% fontscale. turned res down from 1920x1200, but kept same ratio in case you have standard HD display.
      - only used mod: tooltip flicker fix
      - after game starts, load the savegame 2x in a row, open inventory, open stash, check weapons page
      - moving cursor horozontally betwen columns in same row should trigger the flickering of tt from 1. column items, somtimes its the middle column, but usually the first - esp after reopen inventory screen (see added image)
      - if no flickering, close inventory screen and reopen it- now it should definitely flicker (at least i could reproduce it this way all the time - 15 tries so far)


      p.s in the image instruction, i mixed up rows with columns ;)
      - good luck :)

    3. veyn
      veyn
      • member
      • 21 kudos
      Cool, thanks! I'll try to investigate in a ~week, once I return from vacation.
    4. rlesch
      rlesch
      • member
      • 0 kudos
      wonder if you had any success so far in pinning the bug down (ofc id never ask for when its done:) ) - just curious :)
    5. veyn
      veyn
      • member
      • 21 kudos
      Terribly sorry, RL happened, didn't have time to look into that :(

      However, I did investigate the issue a bit today and found another source of the flickering. Uploaded version 1.1. Please see whether it fixes the problem on your machine.
    6. rlesch
      rlesch
      • member
      • 0 kudos
      np, i know that situation well enough, im the last one who complains.
      so its great to read about an update and im more then happy about that!
      TYVM!
      cant play at the moment, but ill give feedback

      p.s seen even nameplates flickering when they are crowded on screen like the protesters crowd @ copperlane/def bay.
  5. rebornzagain
    rebornzagain
    • member
    • 0 kudos
    Very nice work, this and your more combat info mod , really impressive!!!.
    I wonder with your skill if you could look into an issue : periodic stuttering.
    I know this isnt just me , a lot of ppl are plagued with this issue as well.

    I dont know if you have this problem the game stutter ever 30 second or so depending on your frame rate and the number of compagnon you have with you.

    Obsidian are lame to not fix this huge problem like tool tip flicjeking and this periodic stuttering that occurs on my 3 pcs.
    Im pretty sure everyone get this but some ppl are more sensible to stutters than other.
    I am no expert but someone told me that it looks like a garbage collection issue of some sort.

    You can easily test it when you pause the game with msi afterburner let the game run for a few minute and look at the fps or frametime graph
    you will see what i mean by periodic stuttering, frametiming going over 120 ms between 2 frames and your fps going down at the same time of course every 30 second .
    I dont know if you have a way (debuggger, decompiler) to debug this or any time or even if you have this issue but if you are intrigue maybe you could take a look.
    anyway good job with your mod thank you

    link to a old post that explain the problem in detail : https://forums.obsidian.net/topic/90253-stutters-every-30-frame-time-spikes-every-30-seconds/
    1. veyn
      veyn
      • member
      • 21 kudos
      I don't have any problems like that locally, so I don't even have a way to debug it, sorry :)
    2. rebornzagain
      rebornzagain
      • member
      • 0 kudos
      Well your lucky, i have this problem since release date and i had to stop playing the game because that is too irritating to play with .
      the bad thing is even pillars 2 is doing it but less frequent

      If you dont mind sharing info about how i could debug this myself that would be a great way to help me,
      what program do you use to decomple unity project, and .dll? do you debug the game with visual studio and how to link the project to the game
      do i need unity ?
      maybe you can point me toward a tutorial , just to get started so i can investigate this stuttering that will never be fix by obsidian.
    3. veyn
      veyn
      • member
      • 21 kudos
      I mostly use Telerik's and JetBrains decompilers (https://www.telerik.com/products/decompiler.aspx & https://www.jetbrains.com/decompiler/) to decompile the dll. Debugging is just a matter of finding interesting functions, hooking them via Patchwork, and adding a bunch of traces (Console.AddMessage etc.).

      Now, profiling a game to find a performance problem in such a way would be _extremely_ hard (you would essentially have to "guess" the hotspot). Now, I don't really think this is a Unity problem (it would happen in other games in such case, but this seems to be a PoE-specific problem). So to approach the problem, I would probably hack Patchwork to hook each function in the assembly and add some simple instrumentation - e.g. measure time between function enter and exit, and if longer than X ms, log function name to the console. If that didn't work - for example, if problem is caused by extraordinarily large amount of script calls per frame, instead of single slow script, I would improve instrumentation (gather total script time per frame and gather per-function totals per frame). If that didn't work again - say, if total scripting time wouldn't be abnormal - I would start digging into unity itself. That's native code, so I'd use IDA for disassembly and analysis (plus, I think I've seen full unity sources leaked somewhere some time ago - that would help a lot with reverse engineering). Once I've identified the few key functions, I'd hook them and add some profiling code there.
    4. rebornzagain
      rebornzagain
      • member
      • 0 kudos
      thank you for replying,

      Im not sure i have the skill to do that but i undertand most of your post, im just not sure how to hack pathwork and hook function in the assembly
      it wil be a long process to understand it all but i think i can get there, i use do programmation but its been a while.

      And im surprise that you dont get this issue at all,.
      Have you try to monitor your fps and frametime when your game is on pause let it monitor for 10 min and look at the graph you might see periodic spike.

      I tried poe on 3 different computer with very diffrent hardware and os and they all do the periodic stutter on all of them, i figured that everyone is having them too at different strenght and some ppl are more sensible to stutter than other but i was sure everyone got them. So if your 100% sure you dont have this it will be a nice way to tell me that its on my end (my 3 pc) that something is wrong but i find that unlikely but not impossible.
    5. veyn
      veyn
      • member
      • 21 kudos
      Yup, getting rock solid 60 fps.
    6. truthseeker123
      truthseeker123
      • member
      • 0 kudos
      I was able to decompile a modify some code and im 100% positive that is the garbage collection from unity that causes those periodic spike.
      I called gb.collect() mysef and when i do i have the same "freeze/lag/stutter" and i dont see the periodic stutter when i call it myself.
      i tested on a fourth computer yesterday and the issue was there too.

      After reading and researching, i found that this is cause by poor programming practices, they create too much garbage and create too much object, allocation.
      I cannot fix it , its something that will never be fix they have to rewrite entire code to fix this problem , the only thing i could do is delay it.
      I can place gb.collect at convenient places, like when i press space bar to pause, or when i talk to an npc and im looking for a way to increase the unity heat pool so that unity wont collect garbage that often and delay the spike/lag.

      I talk to a guy that told me that even obsidian see those spike(a QA guy told this in a private message)
      anyway Im pretty sure that you dont care about all this lol you dont have the problem, in fact you have it but you dont feel it :P

      one last thing, what is your OS, Are you on linux ? this is the only OS I wasnt able to test and i read online a guy telling that on linux he doesnt see those spike/lag.
    7. veyn
      veyn
      • member
      • 21 kudos
      You could try just calling GC.Collect(0) every frame? Maybe fps will be stable and high enough for you then?

      PS. I'm on windows.
    8. truthseeker123
      truthseeker123
      • member
      • 0 kudos
      I dont know i havent try with a parameter, i only call gb.collect and the game stutter/freeze for half a second, I will try with generation 0 and see if t i feel stutter but i fear that calling gb.collect every frame will cause more problem .

      https://www.youtube.com/watch?v=VOvtrnIajpc
      take a look a this and you will see at 8 second what i experience when i call gb.collect or in this case is unity calling it,
      i fear that if i call each frame i will have this stutter all the time the game will be a stutter mess. i will test it with a parameter

      the best approach is this one i think:

      One of the major revisions introduced into Mono after version 2.6 concerned GC. New versions use generational GC, whereas 2.6 still uses the less sophisticated Boehm garbage collector. Modern generational GC performs so well that it can even be used (within limits) for real-time applications such as games. Boehm-style GC, on the other hand, works by doing an exhaustive search for garbage on the heap at relatively 'rare' intervals (i.e., usually much less frequently than once-per-frame in a game). It therefore has an overwhelming tendency to create drops in frame-rate at certain intervals, thereby annoying your players. The Unity docs recommend that you call System.GC.Collect() whenever your game enters a phase where frames-per-second matter less (e.g., loading a new level or displaying a menu). However, for many types of games such opportunities occur too rarely, which means that the GC might kick in before you want it too. If this is the case, your only option is to bite the bullet and manage memory yourself.

      pillars got ton of places i can call it, pause for battle , pause for inventory, pause for loot , pause for talking to npc
      Im gonna try your idea to call every frame with parameter 0 and see, if its doesnt work i will add gb.collect every where i can
    9. truthseeker123
      truthseeker123
      • member
      • 0 kudos
      Hey Veyn, I could use your help , im kinda stuck if you dont mind :).
      im trying to increase mono heap pool to delay automatic garbage collection call from the engine as long as possible.
      To do so i look at this doc : https://docs.unity3d.com/Manual/UnderstandingAutomaticMemoryManagement.html
      under the "Large heap with slow but infrequent garbage collection" heading?, they tell you how to do it .

      I tried to implement this, after doing this code i call GC.totalmemory and its larger, the problem is I cant figure out why it doesn't delay the automatic gargabe collection and after the automatic call, the heap pool is back to what is was before when i call GC.totalmemory . The pool doesn't stay larger after a garbage collection call and i dont know why.
      I dont understand why this code doesnt delay the garbage collector even if i see the heap is larger.
      I should be able to crash the game with this if i allow too much memory with this code and run out of memory, but i cant.

      What do you think, can you do some testing? what is your take on this ?

  6. abstractbuffalo
    abstractbuffalo
    • member
    • 0 kudos
    You knocked it all of the park again! all the mods I tried from you are gold and fix issues I have.

    Can I make a mod suggestion? I I want an IE mod that lets you use story companion voices to add to the story on my hired ones. as much I love those guys I like to mix it up a lot.
    1. veyn
      veyn
      • member
      • 21 kudos
      You mean just the soundset? Or actual interjections into dialogue? If latter, probably simplest way would be to extend "improved respec" to allow changing class, race, name, etc. - but some pieces of dialogue could be weird (refer to original name or race or w/e). I thought about doing something like this, the most complicated thing would be to decide what to do with unique backgrounds/abilities (like Sagani's fox pet) - disallow? allow for original character only? allow for everyone? "Disallow" would be the simplest, but probably not desirable (e.g. I want to keep the fox when respeccing Sagani). Other options will require investigation on how to implement them.
  7. BloodMarshal
    BloodMarshal
    • premium
    • 15 kudos
    Seems to be working so far. Thanks for your hard work! I'm using this and the Improved Respec mod you made, both of which I'm lovin. They should hire you at Obsidian, imo.
  8. Cerebro83
    Cerebro83
    • member
    • 0 kudos
    @veyn: I did't test this yet, but I'm happy that you took the time to look into this. I'm about to play through the game once more and will certainly use your mod and hopefully get rid of the annoying flickering.Thanks you!
  9. Markus360
    Markus360
    • member
    • 0 kudos
    @veyn Thank you for all your mods.