MSI AB / RTSS development news thread

Discussion in 'MSI AfterBurner Application Development Forum' started by Unwinder, Feb 20, 2017.

  1. Haldi

    Haldi Master Guru

    Messages:
    311
    Likes Received:
    40
    GPU:
    R9-290 CF
    Jep... it's the new Signature... Windows was complaining that it didn't know the developer of the .exe file.
     
  2. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    16,596
    Likes Received:
    5,063
  3. dr_rus

    dr_rus Ancient Guru

    Messages:
    3,529
    Likes Received:
    741
    GPU:
    RTX 4090
    21,5 ms is the highest I'm seeing here with my "full" monitoring profile. Usually less than that, around 15 ms.
    It also doesn't really look like a CPU limit because its behavior is connected to the mouse movements - with AB running the game freeze while I move the mouse and then un-freeze when I stop; without AB there's no such freezing. Can't see any connection between mouse movements and polling rate.
    Done some additional testing - switching to what is my old profile with minimal number of sensors doesn't change anything.

    Here, a video. I honestly have no idea if it's a new AB/RTSS issue or something else entirely but without AB running there's no such reaction to mouse movements:

     
  4. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    16,596
    Likes Received:
    5,063
    Once again, I'd really like to avoid digging into things unrelated to new functionality.
     

  5. dr_rus

    dr_rus Ancient Guru

    Messages:
    3,529
    Likes Received:
    741
    GPU:
    RTX 4090
    As I've said, there was no such issue with AB running about a couple of months ago. So this is either due to the changes AB/RTSS got since then or something else changed in my system (which is also a possibility, of course).
     
  6. Falkentyne

    Falkentyne Master Guru

    Messages:
    538
    Likes Received:
    71
    GPU:
    Sapphire HD 7970 Ghz Ed.
    Mouse movement causing frame freezes? Is that what you're talking about?

    If so this isn't AB's fault. I saw this on my r9 290x when running Valley. Something *I* did triggered it. Yes AB was running, and when I closed it it stopped happening, but I did not update anything on it at that time. It was something I hadn't ever seen before, so I knew it could NOT be caused by AB. Check your startup processes and anything else that might be hooking into the driver, even if it gets unloaded.

    Rebooting the PC fixed it.
     
  7. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    16,596
    Likes Received:
    5,063
    Once again, let's focus on testing new functionality _please_.
     
  8. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    16,596
    Likes Received:
    5,063
    Note for those who translate MSI AB GUI:

    Besides new controls to be localized, please pay attention to updated context help for many existing controls in "Monitoring" tab. Help for some items located there was appended with new hints related to new multi-selection related functionality, e.g. graphs list, "Show in OSD" etc.
     
  9. dr_rus

    dr_rus Ancient Guru

    Messages:
    3,529
    Likes Received:
    741
    GPU:
    RTX 4090
    I reboot my PC daily so that's hardly the issue.

    But I actually did find the cause and it's RTSS's frame limiter. This behavior happens when it's set to 60 fps (or anything below refresh really - the lower it goes the higher is the slowdown). With it removed there is no slowdown.
     
  10. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    16,596
    Likes Received:
    5,063
    Cause is not RTSS frame limiter. Cause is singletrheaded DOS application architecture, doing everything including rendering and input sampling in one thread. Adding active busy-wait framepacing to the same thread leaves no time for other background tasks, which were performed in idle in emulated application.
     
    dr_rus likes this.

  11. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    16,596
    Likes Received:
    5,063
    I’ve got a few similar PMs about adding more custom sensors to hardware monitoring module via recently introduced HwInfo and PerfCounter plugins. So I decided to write a small guide. As you probably noticed (and had to read in the release notes :)) currently the plugins import fixed and limited set of data sources from HwInfo/AIDA/native OS performance monitor into MSI AB, but the list of imported data can be extended via editing the plugin configuration file. That’s what I’m going to demonstrate now, for example let’s assume that we need to add disk queue length monitoring for our first HDD in the system via PerfCounter plugin. Disk queue length is showing how many disk read/write requests are currently waiting for processing in queue, so it can be useful for diagnosing HDD access bottlenecks. To simplify this task, each plugin is able to export full list of importable data (i.e. full list of HwInfo/AIDA/OS performance counters) into the log file. So we can examine full list of data, which can be monitored on our system and add new desired data source to our plugin.
    So, to add such custom performance counter to hardware monitoring, perform the following steps:

    - Enable PerfCounter.dll plugin
    - Edit .\Plugins\Monitoring\PerfCounter.cfg and set Export= 1 in [Settings] section, save it and restart MSI Afterburner. This will cause the plugin to export full set of importable data to .\Plugins\Monitoring\PerfCounter.log
    - Examine PerfCounter.log and find exact name of desired performance counter, in our case it is located in "PhysicalDisk" object and called “Current Disk Queue Length”.

    Code:
    Object PhysicalDisk
      Counters
        Current Disk Queue Length
        % Disk Time
        Avg. Disk Queue Length
        % Disk Read Time
        Avg. Disk Read Queue Length
        % Disk Write Time
        Avg. Disk Write Queue Length
        Avg. Disk sec/Transfer
        Avg. Disk sec/Read
        Avg. Disk sec/Write
        Disk Transfers/sec
        Disk Reads/sec
        Disk Writes/sec
        Disk Bytes/sec
        Disk Read Bytes/sec
        Disk Write Bytes/sec
        Avg. Disk Bytes/Transfer
        Avg. Disk Bytes/Read
        Avg. Disk Bytes/Write
        % Idle Time
        Split IO/Sec
      Instances
        0 C: D: E:
        _Total
    
    - Edit .\Plugins\Monitoring\PerfCounter.cfg and add new section for data source, identifying desired performance counter. It is important to specify exact name of object, counter to identify desired performance counter and instance index to identify desired HDD:

    Code:
    [Source15]
    ObjectName = PhysicalDisk
    InstanceIndex = 0
    CounterName = Current Disk Queue Length
    Name = HDD1 disk queue length
    NameTemplate  = HDD%d disk queue length
    Units =
    MaxLimit = 10
    MinLimit = 0
    Group = HDD1
    GroupTemplate = HDD%d
    
    - Don’t forget to edit .\Plugins\Monitoring\PerfCounter.cfg and restore Export= 0 in [Settings] section. Exporting full set of available performance counters is eating performance so we don’t have to keep it enabled.

    Done! Similar principle can be used to import ANY data from AIDA/HwInfo and add it to the plugins.
     
    HK-1, SnoutBaron, The1 and 2 others like this.
  12. boogieman

    boogieman Ancient Guru

    Messages:
    1,978
    Likes Received:
    46
    GPU:
    MSI GTX 1080X
    Great info.
    Alex, I'm using HWinfo version 5.2.2.0 and only monitoring (info obtained from HwInfo.log)

    Sensor1
    Inst 0
    Name CPU [#0]: Intel Core i7-6700K
    Reading0
    Type 2
    Name Core #3 VID
    Value 0.764893
    Units
    Reading1
    Type 6
    Name Core #0 Clock
    Value 800.000000
    Units

    Do you know if there is a minimum version of HWinfo required?
    Once this info is extended, does HWinfo still need to be running?

    Reason I ask is because the info shown in the newly created log appears to be lacking enough info to input into HwInfo.cfg so I'm stopping before going forward.
     
  13. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    16,596
    Likes Received:
    5,063
    The only requirement is shared memory interface support in HwInfo. AFAIR, export sensors to shared memory is supported in HwInfo since 2014, so any newer build is ok.

    Yes, HwInfo (or AIDA in case of using AIDA plugin) needs to be running to supply the data. For HwInfo plugin HwInfo sensors window must be also open and desired sensors must be enabled in it (otherwise it doesn't poll sensors unlike AIDA) and "Shared Memory Support" must be enabled in both applications.
    PerfCounter plugin doesn't need running any additional applications, it is extracting data directly from OS.
     
  14. boogieman

    boogieman Ancient Guru

    Messages:
    1,978
    Likes Received:
    46
    GPU:
    MSI GTX 1080X
    I decided before messing with cfg files I wanted to see if plugin is supported right out of the box. Hope I'm looking at this right because your guide is for adding "more custom sensors to hardware monitoring module". (IE not in the box?).
    [​IMG]

    Enabled hwinfo.dll plugin.
    This exposed CPU Voltage into graph. (plus other items don't want to use)
    Shared memory Support is checked.
    HWinfo sensor page is open and polling correctly (core #3 VID & Core 0 clock which both show in LCD).
    Graph limit changed from a high limit of 2 to 1.5 but does not change on graph.
    Click OK.
    Restarted both AB and HWinfo. No change.
    No voltage is being picked up by AB.

    So my conclusion is HWinfo is not sharing correctly or
    Changes in HWinfo.cfg are required (not sure yet of exact syntax if so) or
    AB bug or
    Marc brain fart. (likely this one)
     
  15. LocoDiceGR

    LocoDiceGR Ancient Guru

    Messages:
    2,704
    Likes Received:
    976
    GPU:
    Gigabyte 3060 Ti

    I would suggest use v5.58 version...5.22 is way to old.
     

  16. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    16,596
    Likes Received:
    5,063
    Marc, HwInfo plugin is configured to display its "VCore" sensor in MSI Afterburner's "CPU voltage" graph. If you don't have such sensor available in HwInfo - you'll get no data. If you wish it to take data from core VID instead - you have to reconfigure the plugin.
     
  17. boogieman

    boogieman Ancient Guru

    Messages:
    1,978
    Likes Received:
    46
    GPU:
    MSI GTX 1080X
    Bingo! I had core VID that worked in LCD but not Vcore. Graph is now displaying voltage. Thanks buddy.

    But Max limit not able to be changed to 1.5 from 2. Not a big deal really.

    Hopefully others will learn from my mistake.
     
  18. boogieman

    boogieman Ancient Guru

    Messages:
    1,978
    Likes Received:
    46
    GPU:
    MSI GTX 1080X
    Oh yea, I also set Alarm when limit out of range on Vcore of 1.6 max. and play a sound but I do not see a yellow horizontal line within that graph.
     
  19. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    16,596
    Likes Received:
    5,063
    That's definitively not supposed to be so, thanks for reporting. Seems like min/max limits can be specified as integers only for data sources imported from plugins, things like that is exactly what I was talking about when asked everyone to focus on new functionality during beta testing. At least somebody really _test_ new GUI, thanks a lot, Marc!
     
  20. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    16,596
    Likes Received:
    5,063
    Just started investigating it deeper, false alarm, it is supposed to be this way. Limits are visualized on the graph as rounded integers if difference between min and max limits is greater that 1. So 0-2 range should be displayed as integers, but 0-1 should be displayed as floating point 0.0-1.0. Summarizing, if you define maximum limit as 1.5 and leave default minimum as 0, limits will be rounded to integers while displaying (i.e. 0-2). Setting minimum to 0.5 will make it displayed as floating point number.
     

Share This Page