Discussion in 'MSI AfterBurner Application Development Forum' started by Unwinder, Feb 20, 2017.
Thanks for your kindness and help
I don't know what you mean about laptop support, but thank you for explaining about why clock compensation is a terrible idea - from a non programmer perspective I couldn't know what limitations there could be and what other problems it could create. I assumed there was a good reason it worked like it did, but couldn't figure out why it had to be so particular to operate (read: frustrating until you learn it's behavior).
But that's why I asked, I saw someone else mention something I'd been wondering since I bought a 1070 at release and had shown other people who were confused how to use, so I got the courage to ask - I should have asked more politely about how it about how it worked rather than insisting on some change. You get plenty of that cancer, I definitely don't want to add to it.
And yes, I shouldn't have asked in this thread. I'd completely overlooked that.
Laptop support note is addressed to maffle who commented both your and my posts. He knows what am I talking about.
We're preparing RTSS 7.2.0 to official release. Release candidate (build 19063) is available for download in the forum, we'll keep it here for the final testing stage during a few days then launch it on the front page and make it visible to updates servers. There are no serious changes comparing to the previous beta, just internal pre-release code/documentation cleanups and minor improvement for scanline sync mode: it is no longer necessary to restart 3D application after enabling Scanline Sync x/2 mode, now it is applied in realtime. Full changes list for 7.2.0 includes the following:
· Added On-Screen Display performance profiler. Power users may enable it to measure and visualize CPU and GPU performance overhead added by On-Screen Display rendering. Two performance profiling modes are available:
o Compact mode provides basic and the most important CPU prepare (On-Screen Display hypertext formatting, parsing and tessellation), CPU rendering and total CPU times, as well as GPU rendering time (currently supported for Direct3D9+ and OpenGL applications only)
o Full mode provides additional and more detailed per-stage CPU times
· Improved built-in framerate limiter:
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
o Added alternate framerate limiting mode, based on synchronization with display rasterizer position. Now you may synchronize the framerate to up to two independent scanline indices per refresh interval. Combining with power user configurable scanline wait timeout and graphics pipeline flushing options, those settings provide experienced users vendor agnostic ultra low input lag adaptive VSync, half VSync or double VSync functionality on any hardware
o Added power user oriented idle framerate limiting mode. Unlike traditional framerate limiting mode, idle framerate limiting mode is only affecting inactive 3D applications running in background. Idle framerate limit is specified as a target frametime with 1 microsecond precision. Idle framerate limiting mode helps to reduce power consumption when you minimize some heavy 3D applications and switch to other processes
· Various On-Screen Display optimizations and improvements:
o Added adjustable minimum refresh period for On-Screen Display renderer. The period is set to 10 milliseconds by default, so now the On-Screen Display is not allowed to be refreshed more frequently than 100 times per second. Such implementation allows keeping smooth animation when On-Screen Display contents are being updated on each frame (e.g. when displaying realtime frametime graph) without wasting too much CPU time on it
o Added alternate GPU copy based Vector2D On-Screen Display rendering mode implementation for Direct3D1x applications. New mode provides up to 5x Vector2D performance improvement on NVIDIA graphics cards, however it is disabled on AMD hardware due to slow implementation of CopySubresourceRegion in AMD display drivers
o Vector2D rendering mode is now forcibly disabled in Vulkan applications on AMD graphics cards due to insanely slow implementation of vkCmdClearAttachments in AMD display drivers
o Revamped geometry batching and vertex buffer usage strategy in pure Direct3D12 On-Screen Display renderer (currently used in Halo Wars 2 only)
o Added Vector2D rendering mode support to pure Direct3D12 On-Screen Display renderer
o Optimized On-Screen Display hypertext parsing and tessellation implementation
o Optimized state changes in OpenGL On-Screen Display rendering implementation
o Improved implementation of On-Screen Display rendering from separate OpenGL context (profile compatibility switch used in certain OpenGL applications, e.g. Pyre) on AMD graphics cards
o Optimized state changes in Direct3D1x On-Screen Display rendering implementation
o Solid rectangles and line primitives in Direct3D8 and Direct3D9 On-Screen Display rendering implementations are now rendered from vertex buffer instead of user memory
o Improved OpenGL framebuffer dimensions detection when framebuffer coordinate space is selected
o Increased static vertex buffer size for Vulkan and pure Direct3D12 renders to increase amount of primitives rendered in On-Screen Display in a single pass
· Improved desktop duplication based desktop video capture implementation ( Windows 8 and newer OS versions):
o Now desktop video recording sessions do not stop on display mode switch or on switch to exclusive fullscreen mode. Such approach allows you to start capturing video on desktop then launch some 3D application and create a video file containing both desktop and 3D application’s video streams
o Improved video capture API allows video capture frontend applications (e.g. MSI Afterburner) to force desktop or 3D application video capture modes in addition to default mixed desktop/3D application capture mode
o Now desktop capture is using multhithreaded active busy-wait loop frame capture instead of timer driven frame capture in order to improve frame timing precision and resulting video smoothness. The previous timer driven frame capture can be enabled via configuration file if necessary
o Decreased desktop duplication timeouts in order to improve RivaTuner Statistics Server GUI response time under certain conditions during desktop videocapture sessions in timer driven frame capture mode
· Improved SDK:
o Improved RTSSFrametimePipeSample sample. Now the sample demonstrates frametime pipe connection for applications running with both full administrative and limited user rights
o Improved NVENC plugin. Added NVIDIA 416.xx drivers family support. The plugin was recompiled with newer NVENC encoder API headers, because NVIDIA stopped supporting legacy v4 NVENC API in release 416 and newer series drivers. Due to this change NVENC plugin no longer supports pre-release 358 NVIDIA drivers
· Fixed On-Screen Display rendering in wrong colors when Vector2D mode is selected and Direct3D1x applications use 10-bit framebuffer
· Fixed Vulkan fence synchronization issue, which could cause GPU-limited Vulkan applications to hang due to attempt to reuse busy command buffer
· Active busy-wait loop in the framerate limiter module is now forcibly interrupted during unloading the hooks library to minimize the risk of deadlocking 3D application when dynamically closing RivaTuner Statistics Server during 3D application runtime
· 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)
· Improved synchronization in 32-bit API hook uninstallation routines
· Added timeout to API hooks injection in CBT hook handler. The timeout is aimed to reduce injection related CPU overhead on some systems, related to high mouse polling rate combined with keyboard/mouse hooks installed by third party applications
· Interoperability D3D10 page flips on some systems are now filtered by framerate calculation module in OpenGL/Vulkan applications
· Hook engine is now using alternate double jump x64 hook trampoline to improve compatibility with third party 64-bit On-Screen Display applications
· Added compatibility profile switch for hooking IDXGISwapChain::ResizeBuffers via VTable instead of hotpatching
· Added hook epilogs support to 32-bit VTable hook handler
· Fixed instance checking implementation in 64-bit RTSSHooksLoader and EncoderServer helper applications
· Added exclusion profile for Forza Horizon 4. Please take a note that On-Screen Display is currently not supported in this game due to its protective system limitations
· Forcible graphics and compute queues synchronization is now disabled by default for Vulkan applications presenting frames from compute queue (AMD Vulkan rendering codepaths in DOOM and Wolfenstein II : The New Colossus). Due to this change, On-Screen Display will be invisible in those games on such platforms by default. Experienced users, understanding and accepting that On-Screen Display rendering will cause performance penalty, may reenable it with PresentFromCompute profile switch
· Added tri-state skinned buttons support in the skin engine
· Updated profiles list
@Unwinder I've a quick question for you about OC scanner.
When I launch the scanning process for the overclocking curve, for the fans speed what should i set in Afterburner?
My Gigabyte 2080 Ti Gaming OC normally by his default start the fans over 50 degrees but not under the same temperature.
I promise you that this is the last time that I write in this section
Fan speed, power and thermal limits, memory clock and overvoltage are input parameters for NVIDIA OC scanner. Each of those parameters may affect the result and should be set to target value, which you plan to use with overclocked VF curve.
Interesting, what if there is no Fan (Watercooling)? Should I set the Fan Speed to max? Even with no Fan attached?
On fan curve this might help you, it is very general and not specific to any one model/version.
A lot of latest Nvidia cards in last few yrs came out with a silent fan option were fans are off until X temp (were X= 50-55c).
Now let's look at clock steps verse temps, on many Nvidia cards there be 60c, 70c 80c etc so as temps hit different levels it may downclock a bit or boost slightly less.
What I do is set a fan curve with the tip in point lower, so maybe in the 45c area for fans to start. I am doing this so as to keep the card in the 60 or maybe 7c load range. The range will depend on model and versions, plus if 3rd party card HS/fan type.
Looking at your specific card from reviews it can do under 70c under load with auto setting.
So IMO all I would do is adjust a custom curve so it starts a little lower temp and tries to mimic the rest of an auto curve.
That is just IMO, depending on what you're trying to do will change things.
I've had serious trouble, game crashes or not even starting with Afterburner/RTSS with my 2080-ti and nvidia 416.34 - 416.64 Drivers
Battlefield and Shadow of the Tomb Raider notably, it's not a 100% reproductable issue.
I don't know where it comes from but RTSS 7.2 didn't solve the issue
You sure you don't have any overlays running, like Origin in-game?
If you are running Dx12 mode, maybe try Dx11. Dx11 in BF1 seems very stable, can't remember last time it crashed.
PS: you should probably make a separate post on this issue as it not about new features of RTSS
Running the game executable in admin mode fixed the crashing related to afterburner* Either i should run neither of it in admin, or both of them, i was running afterburner in admin mode
don't even bother using a Frostbite game in DX12, its a worse experience on both vendors hardware.
Afterburner can only be run Elevated (iirc, correct me if im wrong Unwinder)
"Enable custom Direct3D support" is globally enabled in RTSS in your video. Like the context help is suggesting, it is a bad idea and not recommended way. This option should be used at application profile level and only when it is really needed. Not all 3D applications and 3D engines tolerate helper temporary runtime Direct3D device creation, performed when you enable it.
turning it off fixed the previous crashes i had. Weird, i don't even remember turning this thing on!
Now it's fixed, thank you!
RTSS 7.2.0 is officially released, update servers should see it as new official version now. I'll proceed with development of some features, which I wanted to implement in final MSI AB 4.6.0. Then we'll launch official 4.6.0 as well.
Can you please help me in order to set idle framerate limit ?
.\ProfileTemplates\Global -> [Framerate] -> IdleLimitTime is a frametime limit in microseconds
Is there any document/place for newly added power user guide or info of that sort?
Edit: Found it, inside ProfileTemplates\Global
As someone who just got an RTX card I must say the OC Scanner is very handy! Worked great too, completely stable result.
I did get a "scan failed with code 3" with the first try (resolved with a system reboot) but I think that was preceded with display driver crashing (too high memory clock).