RTSS Overlay Editor Megathread

Discussion in 'MSI AfterBurner Application Development Forum' started by Haldi, Jan 26, 2021.

  1. Haldi

    Haldi Master Guru

    Messages:
    319
    Likes Received:
    41
    GPU:
    R9-290 CF
    Hello, this thread is supposed to contain all information you wan't to know about the Riva Tuner Statistics Server Overlay Editor.

    Editor.jpg

    This Overlay Editor allows you to easily create customized OSDs however you want them.


    First Steps:
    Unwinder made 3 Videos which bring you into the topic and show what the Editor can do:
    Video 1:
    Video 2:
    Video 3:
    Another Video in Korean. (use english subtitles... starts about OS on Minute 6)
    Another Video in Italian. (use english subtitles... stats about OS on Minute 8)
    Wolfgangs Guide

    FAQ:
    Custom Units (Mhz, GB) Formating and Calculations can be done in Data Sources
    In the RTSS Overlay Editor, Data Sources you can not only put in some correction formula and a new unit label but also a format style.

    Graphs will always be before Text:
    "graphs don't respect the layer order. I created a diagram of CPU usage of size 1x5 and moved the layer to the bottom, then created a layer with "Text=%CPU usage% %" on top of it. The text even though it's on top most layer it's still under the diagram."
    "That's expected behavior and result of optimized single pass overlay rendering and graphics primitives batching. All lines are always rendered in a single pass after all text symbols. That won't change."
    (Taken form the comments of the 2nd Video)
    Quote Unwinder: It will change with 7.3.2 beta 2. Quote from the release notes:
    · Slightly altered geometry batching implementation in On-Screen Display renderer. Previously RivaTuner Statistics Server internally represented On-Screen Display contents as a few uber batches, containing all On-Screen Display geometry grouped by primitive type (for example, the first batch containing triangles representing all On-Screen Display symbols, solid color bars, and embedded images and the second batch containing all lines used to render all graphs). Such batching provides optimal rendering performance and minimizes draw calls count and rendering pipeline state changes. With such implementation it was possible to render On-Screen Display contents in expected Z-order for the same type of graphics primitives (e.g. for text, images or solid color bars), but line primitives were always rendered on top of everything. New altered geometry batching implementation allows splitting uber batches on smaller batches, so it is now possible to render both lines and triangle primitives in expected Z-order. Please take a note that batches splitting mode is enabled by default, but power users may enable old uber batch rendering mode at profile level if necessary


    Graphs can have a marging border but text cant:
    You can solve this by decreasing the size of a normal text space with <S=25> <S>YOUR TEXT

    The Min/Max/Average Of Benchmarks do not show up!
    You need to manualy set a Hotkey for Benchmarking and Start/Stop your Benchmark for them to show in the OSD.

    Capture Indicator for Screenshots/Video Recording is on the wrong position!
    The Capture Indicator will always show up in the Topmost Layer! Simply Create a New Layer where you want it and click [Edit] -> Move to Top (or Press Home button)

    .ovl overlays only show in my games while the Overlay Editor is open. How can I show the .ovl overlays by just launching RTSS?
    Activate the plugin, set checkmark next to the plugin name in the list.

    The font/text has no shadow?
    As Unwinder explains here: "Outline generation algorithm is defined into Global profile template in [Font] section by following lines"

    Dynamic Colored Text based by Value?
    Andy K made a nice guide with pictures!

    How to use two different Overlays and Switch with Hotkeys?
    You guessed it! Settings -> Plugins -> HotkeyHandler.dll -> Overlay Editor Plugin [Configure] -> [...] Load Overlay with Parameters "youroverlay.ovl"

    How do i get awesome Colored Backgrounds?
    Using Background Images is explained here:
    https://forums.guru3d.com/threads/rtss-overlay-editor-megathread.436443/page-14#post-6126494



    The plan is to keep this Thread updated with all the new/important information, help out others with their styling issues and provide some example .ovl files in the 2nd Post. If this ends up well enough it might even get Sticky?
    If there is anything you think i should add in this post, feel free to mention me. I'll add it when i get the notification.
     
    Last edited: Apr 30, 2023
    GoldSrc, mcplaza, haha12 and 4 others like this.
  2. Haldi

    Haldi Master Guru

    Messages:
    319
    Likes Received:
    41
    GPU:
    R9-290 CF
    Collection of .OVX files:



    [OLD]Collection of .OVL files: (OVX Are used nowadays!)

    .ovl and .ovx files are located in: C:\Program Files (x86)\RivaTuner Statistics Server\Plugins\Client\Overlays\

    Help! The skin i installed looks nothing like on the Screenshot:
    Make sure you have set the correct Font (by Clicking on Raster 3D in RTSS). If that doesn't help Activate Master Settings in Layout Editor: Layouts > Edit > Master settings > OK.

    If you want a Skin in this list. Send me a PM or mention me!


     
    Last edited: Apr 15, 2023
  3. Haldi

    Haldi Master Guru

    Messages:
    319
    Likes Received:
    41
    GPU:
    R9-290 CF
    Fullscreen 16:9 10" Display
    Because of Emil's Post about using the OSD on a 2nd Monitor with the DesktopOverlayHost.exe i've got the idea of using this 10" Display which i bought for a Raspberry Pi as a performance monitor.

    signal-2021-01-26-175541.jpeg



    This is still a Work in Progress design but it shows most stuff for now. So i thought i'd share it early on.

    For this to only show on the 2nd Monitor (aka on DesktopOverlayHost only) you need to globally deactivate the OSD. If for whatever reasons you want to show the OSD ingame anway you can achieve that via Hotkeys.
    In RTSS Setup there is the HotkeyHandler.dll You have to create a custom Profile with the target profile property "EnableOSD" and set it to "1" or "0" to show or Hide the OSD.
    See Attached Screenshot:
    OSD.png



    Overlay.png

    I've updated the .OVX File with mostly Internal-HAL Sensors! Only the 3 Blue ones are from HWInfo.

    Download Link:
    Mega.nz
     
    Last edited: Apr 15, 2023
    vLaDv, BlindBison and chinobino like this.
  4. Andy_K

    Andy_K Master Guru

    Messages:
    837
    Likes Received:
    237
    GPU:
    RTX 3060
    converting a data source to another unit and adding custom formatting:

    In the RTSS Overlay Editor, Data Sources you can not only put in some correction formula and a new unit label but also a format style.

    In the RTSS OverlayEditorPlugin -> Data Sources-> Edit -> (for example) click "RAM usage"-> Setup

    default:
    [​IMG]

    converted to GB:
    [​IMG]

    Name: just a description you can put in
    Units: a label, just type in what you want
    Format: if you want integer, leave it blank. For one decimal use %0.1f, for 2 decimals use %0.2f,... you get the point
    Correction formula: x is the reported value (in MB) then divide by 1024 to get GB
     
    Last edited: Jan 27, 2021
    Kaminari, Miao, fuba82 and 4 others like this.

  5. Haldi

    Haldi Master Guru

    Messages:
    319
    Likes Received:
    41
    GPU:
    R9-290 CF
    Ohhhhhh Tanks a Lot Andy_K. I knew i've heard of that before but i just couldn't find it. Looks way better now :)
    And now i realize why i couldn't find that. Framerate and Min/Max can be used without being specified as Extra Data Source from Afterburner. After adding them editing them was easy.

    @bobnewels i've added your Cyberpunk OSD.ovl to the 2nd Post if that is Okay with you?

    @Emil if you ever switch from standard MSI Afterburner OSD to a Customized RTSS Overlay on your second Monitor let us know how it went.
     
    Last edited: Jan 27, 2021
  6. Snacko

    Snacko Member

    Messages:
    16
    Likes Received:
    2
    GPU:
    nVidia 1080TI
    I reinstalled Windows last week, and have been trying to figure out how to get the Framerate Min, Avg, and Max to work. They don't display any data OSD or in RSS. I can display the current Framerate fine. I looked through all of the current default Hardware Plugins and nothing works.

    How do you get the Framerate Min, Avg, Max values? I assume some plugin has to monitor and save the current Min, Avg, Max values as they probably aren't other sensors.

    Help?? Thx
    _______________________________________________________

    NEVER MIND!

    I finally figured out that I had to add a Benchmark Hotkey to make them display. That is very un-intuitive. There should be a checkbox or something on the Monitoring tab?
     
    Last edited: Jan 28, 2021
  7. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    17,083
    Likes Received:
    6,567
    It is very un-intuitive and just statistically wrong to expect this data to be collected all the time. Doing so will just invalidate ingame min/max values, because you'll see it completely distorted by game loading/menu frametimes. And yes, there is a separate checkbox for it as well.
    It is made this way to make you research and think about nature of this data.
     
    Last edited: Jan 28, 2021
  8. Haldi

    Haldi Master Guru

    Messages:
    319
    Likes Received:
    41
    GPU:
    R9-290 CF
    Mhmm, What about a Rolling Average of the Last Minute? Though that would not be usefull for "Benchmark" itself but more like a monitoring option.
     
  9. Haldi

    Haldi Master Guru

    Messages:
    319
    Likes Received:
    41
    GPU:
    R9-290 CF
    On-Screen Text Only

    While this cheap 10" Monitor worked without an issues on the RTx3090 it doesn't want to seem to work on my Vega64.... so i've restyled the OSD for "On Screen" usage ^^
    Overlay.jpg
    First Graph is Frametimes 2nd one is GPU Frequency.

    Download Link:
    Mega.nz
     
  10. Emil

    Emil Member

    Messages:
    17
    Likes Received:
    8
    GPU:
    ZotacGTX 1080 AMP Extreme
    I sold my GPU in September and to this day I haven't been able to buy a new one. I use integrated GPU. As soon as I buy something I will play with it.
     

  11. bobnewels

    bobnewels Maha Guru

    Messages:
    1,411
    Likes Received:
    1,051
    GPU:
    amd
    Looking forward to anyone posting custom graphics and overlays to try them out
     
  12. Taxxor

    Taxxor Member

    Messages:
    21
    Likes Received:
    1
    GPU:
    RX5700XT Nitro+
    @Unwinder Heyho^^

    we recently got a question regarding the overlay editor in combination with our own overlay.

    Basically, the way it worked before was that we added an empty line and a line saying "CX OSD" above our overlay entries if more than one client is using the OSD to clearly seperate us from other clients.

    Now that user switched from Afterburner to the RTSS overlay editor and although we can see that two clients are active, our overlay isn't placed below the one from the overlay editor but just at the top with the overlay editors items also being at the top overlapping it.

    [​IMG]
    [​IMG]
    Is there a different way that we have to handle this, or is it something that one can configure in RTSS?
     

    Attached Files:

    Last edited: Mar 2, 2021
  13. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    17,083
    Likes Received:
    6,567
    OverlayEditor uses layers concept with explicit positioning of each layer, it is supposed to allow creating complex overlays with multiple overlapping layers. You may use <P> tags in your hypertext for explicit CX overlay positioning.
     
  14. Taxxor

    Taxxor Member

    Messages:
    21
    Likes Received:
    1
    GPU:
    RX5700XT Nitro+
    I've already played with the position values a bit, but for automation we'd need to know where to position our overlay depending on how large the OverlayEditor currently is.
    Is there a method to get the current bottom position of it, so that we can set our position dynamically according to this + offset ?

    If not, well there's always the way of adding an option for users to choose the position manually in CX, but an automatic positioning would surely be better.
     
    Last edited: Mar 2, 2021
  15. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    17,083
    Likes Received:
    6,567
    That's not a realistic task. Overlay editor allows you to place a set of different sensors in each screen corner for example, or represent sensors as OS taskbar in the bottom of screen for example. With such approach you cannot expect to be displayed at bottom.
     

  16. Taxxor

    Taxxor Member

    Messages:
    21
    Likes Received:
    1
    GPU:
    RX5700XT Nitro+
    I see, didn't think of that.
    Manual position option it is, then.
     
  17. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    17,083
    Likes Received:
    6,567
    I’d leave both options available:

    - Render CX OSD in current cursor position as it is now (no <P> tag usage). This works best when combined with sequential OSD text rendering, e.g.with internal MSI AB or HwInfo OSD layout representation.
    - Render CX OSD in custom position (with <P> tag). This works best with complex layer based overlays created with Overlay Editor.
     
    Taxxor likes this.
  18. Taxxor

    Taxxor Member

    Messages:
    21
    Likes Received:
    1
    GPU:
    RX5700XT Nitro+
    @Unwinder I'd figured I just remove the tag when both position values are set to 0.

    But who knows, maybe there is a usecase where somebody explicitly wants CX OSD to be at 0,0 when using other clients, so I guess another checkbox is needed.

    Edit: Added and working as intended^^
     
    Last edited: Mar 3, 2021
  19. fabiobad

    fabiobad Active Member

    Messages:
    70
    Likes Received:
    0
    GPU:
    GTX 1060 ARMOR 6G OCV1
    Hi @Unwinder , I'm an huge fan of RTSS and I use it everyday so thank you ^^
    I want to ask you if there is any plan to add a function to tie a specific overlay to a specific exe, just like you can have multiple profiles for the framerate cap. Even an "Overlay ON/OFF" selector in the .exe profile would be great. Thank you again!
     
  20. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    17,083
    Likes Received:
    6,567
    Unlikely, close to zero chances. What you want is fundamentally incompatible with existing overlay rendering architecture. Overlay layouts are not being formatted in context of currently running 3D process. Layout is formatted by single overlay rendering client for ALL currently running 3D processes simultaneously, it won’t be possible to alter layout just for one desired process while leaving it unchanged for the rest or apply two different layouts for two different simultaneously running 3D processes. The closest solution for you would be manually switching layouts by hotkeys.
     
    fabiobad likes this.

Share This Page