RTSS 6.7.0 beta 1

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

  1. CaptaPraelium

    CaptaPraelium Master Guru

    Messages:
    229
    Likes Received:
    62
    GPU:
    1070
    Because this:

    I wish I had a dollar for every time I've had to tell someone that their config file options in BF1 are using some setting from BF3 that haven't had any function whatsoever for over 5 years. They just copy it from someone who copied it from someone who saw it on a youtube video from someone who saw it on a forum and none of them have any idea what they're doing.

    Heck, just look at all the 'pre-rendered frames = 0' nonsense going about.
     
    JonasBeckman likes this.
  2. JonasBeckman

    JonasBeckman Ancient Guru

    Messages:
    15,728
    Likes Received:
    1,719
    GPU:
    Sapphire 5700XT P.
    Ah right that would be a problem, little to no testing or validation of how well it actually works and how it functions on the users own hardware and software configuration and setup.
    And yeah I do recall now that some tweaks such as for Source engine keeps re-appearing in entirely unrelated game engines or even the OS in general, tweak guides and quick premade presets being copied in entirety.

    EDIT: Which would then come back to Unwinder as the author of the software regardless of if it's the users fault or not for applying a advanced setting with little regards to how it should be used and what it's intended for.
     
    CaptaPraelium likes this.
  3. Unwinder

    Unwinder Moderator Staff Member

    Messages:
    14,443
    Likes Received:
    1,464
    Couple more framerate limiter related GUI enhancements will be available in the next beta:

    o Fractional framerate limit adjustment functionality is no longer power user oriented, now you may specify fractional limit directly from GUI
    o Now you may click “Framerate limit” caption to switch framerate limiter to alternate “Frametime limit” mode. New mode allows you to specify the limit directly as a target frametime with 1 microsecond precision
     
    tekwarfare, D2 Ultima, The1 and 3 others like this.
  4. cookieboyeli

    cookieboyeli Master Guru

    Messages:
    298
    Likes Received:
    42
    GPU:
    Gigabyte 1070 @2126
    I am extremely appreciative of this! :) This makes it so much easier to test small changes easily and quickly plus help people configure things without using teamviewer (because they can't comprehend instructions unless I explain in excruciating detail).

    Quick question - so after seeing %ABDir%\Benchmark.txt set for the default benchmark file path, I was wondering if there is some similar way to set paths outside of %ABDir% using the same method to enhance portability?

    For example, my screenshot folder is set to C:\Users\Instant\Pictures\Screenshots, so if I transfer my config file to someone else this is one of the things I have to manually set. Is there something like: %Username%\Pictures\Screenshots. I could be using instead that I just don't know about?
    I copy settings over to the dozens upon dozens of people I give free gaming/performance related tech support to. I'm trying to reduce the amount of manual configuration to save time.

    PS: I'm sorry for asking, (Would you prefer I'd made a separate thread for a question like this?) I know you don't like tons of questions unrelated to active development.
     

  5. Unwinder

    Unwinder Moderator Staff Member

    Messages:
    14,443
    Likes Received:
    1,464
    Nope, the only currently supported macroses for filenames are %ABDir%, %WinDir% and %SysDir%.
     
  6. Unwinder

    Unwinder Moderator Staff Member

    Messages:
    14,443
    Likes Received:
    1,464
    New RTSS beta is available:

    http://www.guru3d.com/files-details/rtss-rivatuner-statistics-server-download.html

    Changes list includes:

    · Fractional framerate limit adjustment functionality is no longer power user oriented, now you may specify fractional limit directly from GUI
    · Now you may click “Framerate limit” caption to switch framerate limiter to alternate “Frametime limit” mode. New mode allows you to specify the limit directly as a target frametime with 1 microsecond precision
    · Improved CBT hooks uninstallation routine to minimize the risk of deadlocking 3D application when dynamically closing RivaTuner Statistics Server during 3D application runtime
    · Improved validation in OpenGL On-Screen Display rendering routine to minimize the risk of crashing OpenGL applications
    · Changed OpenGL cleanup routines to improve compatibility with OpenGL applications using multiple rendering contexts (e.g. GPU Caps Viewer)
    · Added new "CPU wait" performance counter, displaying CPU time spent in busy-wait loop in framerate limiter or scanline sync mode

    Scanline sync mode also got a few power user oriented improvements:

    · SyncDisplay field is no longer an explicit text name of target logical GDI display device. Now SyncDisplay is the index of logical display device
    - Added SyncFlush field for flushing rendering pipeline before performing scanline synchronization
    - Realtime VTotal calibration algorithm parameters (SyncCalibrationDelta and SyncCalibrationCounter) are now adjustable, VTotal calibration progress is now displayed in OSD
    - Added SyncPollPeriod field for adjusting minimum interval between two scanline position polling events
    - Added SyncHotkeys field for adjusting sync scanline position in realtime. When it is set to 1, you may press <Shift>+<R> to recalibrate VTotal, <Shift>+<Up> to decrement sync scanline index (or both indices synchronically if you're using double VSync mode) or <Shift>+<Down> to increment sync scanline index. Note: indices are not validated and not saved to a profile, it is up to you to ensure that index is valid and to save it to profile manually when necessary

    Note:
    Not sure if you realize it, but FCAT overlay (in default color sequence mode) is really useful indicator of tearline position for single scanline sync mode. For double VSync (i.e. double scanline sync mode) FCAT in 2 bars mode gives even better indication.
     
  7. RealNC

    RealNC Ancient Guru

    Messages:
    3,110
    Likes Received:
    1,339
    GPU:
    EVGA GTX 980 Ti FTW
    SyncFlush=1 improves tearline positioning a lot in many games even in high GPU loads. I am not seeing any performance degradation when enabling it. Random tearline jumps still happen, but it's more rare. Or, to be more accurate, it changes from "happens almost all the time" to "happens relatively often."

    I don't know why SyncFlush=1 doesn't affect performance. In theory it should, but in practice it doesn't seem to be the case. Maybe I haven't tested enough games yet.

    One thing I noticed is that when using SyncHotkeys=1, you can get SyncScanline0 into negative values. This sounds very useful if RTSS would understand this as VT - N. So if the VT is 1481 and you set SyncScanline0=-100, then I think it would be useful if RTSS treated it as 1381.
     
    Last edited: Jun 27, 2018
  8. Unwinder

    Unwinder Moderator Staff Member

    Messages:
    14,443
    Likes Received:
    1,464
    Forgot to mention that SyncFlush in not a Boolean value. It can be set to 0 to disable flushing on sync, 1 to perform asynchronous flush (if supported by 3D API, otherwise perform synchronous flush) and 2 to perform synchronous flush (slowest one).
    Asynchronous flushing mode is available for D3D10,11 and OpenGL. D3D9, D3D12 and Vulkan always use synchronous flush.
     
  9. RealNC

    RealNC Ancient Guru

    Messages:
    3,110
    Likes Received:
    1,339
    GPU:
    EVGA GTX 980 Ti FTW
    Yep. I've now tried SyncFlush=2 and it does kill performance on modern games. On the other hand, old games (or very light games, like CS:GO @ 60Hz) work really, really well now. No tearing whatsoever.
     
  10. Unwinder

    Unwinder Moderator Staff Member

    Messages:
    14,443
    Likes Received:
    1,464
    Yep, I was thinking about implementing scanlines wrapping myself. It will be added.
     

  11. mdrejhon

    mdrejhon Member Guru

    Messages:
    103
    Likes Received:
    61
    GPU:
    4 Flux Capacitors in SLI
    Oh! You added my suggestion of Flush() after all.

    Yeah, it is a pick-poison (I hate its performance penalty too, but it really makes a huge difference -- but I'm glad you now agree on the other edge of the double-edge sword too!)

    But wow, it made a big difference with those "30%-50% GPU busy" situations.

    That's the goldilocks point on many GPUs where synchronous Flush() doesn't degrade performance (because of GPU headroom), while greatly massively improving the stability of tearlines.

    Asynchronous flush is an impressively good compromise. I'm actually not familiar how widespread asynchronous flush capability exists. If it's not common, then trial balloon of a compromise idea (might not be worth it, just throwing it out on table):

    For SyncFlush=2 ... Maybe create a SyncFlush=3 that only flushes when GPU performance is under 75% utilized. Basically measure the performance degradation of synchronous Flush() automatically (basically measure how long Flush() takes). When there's a sufficiently-long busywait that's longer than historic Flush() times, do the flush. If not, then skip the flush. That way, synchronous Flush() performance penalty disappears, and the tearline-positioning stability is much higher until maybe roughly >75% GPU utilization. Perhaps as a new "SyncFlush=3" or "auto" setting? Then after sufficient testing, maybe it could become good enough for non-betas?

    Regardless... It made a massive improvement to heavy GPU utilization. So massive, that (if somehow this is polished into a non-beta later on) I'm now thinking of rewriting the HOWTO: Low-Lag VSYNC ON to also include this -- but I'm going to wait for more success reports by power users to see how mainstreamable this feature is able to become...

    But, obviously, I realize this may permanently be a beta-only feature as you've said.
     
    Last edited: Jun 25, 2018
  12. mdrejhon

    mdrejhon Member Guru

    Messages:
    103
    Likes Received:
    61
    GPU:
    4 Flux Capacitors in SLI
    And fantastic for lower-lag ULMB.

    ULMB looks much better with VSYNC ON. But that amplifies strobe lag a lot. So this RTSS trick compensates hugely for this.

    You do have to run ULMB sometimes at a lower refresh rate (e.g. 85Hz or 100Hz) to make sure the tearlines are permanently hidden, and making sure framerate never dips below refresh rate.

    So you have ULMB with low-lag, zero-tearing, zero-jitter, zero-double-images, zero-stutter, zero-blur, with a lot less lag than traditional ULMB VSYNC ON. Avoiding the strobe-amplified jitters without adding input lag.

    (As long as using a 1000Hz mouse + good mousepad).

    Very useful for ULMB/LightBoost/DyAc/ELMB competitive gameplay. More useful in certain games and gaming tactics where you have to track eyes, though. (Relevant: HOWTO: Using ULMB Beautifully Or Competitively)

    Fantastic suggestion, and seconded.

    Basically, if you know your tearline jitter is 25 scanlines, you simply use roughly -25 as your scanline index.

    So you've got a pageflip 25 lines before the beginning of the refresh cycle, regardless of VBI size. And it wouldn't glitch when you used keypress adjustment to the negative region.

    That way instruction simplifies to telling users something like "Calibrate your jittering tearline area until it's fully hidden above top edge, then save the resulting negative number".

    And it would stay (mostly) stable even when you changed VBI size. Or even switched resolution a little bit. (e.g. continual tweaking of VBI size in Custom Resolution Utility, to see how big a VT you can get, to get the fastest Quick Frame Transport effect you can get...)

    Beyond-bottom-edge scanline indexes will more often glitch during continual CRU and mode tweaking, while negative indexes will always keep working (And easy to touchup minor offsets via keyboard).

    These moves do simplifies any future HOWTO's I may make for new RTSS uses...

    And more random thoughts below:

    Oh! One more thing.
    It might be a good idea to switch to a different hotkey like right-shift key only. (Or simultaneous Shift+Ctrl+Arrow)

    I often use the left shift key to move faster in some games, and arrows to strafe, so I accidentally move the tearline sometimes if both are pressed a lot.

    Not that I would keep the hotkey mode enabled all the time, but....

    If this feature is ever kept in non-betas....This will make any of my future HOWTO's a little bit more idiotproofed if a user forgets to turn off the hotkey setting. Obviously, it may be months before such HOWTOs occur, we'd need dozens of power users (including in Blur Busters Forums) to vet these new features out, but any low-lying-apple improvements in ease of tweaking -- builds up quite a bit as you imagine!
     
    Last edited: Jun 25, 2018
    CaptaPraelium likes this.
  13. CaptaPraelium

    CaptaPraelium Master Guru

    Messages:
    229
    Likes Received:
    62
    GPU:
    1070
    New RTSS features don't always make me confused, but when they do I... Uhm... What was I saying?
     
    mdrejhon and SpajdrEX like this.
  14. mdrejhon

    mdrejhon Member Guru

    Messages:
    103
    Likes Received:
    61
    GPU:
    4 Flux Capacitors in SLI
    I'm flooding this thread with programmerspeak, but some of them actually make the software simpler/more reliable.
     
  15. Unwinder

    Unwinder Moderator Staff Member

    Messages:
    14,443
    Likes Received:
    1,464
    Ok, I'll change it to <Ctrl>+<Shift>
     
    CaptaPraelium likes this.

  16. CaptaPraelium

    CaptaPraelium Master Guru

    Messages:
    229
    Likes Received:
    62
    GPU:
    1070
    I'm a programmer I just don't know display stuff from my foot XD
     
  17. JonasBeckman

    JonasBeckman Ancient Guru

    Messages:
    15,728
    Likes Received:
    1,719
    GPU:
    Sapphire 5700XT P.
    Yeah it looks to be a pretty solid feature set for more advanced usage since there's a possibility of impacting GPU performance and the settings overall seem more complex for how to set them up optimally which probably differs depending on hardware and software factors.

    The more in-depth tech posts are fun to read too although I only understand a small part if even that though the additions for 7.2.0 this has resulted in certainly looks promising. :)
    Certainly going to be a lot to read up on once I have the time to spend to test it more in-depth but depending on monitor capabilities and if the user has VSync on or not and then GPU features this can be immensely helpful from what I'm gathering.
     
  18. Unwinder

    Unwinder Moderator Staff Member

    Messages:
    14,443
    Likes Received:
    1,464
    I think I'll leave it as is in official releases as well.
     
  19. Unwinder

    Unwinder Moderator Staff Member

    Messages:
    14,443
    Likes Received:
    1,464
    I feel that scanline sync mode is in rather stable state now, so some basic settings can be provided to end user directly from main GUI. Now there will be "Scanline sync" field under "Framerate limit" so you'll be able to specify target scanline index (with wrapping support) there. Also you'll be able to switch between scanline sync / scanline sync 2x (double Vsync) modes there:

    upload_2018-6-27_13-19-2.png

    The rest settings (hotkeys, flushing and timeout related) are still treated as power user oriented and will be available via manual .cfg tweaks only.
     

    Attached Files:

    mdrejhon, framepacer and RealNC like this.
  20. mdrejhon

    mdrejhon Member Guru

    Messages:
    103
    Likes Received:
    61
    GPU:
    4 Flux Capacitors in SLI
    Nice! Scanline synchronized mode available to mainstream.

    Question for future user intuitiveness point-of-view: From your brand new UI tweaks, how will user know if scanline sync mode is turned ON/OFF? (I presume that's rolled into a different part of RTSS)
     

Share This Page