MSI AB / RTSS development news thread

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

  1. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    17,197
    Likes Received:
    6,865
    FYI: COD Vanguard beta started and currently it restricts all CBT hooks similar to first COD Warzone Season 5 update. It is a part of new anticheat system so it won't be bypassed from my side similar to Warzone case (even considering that it is very easy to bypass CBT restriction with remote or any other alternate injection). Considering that COD Warzone developers whitelisted some CBT hooks including RTSS in recent updates, I can expect the same for Vanguard (hopefully on game launch).
     
    EpsilonsQc likes this.
  2. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    17,197
    Likes Received:
    6,865
    Fun story: even considering that COD Vanguard beta is currently blocking CBT hooks (so RTSS has no chance to be injected into the game), there are smartasses who got their first "fair gameplay rewards" today and already trying to claim that they were falsely banned because of overlay. Cheaters never change.

    Permanently banned : CODVanguard (reddit.com)
     
    EpsilonsQc, terry_bogard_sv and toyo like this.
  3. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    17,197
    Likes Received:
    6,865
    Important note:
    I've just identifed memory leak in the latest RTSS beta, hypertext parser was slowly leaking RAM in context of any 3D application when rendering the overlay with new dynamic color attributes applied to barchart graph (e.g. CPU load graphs in sample overlay incuded in distributive). New beta with the fix will be available shortly, most likely tomorrow. It will also feature new GUI option for enabling/disabling passive waiting for framerate limiter module, like I mentioned a few posts before.
     
    EpsilonsQc, Maddness, MrBeer and 10 others like this.
  4. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    17,197
    Likes Received:
    6,865
    I decided to delay beta with memory leak fix a bit, at least till September 23rd. Diablo 2 Resurrected will be released on that date and I’d like to ensurethat built-in D2R OSD profile created during this game beta testing stage works as intended with retail game version.
     
    EpsilonsQc, ultraex2003, The1 and 3 others like this.

  5. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    17,197
    Likes Received:
    6,865
    Full changes list for this beta, which I expect to launch in nearest few days, includes the following:

    o Fixed issue in hypertext parser, which caused memory leak when rendering barchart graphs with new dynamic color attributes applied to it
    o Fixed dynamic color attributes calculation for dynamic colors linked with frametime
    o Framerate/frametime linked dynamic color attributes are affected by RTSS refresh period settings for framerate/frametime counters now, they no longer update on each frame
    o Added framebuffer resolution info to shared memory layout for each running 3D application. This change is required to allow using <RES> hypertext tag in DisplayOverlayHost to display foreground application framebuffer resolution properly. This shared memory layout change will require updating MSI Afterburner to support it. Without the update current MSI AB beta will stop displaying process specific RAM / VRAM performance counters with this upcoming RTSS build. That's expected, MSI AB update will follow shortly after RTSS update too.
    o Fixed issue in video capture module, which could cause some 64-bit applications to crash when trying to capture video encoded with external VFW codecs
    o Framerate limiter’s passive waiting mode, introduced in the previous version, is no longer power user oriented. Now it is available in GUI under compatibility properties, so you can enable passive waiting if you prefer reduced CPU load and power consumption or disable it if you prefer maximum framepacing precision
    o Improved HotkeyHandler plugin:
    § Added workaround for internal DirectInput issue, which could cause hotkey handler to stop processing hotkeys correctly after locking/unlocking PC from keyboard with <Ctrl>+<Alt>+<Del> or <Win>+<L>. To bypass it the plugin is resetting hotkey handler state after lock screen transition now
    § Added optional RawInput based hotkey handler implementation
     
  6. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    17,197
    Likes Received:
    6,865
    Stress testing upcoming RTSS beta with Kena : Bridge of Spirits. Really like new game, graphics is eye candy and it runs ultra smooth on my primary development PC with hybrid scanline sync mode:

    [​IMG]
     
    EpsilonsQc, SpajdrEX, The1 and 5 others like this.
  7. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    17,197
    Likes Received:
    6,865
    Diablo 2 Resurrected was just released and it was a good idea to delay beta launch due to it. As I expected Blizzard renamed vague executable name from Game.exe (which they used for beta) to D2R.exe for retail product. D2R profile template for it must be renamed accordingly.
     
    EpsilonsQc likes this.
  8. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    17,197
    Likes Received:
    6,865
    I spent around 1.5 hours inside D2R to ensure that renamed overlay profile works properly and I'm ready to publish it. It will be online as soon as Hilbert upload it.
    In addition to changes mentioned a few posts above 7.3.2 beta 4 build 25126 also includes the following:

    - Renamed Diablo 2 Resurrected On-Screen Display profile to sync it with retail game executable name change
    - Added maximum CPU core load data source to OverlayEditor plugin HAL. Sample overlay is displaying maximum CPU core load history graph under per-core CPU load barchart graphs

    Stay tuned!
     
    EpsilonsQc, ParKur, bobnewels and 3 others like this.
  9. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    17,197
    Likes Received:
    6,865
    RTSS 7.3.2 beta 4 build 25126 is online:

    https://download-eu2.guru3d.com/rtss/[Guru3D.com]-RTSSSetup732Beta4Build25126.rar

    Full changes list:

    o Fixed issue in hypertext parser, which caused memory leak when rendering barchart graphs with new dynamic color attributes applied to it
    o Fixed dynamic color attributes calculation for dynamic colors linked with frametime
    o Framerate/frametime linked dynamic color attributes are affected by RTSS refresh period settings for framerate/frametime counters now, they no longer update on each frame
    o Added framebuffer resolution info to shared memory layout for each running 3D application. This change is required to allow using <RES> hypertext tag in DisplayOverlayHost to display foreground application framebuffer resolution properly. This shared memory layout change will require updating MSI Afterburner to support it. Without the update current MSI AB beta will stop displaying process specific RAM / VRAM performance counters with this upcoming RTSS build. That's expected, MSI AB update will follow shortly after RTSS update too.
    o Fixed issue in video capture module, which could cause some 64-bit applications to crash when trying to capture video encoded with external VFW codecs
    o Framerate limiter’s passive waiting mode, introduced in the previous version, is no longer power user oriented. Now it is available in GUI under compatibility properties, so you can enable passive waiting if you prefer reduced CPU load and power consumption or disable it if you prefer maximum framepacing precision
    o Improved HotkeyHandler plugin:
    § Added workaround for internal DirectInput issue, which could cause hotkey handler to stop processing hotkeys correctly after locking/unlocking PC from keyboard with <Ctrl>+<Alt>+<Del> or <Win>+<L>. To bypass it the plugin is resetting hotkey handler state after lock screen transition now
    § Added optional RawInput based hotkey handler implementation
    o Renamed Diablo 2 Resurrected On-Screen Display profile to sync it with retail game executable name change
    o Added maximum CPU core load data source to OverlayEditor plugin HAL. Sample overlay is displaying maximum CPU core load history graph under per-core CPU load barchart graphs
     
    toyo, EpsilonsQc, bigcid1 and 8 others like this.
  10. Pinstripe

    Pinstripe Master Guru

    Messages:
    305
    Likes Received:
    62
    GPU:
    RX 7700 XT
    Shouldn't passive waiting mode be disabled by default in order to best reproduce the previous RTSS' version behaviour? Or does it really not matter too much?
     
    EpsilonsQc likes this.

  11. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    17,197
    Likes Received:
    6,865
    It is application CPU load and platform timer resolution specific. Framepacing precision wise both modes can be equal in many cases. I left it on by default because some reviewers had turely "nice" idea to compare "efficieny" of different framerate limiters by CPU load (?!?!). So default config leaves such reviewers no chances to compare apples to oranges.
     
    EpsilonsQc likes this.
  12. aufkrawall2

    aufkrawall2 Ancient Guru

    Messages:
    4,503
    Likes Received:
    1,876
    GPU:
    7800 XT Hellhound
    I can confirm RTSS screenshot hotkey doesn't break anymore after ctr + alt + del. Thanks for that, this really makes life a lot more convenient (the simple fact that Windows doesn't even ensure alt + tab to always work reliably...).
     
    EpsilonsQc likes this.
  13. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    17,197
    Likes Received:
    6,865
    It didn't completely break before either, it temporarily stopped working properly but it was rather easy to bypass it if you knew the nature of DirectInput bug that caused it: previously it was enough to press/release Ctrl and Alt one more time after leaving lock screen initiated with Ctrl+Alt+Del to restore proper hotkey handling functionality.
    That Directinput issue is a good example showing how one Microsoft technology (their lock screen security enhancements) can easily break other Microsoft technology (their DirectInput API). At some stage somebody @ MS decided that it is a good idea to protect lock screen from software keyboard listeners, so no malware could steal your MS account password by monitoring and logging keyboard input. So they completely supressed any forms of keyboard handling during displayed lock screen. By doing so they sadly also broken DirectInput: it is internally monitoring keyboard press/release events so it could see Ctrl+Alt+Del key presses and report it to applications using DirectInput, but it never detected Ctrl+Alt+Del release events if you released those keys during lock screen (because keyboard input was already supressed due to lock screen protection). So Ctrl+Alt left in pressed state after lock sceen transcaction for DirectInput, but it was enough to press/lelease them one more time for it to see them released properly.
    RTSS hotkey handler is bypassing this DirectInput issue now by monitoring lock screen transactions and forcibly resetting pressed key states in this case.

    MSI AB hotkey handler in the next AB beta will also receive the same workaround.
     
    EpsilonsQc, aufkrawall2 and dr_rus like this.
  14. terry_bogard_sv

    terry_bogard_sv Member Guru

    Messages:
    162
    Likes Received:
    34
    GPU:
    AMD RX 6800 16GB
    Hi Unwinder, I see that disabling Passive Waiting in the RTSS properties adds a "PassiveWait=0" to the game profile... would this conflic with the option "PassiveWaitThreshold=0 (or 1)" already in the game profile?
     
  15. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    17,197
    Likes Received:
    6,865
    Additional binary PassiveWait switch has been added to allow globally toggling passive waiting mode while possibly keeping independent thresholds in different application profiles. Threshold is not a binary value BTW, it is specified in percents so setting it to 1 has no sense.
     
    Last edited: Sep 24, 2021
    EpsilonsQc and terry_bogard_sv like this.

  16. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    17,197
    Likes Received:
    6,865
    Important note:
    Closed beta testing of Halo Infinite just started, and those who test it probably noticed that RTSS overlay is invisible in this game. Halo Infitinite beta is not open for everyone at this stage, so I cannot install it here yet, but my huge thanks goes to Ax4x Nelly, who helped to find workaround and even identify the root of this issue.
    Closed beta of this game is distribited with customized D3D runtime libraries located inside the game folder (D3D12Core.dll). RTSS is forcibly disabling its own D3D hooking in such environment, locally distributed custom versions of D3D libraries are typical for game mods, 3D API retranslation proxies etc, which are frequently fundamentally incompatible with overlays. So RTSS never try to inject such DLLs with default settings, if they are loaded from the game folder instead of system OS folders, where they are supposed to be located. Running such game with RTSS will also reduce performance because it will periodically try to reinit overlay again and again.
    To solve it you simply need to allow RTSS to hook this game with custom versions of D3D runtimes. It can be done by adding profile for HaloInfinite.exe and enabling "Custom Direct3D support" option for this profile.
    Most likely the issue is specific to game beta and MS will remove those files from retail version of the game. If the files will stay there in retail build - I'll simply need to add similar built-in profile for it applying such settings on game release. For now, i.e. during beta stage, just keep it in mind and add such profile for it on your side.

    Edit:
    Digged it a bit deeper. Looks like such local D3D12 distribution form is Microsoft’s attempt to let game developers to experiment with future D3D12 extensions before they get massively released to everyone with OS updates. Such D3D12 runtumes distribution form assumes that local copy of D3D12 libraries is loaded by game if OS D3D12 runtimes are older than game’s local ones and OS D3D12 runtimes will be loaded if they are newer. Halo Infinite is the first and currently the only game using such model, but it is definitively not the last one, so something definitively needs to be done to improve compatibility with such products in future on my side. What I can and will do is reducing performance penalty caused by overlay init fail/reinint attempts when such local libraries are not hooked. That’s rather trivial. But I don’t yet see proper solution for supporting overlay and hooking for such cases “out of box”. Solving it by simply enabling “Custom Direct3D support” for all applications is not an option, it requires creating dummy D3D device in context of each D3D process for proper hooking, which has disadvantages and can be incompatible with some games too.
     
    CrazY_Milojko, toyo and EpsilonsQc like this.
  17. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    17,197
    Likes Received:
    6,865
    “Nice” weekend. Got so many toxic hate posts from Halo Infinite fanboy kids targeted at RTSS in different places where my last post was quoted (reddit is definitively #1 storage of absolutely moronic teenage hate). Which leaves only one question in my head: do I really need to continue sharing RTSS with users and bother to develop it further and support it in any form? Why to waste huge part of life on something returning so much hate in exchange? With each such day I have the same feeling becoming stronger and stronger : my free software distribution principles seem to be an utopia. It should die.
     
    toyo and EpsilonsQc like this.
  18. boogieman

    boogieman Ancient Guru

    Messages:
    1,984
    Likes Received:
    50
    GPU:
    MSI GTX 1080X
    Because the millions who love you far out weigh the few that are immature idiots.
     
    Kaminari, Maddness, Andy_K and 7 others like this.
  19. EpsilonsQc

    EpsilonsQc Member

    Messages:
    47
    Likes Received:
    10
    GPU:
    Radeon RX 6800 XT
    F*ck them. My advice would be to avoid reading negative stuff related to your works. Whatever you do in life, there will always be people who are hateful towards you. It's as much true as death, taxes and inflation.
     
    gedo, toyo, Paul B and 1 other person like this.
  20. Astyanax

    Astyanax Ancient Guru

    Messages:
    17,040
    Likes Received:
    7,380
    GPU:
    GTX 1080ti
    I believe you should be able to check what dll you need to load against by querying agility sdk parameters.
     
    Unwinder likes this.

Share This Page