Discussion in 'MSI AfterBurner Application Development Forum' started by Unwinder, Feb 20, 2017.
#stayathome if anything should speed up the development.
Not in my case, I've got my office PC to home and do my primary medical software development distantly so sadly I have as much time for my hobby as before.
Looking very cool can't wait to see what cool overlays are created with this, stay safe Unwinder and no rush. Appreciate all your worok as always!
Looks like the latest AMD driver broke something again. No clocks and VRAM util
Please leave this thread free of anything not related to new features development and testing. It is not about AMD drivers.
I'm updating RTS 7.3.0 changes list for readme now. Documenting all changes is normally the last thing I do before releasing new version.
Also, I had to play Doom Eternal almost whole day today and Doom 2016 yesterday to test something. Something related to it is in the pocket
Changes list is almost ready
Beta 3 will include the following changes comparing to Beta 2:
· Improved RivaTuner Statistics Server host API:
o New localization API is allowing the plugins to use host multilanguage translation functionality for localizing the plugin’s GUI
o New On-Screen Display preview API is allowing the plugins to render On-Screen Display on top of Direct3D frambuffer specified by caller and report back each rendered layer’s screen position and extent. On-Screen Display preview API can be used to implement visual On-Screen Display editing functionality
o Added helper PickColor API function, allowing the plugins to use advanced host color picker dialog window
· Improved On-Screen Display hypertext formatting implementation:
o Various fixes in alignment, positioning and backspace tags parsing implementation
o Added layer definition tags. Each layer defined inside the hypertext is treated by parser as an independent block of text and new On-Screen Display preview API is able to report each rendered layer’s screen position and extent independently. Please take a note that layer definition tags also affect text extent calculation, so embedded objects with zero height and width defined inside the layer are covering just their layer area instead of whole On-Screen Display area
o Added extent override tags support. By default the layer extent is defined by hypertext content, but you may force the layer extent to be greater than actual content extent with new extent override tag. The tag also allows aligning the layer content by left/right/top/bottom or centering it horizontally/vertically
o Added image loading tags support. The tags are allowing the parser to load and embed a custom PNG image into On-Screen Display font texture
o Added image embedding tags support. The tags are allowing you to render a part of On-Screen Display font texture image into hypertext. This allows you to display custom logos or animated image sequences into On-Screen Display
o Added defaults override tags support. The tags are aimed to be used in pairs, to start and stop defaults override blocks inside the hypertext. The first tag starts the block, stores default hypertext formatting attributes (text color, size and so on) and saves currently applied hypertext formatting attributes as new defaults. This way user defined defaults are being applied with default text color or size tags inside defaults override block. The next tag ends the block and restores previously saved default hypertext formatting attributes
o Changed embedded object size interpretation. Now positive size values are treated as zoomed pixels instead of fixed pixels
o OverlayEditor plugin is advanced visual hypertext editor, providing you more than any currently existing overlay can do. There were a lot of fair and independent commercial overlay reviews recently, claiming that it is absolutely impossible to develop visual overlay editing in free applications and that feature wise all free overlays are second tier products comparing to commercial ones. We decided to take it as a challenge, burst that marketing bubble and provide the plugin with such functionality free of charge to anyone who still believes in free system software distribution principles like us. So this plugin was developed from scratch in just a few weeks. It comes with fully open source code included in SDK, so you can peek inside and improve it or just see if such kind of functionality is really a rocket science development:
§ Unified and extremely flexible overlay layout editing GUI, which can be used in combo with any major and most popular hardware monitoring cores available on the market: HwINFO64, AIDA64 or MSI Afterburner. Wish to attach something else, e.g. GPU-Z? Not a problem, it can be easily done by any beginner developer in just a few hours because the plugin is completely open source. Your overlay layout can be easily adapted to any hardware monitoring data provider application and it will look exactly the same and stay exactly the same feature rich. With such modular architecture overlay rendering and editing application is completely decoupled from hardware monitoring core so it is extremely easy to troubleshoot hardware monitoring related compatibility issues and switch to a different hardware monitoring data provider application. Such modular architecture is a pro, not a con
§ The plugin provides internal data sources, which are measured by RivaTuner Statistics Server itself (e.g. framerate, frametime, minimum/maximum/average/1%/0.1% low framerates for benchmark mode). Such data sources can be used in overlay layout as is, without running any additional hardware monitoring data provider application in background. In addition to that the plugin also provides a few internal CPU/RAM related data sources, which come directly from OS performance counters and which do not require polling hardware either directly or via vendor specific APIs. Such data sources have zero chances to affect hardware compatibility or reduce performance, so they don’t break our main principle of decoupling overlay from hardware monitoring application
§ The plugin provides internal ping monitoring data source, implementation is a direct clone of MSI Afterburner’s ping monitoring plugin. Ping monitoring is not natively available in HwINFO64 or AIDA64, so this internal data source is aimed to help those who plan to use this plugin without MSI Afterburner in combo with HwINFO64 or AIDA64
§ The plugin provides MSI Afterburner styled correction formulas for all external data sources. Which means that you can transform data received from external hardware monitoring data provider applications in any form, for example convert memory usage from megabytes to gigabytes and many more
§ The plugin provides layer based overlay layout representation, which is typical for graphics editors. Such architecture suits best for creating more complex and artistic On-Screen Display layouts, but requires a bit more time and efforts
§ Each layer is independently formatted and positioned hypertext block, which can display both static and dynamic hypertext. In addition to standard customization of each layer’s hypertext formatting attributes (text and background color, font size, subscript or superscript text size, text alignment etc), you can also embed the following objects directly into hypertext of each layer:
· Rich set of different macro definitions, displaying system time in different formats, programmable timers, your PC hardware specs and of course current values of internal plugin data sources (e.g. framerate or frametime) of external data sources exported from different hardware monitoring applications (e.g. GPU temperature exported from MSI Afterburner)
· Traditional, diagram or barchart styled graphs attached to any data source, either internal or external one
· Static images, displaying your hardware manufacturer logos and so in
· Dynamic animated images, changing depending on data source connected to animation input. This way you can create absolutely uniquely looking graphics indicators in your overlay layouts, e.g. round progress indicators, gauges etc
· You’re not limited to embed just a single object per layer. This means that for example you may create a layer containing all CPU load barchart graphs and make them share the same settings template, which makes it much easier to modify such overlay layouts
§ Complete freedom of choice, you can still customize On-Screen Display layout via built-in GUI of MSI Afterburner, HwINFO64 or AIDA64. Use new plugin only if you need it and wish to create something more complex than native MSI Afterburner or HwINFO64 On-Screen Display layout
Ah, and one more thing for Doom Eternal fans
· Added alternate asynchronous On-Screen Display renderer for Vulkan applications presenting frames from compute queue (id Tech 6 and newer engine games like Doom 2016 and Dooom Eternal). The implementation is using original AMD’s high performance concept of asynchronous offscreen overlay rendering and the principle of asynchronically combining it with framebuffer directly from compute pipeline with compute shader without stalling compute/graphics pipelines. PresentFromCompute entry in global profile template is set to 1 by default now and it enables new asynchronous implementation. The previous synchronous and more performance consuming implementation is also available and can be enabled by setting PresentFromCompute to 2. It is recommended to enable the previous synchronous implementation for performance comparisons only and for estimating difference in performance hit between new and old implementations
Wow you have busy! Sounds like an awesome update! Excited to check it out! Thanks for all your work!
We're preparing to upload it, stay tuned!
RTSS 7.3.0 beta 3 build 21707 is online. Changes list is available a few posts above.
With this beta I'm interested in stress-testing of new visual hypertext editor plugin. There were a few videos dedicated to development and features of this plugin, it is recommended to invest a few minutes in watching them to get better understanding of the plugin's functionality:
P.S. Please take a note that the first videos were captured while development was in progress, so the final GUI changed a bit. But the principles and core features didn't change.
BTW, a few important notes on OverlayEditor plugin compilation for developers. Developer of HwINFO64 prefer to keep his shared memory layout private and provide the header with format definition to trusted freeware applications developers only. So you won't be able to compile the plugin with full HwINFO data importing support unless you contact Martin (HwINFO developer) and get required header from him directly. If you don't have HwINFO headers - you may simply use special define in the plugin's source code (it is located above the line where the compiler stops building the project without HwINFO header). Using it you may build a plugin with no HwINFO data importing support.
Wow ,its like i went from my commodore 128 to OS, thanks for for that, i guess the next thing will be ARGB
thanks for the link, got confused for a bit since guru3d.com showed Beta 2 again
We traditionally do not put betas in official download page for a while and let it to be tested by thread visitors first.
Wolfentein 2 as well !
Yup, also id Tech engine based.
The first custom OSD layout created with this plugin by Wolfgang