My CPU, i7 7700k, is overclocked to 4.8Ghz with a 48x multiplier. When I play certain games, especially CXBX-Reloaded the Xbox emulator, the CPU clock speed reading from MSI Afterburner is completely off and throws random numbers constantly. Here's a screenshot showing CPU-Z displaying the correct CPU readings alongside the emulator with MSI Afterburner overlay showing the wrong CPU clock speed: https://i.imgur.com/Scu5NtV.png
It is a bonus functionality I've added with no support obligations. Alternately you have monitoring SDK and may implement it on your own and share correct implemnetation with others if you believe that AB implementation is "completerly off". But I'm more than certain that it won't happen.
Ok I've taken your advice and turned off all monitoring in MSI Afterburner and am now using HWinfo64 to poll sensors and send data to RTSS. This solved my problem. Just one question though, I still use MSI AB for fps and frametime readout and graphing, but now they appear above hardware sensors in overlay. How can I force these fps related overlay position to below the data from HWinfo?
Advice was quite different. And current one is to RTFM. I'd really like to focus on something useful like new plugins instead of such threads, sorry.
I'm not going to create my own plugin when there are plenty of others that accurately read the CPU clock speed instead. What manual? All I see is a readme file with basic outline of features, limitations and a changelog history. You don't have to be the one to explain it, can someone else who knows how to change the order of RTSS rows over different data sources please help me out here. I don't see any way to do this from inside MSI Afterburner (sort overlay order by source).
That only works for monitored data points that are inside MSI Afterburner. I mean to have HWinfo64 sending its measurements straight to Rivatuner and then inside MSI Afterburner the only two monitored things are FPS and Frametime. When I get them all in the OSD the MSI Afterburner content shows up first and then the HWinfo64 stuff at the bottom. I would like to keep the FPS and Frametime graph at the very bottom of the OSD while the HWinfo64 monitored content is above it.
No I am using HWinfo64 itself to directly send the data to Rivatuner. I would greatly prefer to stick to that way. I'm guessing since I couldn't find it myself, that the obvious answer is there is no mechanism in either Afterburner or Rivatuner to directly control source order in the OSD?
I suggest using the HWiNFO plugin, as doing so will add the HWiNFO sensors to the list of monitoring graphs in Afterburner, where you can edit them as if they were native Afterburner sensors. For example, these sensors in my OSD are from HWiNFO, and I can arrange them seamlessly alongside the native Afterburner sensors.
Yeah I know how to do it that way, I'm trying to avoid using that plugin and instead just using HWinfo64 by itself for its data, and then MSI Afterburner for FPS graphing. Don't want to use the plugin. Feels like a wasteful middle step of exporting -> importing data when HWinfo64 can bypass the middleman and go straight to the OSD.
I see. In that case, you might as well use HWiNFO for all your sensor data, including framerate and frametime. I believe RTSS standalone can also display framerate and frametime on-screen if "show own statistics" is checked.
I figured it out. It seems MSI Afterburner likes core 0 in the Windows affinity. Well so does CXBX-Reloaded. The emulator completely uses up the first core to 100% and sparsely uses the remaining cores. I solved the problem by forcing either Afterburner or the emulator to not use the first two logical cores in their affinity list. Now the correct CPU clock speed is always reported. Strange that Afterburner won't detach from that first core on its own and use available cores instead during those heavy load moments. This explains why other programs like CPU-Z and HWinfo64 don't have this problem; they do their polling of hardware on other cores instead of forcing it all on that core 0.
I guess that's for initialization purposes? Right now I am using a powershell script that executes 15 seconds after logging in and applies affinity to remove the first two logical cores off MSI Afterburner. It's working great and has been the most elegant way to solve the problem thus far.
Alright so final update. I was using a script that batches out 15 seconds after logging in to change the affinity of MSIAfterburner.exe and this was working, but I started getting horrible stutter in games. Disabled the script and now stutters are gone. Seems you cannot mess with Affinity on Afterburner or else you mess things up. I'll just have to change affinity on my other games and programs to avoid the clock speed glitch.