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,242
    Likes Received:
    6,994
    Context help for "Curve editor" button documents them all. Also, I created a video about V/F curve editor keyboard shortcuts a few years ago:

     
    wtfisgoingon, prueba22, Feyd and 2 others like this.
  2. arcDaniel

    arcDaniel New Member

    Messages:
    5
    Likes Received:
    0
    GPU:
    RTX 4070
    Thx, the video is great! Saved it on a playlist :)
     
  3. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    17,242
    Likes Received:
    6,994
    And more of reddit "wisdom", the next fun person telling me that there is no "GPU time" monitoring in RTSS:

    upload_2024-4-4_8-5-23.png
     
    SanokKule, lifexstyle, Feyd and 3 others like this.
  4. Vimes

    Vimes Member

    Messages:
    20
    Likes Received:
    2
    GPU:
    RTX 4080 FE
    It must be equal parts bemusement as well as frustration for you.
    Chinese whispers on a surreal scale...
     

  5. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    17,242
    Likes Received:
    6,994
    SanokKule, Feyd and Vimes like this.
  6. Vimes

    Vimes Member

    Messages:
    20
    Likes Received:
    2
    GPU:
    RTX 4080 FE
    I suppose I'm looking at this as a user without consideration of a seasoned dev who had spent a considerable amount of time and effort into creating what they offer, to then be misrepresented.

    A point being, if it is said and repeated often enough, it becomes a truth.

    Like playing whack-a-mole.

    Lots and lots of moles tho on reddit
     
    Last edited: Apr 4, 2024
  7. dr_rus

    dr_rus Ancient Guru

    Messages:
    3,962
    Likes Received:
    1,067
    GPU:
    RTX 4090
  8. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    17,242
    Likes Received:
    6,994
    It uses different layout of exported parameters due to switch from present-to-present to start-to-start sampling, an attempt to replace it won't work of course.
     
    Feyd likes this.
  9. Ichisich

    Ichisich Member

    Messages:
    10
    Likes Received:
    5
    GPU:
    AMD RX 580
    So PresentMon 2 now uses the same frametime calculation point as RTSS does by default?
     
  10. RealNC

    RealNC Ancient Guru

    Messages:
    5,257
    Likes Received:
    3,513
    GPU:
    4070 Ti Super
    Ichisich likes this.

  11. Ichisich

    Ichisich Member

    Messages:
    10
    Likes Received:
    5
    GPU:
    AMD RX 580
    Unwinder after reading the PresentMon Changelog:
    [​IMG]
     
  12. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    17,242
    Likes Received:
    6,994
    Quite opposite actually. Intel eliminated one source of misunderstanding for users (start-to-start vs present-to-present frametime sampling point related) and just introduced another, probably even bigger one. IMHO it was really bad idea to call delta between frame-start and frame-present as CPUBusy and rename previously existing msInPresentAPI metric (which is a delta between frame-present and frame-present-return) to CPUWait. 99.0% of non-developer users are confused by such naming and absolutely believe that it allows them to "show things like engine shortcomings" and see the things that were invisible before.
    I tried to explain what is new CPUBusy/CPUWait at reddit yesterday, but users residing there seem to be stupid as f%ck (as the majority of those who post there sadly), those kids just actively downvote it and keep living in their own reality.

    In meanwhile some of them already started spamming Intel with "bugreports" about it, without understanding what CPUBusy/CPUWait is:

    CPUBusy always shows up as equal to FrameTime · Issue #222 · GameTechDev/PresentMon (github.com)
     
  13. aufkrawall2

    aufkrawall2 Ancient Guru

    Messages:
    4,652
    Likes Received:
    1,949
    GPU:
    7800 XT Hellhound
    Still would be nice if we had some more reliable way to know what's going on on screen. I guess it would be up to the graphics driver to achieve this, e.g. interpret FCAT as one of the last steps before scan-out.
     
  14. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    17,242
    Likes Received:
    6,994
    Development never stops :D The first beta of RTSS 7.3.7 is expected in the next few days. Changes list includes:

    · Improved hypertext parser:
    o Now bar range graphs are rendered when the range width is less than one pixel
    · Added late initialization of Vulkan device function pointers aimed to improve Vulkan hooking reliability in the applications dynamically loading vulkan-1.dll on the systems with multiple installed third party Vulkan layers
    · Improved OverlayEditor plugin:
    o Improved NVIDIA Reflex metrics access functionality. Previously NVIDIA Reflex metrics were represented by hardcoded internal "NVIDIA Reflex XXX timespan" and "NVIDIA Reflex XXX latency" groups of data sources. Such internal data sources are deprecated since this version, now you can use more robust functions for accessing NVIDIA Reflex data:
    § New reflexlatency(markerFrom, markerTo) function can be used to calculate a latency between two arbitrary NVIDIA Reflex latency markers related to the current frame. You can specify one of the following marker identifiers: 0 – input_sample, 1 – simulation_start, 2 – simulation_end, 3 – rendersubmit_start, 4 – rendersubmit_end, 5 – present_start, 6 – present_end, 7 – driver_start, 8 – driver_end, 9 – osrenderqueue_start, 10 – osrenderqueue_end, 11 – gpurender_start, 12 – gpurender_end, 13 – virtual gpurender_start (gpurender_end minus GPU active time). You may also set markerFrom to -1 to specify the very first marker and set markerTo to -1 to specify the very last marker if necessary. This function allows you to calculate all NVIDIA Reflex latencies previously represented by hardcoded internal "NVIDIA Reflex XXX latency" data sources and implement additional custom latencies (e.g. a latency between simulation_start and present_start markers)
    § New reflextimespan(markerFrom, markerTo, base) function can be used to calculate and encode a timespan between two arbitrary NVIDIA Reflex latency markers related to the current frame. This function allows you to calculate all NVIDIA Reflex timespans previously represented by hardcoded internal "NVIDIA Reflex XXX timespan" data sources and implement additional custom timespans (e.g. a timespan between simulation_start and present_start markers). Also the previous "NVIDIA Reflex XXX timespan" data sources calculated timespan using fixed base 100 (meaning that the timeband graphs visualizing the timespan had just 100 gradations), now you may specify custom base to implement more detailed timebands
    § New reflextime(id) function can be used to access absolute times reported by NVIDIA reflex for the current frame. You may set time identifier to 0 to get GPU active or 1 to get GPU frametime
    o Built-in reflex.ovl overlay layout has been modified to demonstrate new reflextime/reflextimespan/reflexlatency functions usage instead of deprecated "NVIDIA Reflex XXX timespan" and "NVIDIA Reflex XXX latency" data sources. Please apply similar modifications to your custom overlays, if you used deprecated data sources there
    o Updated helper PresentMonDataProvider.exe application:
    § Added PresentMon V2 service support. Please take a note that due to major changes between PresentMon V1 and V2 service API, service API V1 is no longer supported
    § Added PresentMon V2 console application support. Unlike the service, console mode is backward compatible with the previous versions of PresentMon, so you may switch to the previous versions of console PresentMon if necessary via the configuration file. The most recent versions of console PresentMon V1 and V2 applications are included into distributive
    § Added configuration file setting allowing power users to specify additional command line parameters for console mode (e.g. -v1_metrics for forcing condole PresentMon V2 to report V1 metrics or -track_input for enabling experimental input tracking functionality in PresentMon V1)
    o Updated PresentMon data provider:
    § Added PresentMon V2 metrics support. The most of PresentMon V1 metrics are also reconstructed in realtime from V2 metrics for your convenience and for backward compatibility with previously existing PresentMon based overlay layouts. Please take a note that PresentMode metric encoding changed between V1 and V2 versions of PresentMon service API, so now OverlayEditor use new encoding too. All PresentMon based overlay layouts have been updated to reflect new PresentMode encoding. Please apply the same changes to your overlays if you decode PresentMode there
    § PresentMon V1 service API specific hardware telemetry is no longer available in PresentMon data provider
    o Added presentmon_frame_scale_V2.ovl overlay layout:
    § The layout demonstrates usage of PresentMon V2 specific data sources and keyboard based overlay transformations. You may press <F> to switch between present-to-present (PresentMon V1) and start-to-start (PresentMon V2) frametime sampling modes in realtime
    § The layout demonstrates PresentMon V2 ClickToPhotonLatency data source usage to render input events graph and calculate averaged latency for the last 512 frames
    · Bundled DesktopOverlayHost has been upgraded to v1.4.0:
    o Added Direct3D10, Direct3D12 and Vulkan rendering backends. New backends do not affect the primary application’s functionality, however now you may use DesktopOverlayHost as a built-in overlay rendering test for all supported 3D APIs in x86 applications
    o Added optional 64-bit version of DesktopOverlayHost. You may use it as a built-in overlay rendering test for all supported 3D APIs in x64 applications
    o Added power user oriented config file switch allowing using idle based rendering loop instead of default timer based rendering loop
    o Updated DesktopOverlayHostLoader helper application can launch both 32-bit and 64-bit versions of DesktopOverlayHost
    · Updated profiles list
     
    A.Wesker, Kaminari, toyo and 20 others like this.
  15. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    17,242
    Likes Received:
    6,994


    This video demonstrates the following new features of RTSS 7.3.7:

    - Customizable Reflex data sources. Fixed set of Reflex latency/timespan data sources was available before, now you may use new reflexlatency/reflextimespan formulas inside your custom Reflex related data sources to calculate latencies between two arbitrary Reflex markers. I demonstrate it by changing yellow Reflex "Simulation" timeband to "Simulation-to-Render-Submit" timeband. Initially it is a latency between simulation_start [1] and simulation_end [2] markers, I change it to simulation_start [1] and rendersubmit_end [4]

    - New PresentMon V2 overlay layout. With PresentMon V2 Intel changed their frametime sampling approach from Present-to-Present to Start-to-Start. Modified PresentMon V2 overlay layout allows you to see both old Present-to-Present and new Start-to-Start frametimes and dynamically switch between them with "F" key. That's what I demonstrate a few times next.

    - When I press "F" to switch between frametime sampling modes, you may observe two nearby orange spikes on the graph per each key press (please remember that PresentMon's data is delayed by approximately 3 seconds, this delay is reflected as "Reporting lag" in overlay). This orange graph is new PresentMon's ClickToPhotonLatency metric. Those two nearby spikes are key press and release events for each key press.

    - Now I move mouse around to see mouse activity related "jigsaw" on ClickToPhotonLatency.

    - Then I press and hold "D" button so you can see one more "jigsaw", which is reflecting automatic repeating key press event from keyboard

    - As you see, ClickToPhotonLatency is not static so it makes no sense to display absolute value for it. Instead of that, this overlay layout calculates and displays average value for it. I show that I do it with swavg(x,512) function, which is calculating average value for "S"liding "W"indow containing the last 512 ClickToPhotonLatency samples

    - And finally, I show you how do I implement overlay transformation with keyboard events to switch between Present-To-Present and Start-to-Start frametime sampling modes. I added IsPresentToPresent data source, which checks if "F" key press counter is even/odd. Then I simply display frametime either as msBetweenPresents (PresentMon V1 present-to-present metric) or as CPUFrametime (PresentMon V2 start-to-start metric)
     
    toyo, EDK-Rise, jozef1605 and 10 others like this.

  16. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    17,242
    Likes Received:
    6,994
    I've sent RTSS 7.3.7 Beta 1 build 28020 to Hilbert for uploading. Once he has some free time, it will be online.
     
    A.Wesker, toyo, lifexstyle and 8 others like this.
  17. aufkrawall2

    aufkrawall2 Ancient Guru

    Messages:
    4,652
    Likes Received:
    1,949
    GPU:
    7800 XT Hellhound
    Once again trending:
     
    toyo, Feyd and Unwinder like this.
  18. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    17,242
    Likes Received:
    6,994
  19. Ichisich

    Ichisich Member

    Messages:
    10
    Likes Received:
    5
    GPU:
    AMD RX 580
    dr_rus likes this.
  20. Sledgepainter

    Sledgepainter Member Guru

    Messages:
    115
    Likes Received:
    24
    GPU:
    RTX 4070 Ti
    Small "feature" request: would you be willing to add a simple icon to the main window that would show state of MPO? It's very finicky and can be disabled by plethora of things. Too many times it was off without me knowing about it, so being able to quickly check its status in AB without the need to always generate Dxdiag report would be handy. :)
     

Share This Page