Discussion in 'MSI AfterBurner Application Development Forum' started by Unwinder, Feb 20, 2017.
Ahh, that is why, I did have it enabled in AB.
nice to have some good techtuber coverage, rather than those amdiots that don't check with the applications author before publishing a video blaming it for reduced VK performance.
Thanks so much for this video -- great info in here I was not aware of and it really helped!
I have an interesting bug. So No Man's Sky just updated its experimental beta branch to run on Vulkan instead of OpenGL, and HDR. Well when as soon as I turn on HDR in game, Rivatuner freaks out, and thinks that it's both Vulkan and D3D11, and it swaps rapidly back and forth flickering the OSD. It also gives wrong framerates as well, stating about twice as many fps as reality, which can be verified with my monitors built in OSD which tells me the exact hz it's running (which adjusts to fps when gsync is on). Is this the first vulkan HDR game on pc? If I start the game with hdr already turned on, it just reads as D3D11 and the OSD works properly, and correct frame rate. But it still is really running as Vulkan so something I assume with HDR makes rivatuner think it's D3D11.
Looks like their Vulkan implementation is using D3D11 interoperability for some internal effects (similar to what some NVIDIA Gameworks games are doing, using CUDA/D3D10 for some effects) . In this case both D3D11 and Vulkan framebuffer flips will be counted. You may create a profile for such game and forcibly disable D3D11 hooking for it, it should fix the issue. Use the following profile contents:
Enable = 0
Just purchased No Man's Sky to see their Vulkan implementation myself, it can be rather useful for testing.
I tested in BFv and while using RTSS frame limiter did lower frame-times compared to user config way, for me the in gameplay is better with user config built-in fps limiter.
Hard to explain but moving fast from side to side is not smooth, kind of weird. Maybe because I don't use Vsync, fps is flat 60 in both so I don't know.
Maybe post results in another section to not clutter this thread up.
Testing it because of testing is not the best idea.
Just came back to home after office and installed experimental branch of No Man's Sky with Vulkan renderer with HDR mode enabled. One more unnecessary purchase I guess, the engine is not doing that on my PC. Looks like you're running some other software in background that is creating helper D3D11 object on your system in context of the game's process. Streaming applications like OBS are #1 candidates.
P.S. Peeked inside the game binaries, there are no references to D3D11.dll inside the engine and gameitself, the only reference is in AMD AGS (AMD's gaming library, equivalent of NVAPI gaming related API). So that not the game doing that for sure.
EVGA RTX 2070 XC Ultra:
http://prntscr.com/nfvwp7 (same temp when clicking "icx", only one temperature sensor available "GPU1")
Not sure if it helps, but I thought why not.
So where is the question? If there are no additional sensors onboard, what do you expect from MSI AB?
Nothing, you wrote you need more dumps and I thought it might be helpful for research or whatever. Ignore it if it's not needed
Your card is not equipped with ICX2 sensors, so no dump is needed from it, thanks.
Wolfenstein 2: The New Colossus, PresentFromCompute =0 default, screen monitoring and GF Experience working like a champ for my system, somebody working overtime .
I'm sorry to hear that it is not reproducing on your end. I don't think that this is just a fluke though. I don't have any other software running in the background, I don't stream, I even tested with Steam Overlay turned on and off, and it happened both ways. I also saw on the game's discussion board here that someone else had the same issue as I did.
I also tested
Enable = 0"
This stopped the flickering between vulkan and d3d11, but still caused wrong framerates to be counted. From here on I will be testing with the default profile.
Here is my ingame settings: https://i.imgur.com/XZV8BAm.jpg
In Nvidia Control panel I also have Vertical Sync set to On, and G-sync set to Fullscreen Mode.
Steam overlay disabled.
Driver version 425.31, Windows 10 Home Version 1809 Build 17763.437
Steps to reproduce:
1. Windows HD Color settings, play HDR games and apps turned OFF. Windows Game Mode turned On. "Disable Fullscreen Optimizations" for exe is unchecked (FSO Allowed)
2. No Man's Sky HDR turned off previously.
3. Boot No Man's Sky, at this point OSD says Vulkan, has correct frame rate (capped at 143.8 automatically due to g-sync active), and using volume roller does not show Windows Overlay. Alt-tab is instant, and alt tabbing back still everything works, and volume roller still does not show OSD.
4. Load save game so you can reach the settings menu. Switch HDR from off to 400.
5. At this point with HDR on, volume roller now shows Windows Overlay, frame pacing is EXTREMELY bad (constant stuttering easily seen by moving camera view with mouse), and the OSD now reads wrong frame rate as well as flickering between Vulkan and D3D11.
6. Turn HDR back off in game. Game remains in same broken state, volume roller still shows windows overlay, frame pacing broken, OSD flickering and reading wrong frame rate. Only by reloading the game with HDR off from the start, will it run correctly.
1. Each combination of enable and disable game mode, enable and disable fullscreen optimizations, enable and disable HDR in Windows HD Color settings prior to starting game.
2. Starting game with HDR already turned on. At start of game menu, everything looks ok now, HDR is working and Vulkan only on OSD and says 143.8, and frame pacing is correct. But as soon as you alt-tab, or if you use volume roller, it breaks again. Even if you then load a game without doing alt tab or volume roller, it breaks as the game loads.
3. Disable MSI Afterburner and Rivatuner. All problems stay the same. Framepacing breaks as soon as HDR is enabled, and the volume roller now activates OSD.
4. Disable G-sync. All problems stay the same.
5. Disable processes and services to the absolute bare minimum. All problems stay the same.
That's not a result of improvements from my side, there were no undocumented changes in this area. If it is working with default PresentFromCompute =0 now, it can only mean that the game stopped using present from compute queue scenario, either game engine patches or driver can be behind it.
Thanks for detailed post, I'll give it one more try when I return back to home after work today. Probably volume roller is the key factor, using it on some platforms in DX12 HDR applications resulted in displaying windows volume overlay and temporarily switching display to SDR mode, making output temporarily washed out.
Just came back to home and decided to give it one more try. Still no luck to reproduce anything like that with alt-tabbing scenarios and volume overlay activated with volume roller on my G19. But I'm no latest Win10 1903 already, it can easily be the reason as HDR is a priority development area for MS during last major OS upgrades and there are a few internal changes related to it in this upcoming OS build as well.
Anyway, if disabling D3D11 renderer via profile helped you with flickering then you can also try to disable DXGI hooking completely to prevent this game counting D3D11 flips as frames. Try to use a profile with
HookDXGI = 0
Hopefully 1903 fixes it, the frame pacing is so bad that I have to just use it without HDR, and is butter smooth without the HDR. I know that has nothing to do with rivatuner though. Changing HookDXGI to 0 worked for getting the frame rates to count correctly again, thank you!
Nope, that's not OS version related thing either. Just installed No Man's Sky on my AMD rig with RADEON VII, which is still using 1803 OS. The same story, no such weird D3D11/Vulkan interop with HDR on.
I could automate this workaround and forcibly ignore any DXGI presentation hooking if the application starts rendering something via OGL/Vulkan. But it will prevent apps that can possibly use both Vulkan and DX12 renderers and switch between them dyncamically and without restarting application from working properly. So I'm not sure if it worth the efforts.