Compatibility flags utility

Discussion in 'Operating Systems' started by mbk1969, Nov 3, 2017.

  1. theahae

    theahae Active Member

    Messages:
    67
    Likes Received:
    12
    GPU:
    GTX 1060
    Tool doesn't show my older flags.
     
  2. mbk1969

    mbk1969 Ancient Guru

    Messages:
    15,606
    Likes Received:
    13,615
    GPU:
    GF RTX 4070
    If you did save older flags with "change settings for all users" it will not show them. If you did not then what is your OS?
     
  3. theahae

    theahae Active Member

    Messages:
    67
    Likes Received:
    12
    GPU:
    GTX 1060
    iam on windows 10 fall update (1709)
    iam assuming this adds registry values in
    Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers ?
    what i meant by older flags is the compatibility done by right click menu and not your tool.
     
  4. Alessio1989

    Alessio1989 Ancient Guru

    Messages:
    2,952
    Likes Received:
    1,244
    GPU:
    .
    Microsoft did not updated the WDDM public documentation since WDDM 2.0. I can tell you that exclusive mode made sense two decades ago but not today: removing it on pre-DX12 application is generally a good idea since it reduce the number of kernel-calls required on the presentation, which may improve the performance on some circumstances.

    As for the difference between non-exclusive fullscreen (first case) and borderless (desktop-maximized) window (second case) are just a couple of function in the application code (the first still calls IDXGISwapChain::SetFullscreenState() which involves a couple of kernel calls, while the seconds is still virtually a common window), but for the final user there are not real differences since both allowed unleashed frame-rate and DWM pre-emption.

    As for the stuttering bugs it may be related to both driver and OS: the first looks obvious since the same issues are not always present between different hardware vendors, the second is plausible since the Windows SDK allows a lot of interaction with the presentation buffers and different APIs may have different presentation buffer usage even on the same application (just think about a game using direct3d 11 in-game with Media foundation or DirectShow to play cutscene videos). This mean there could be not any world-global-super-mega-effective way on every application to do all this without introducing bugs or performance issues. As for an official fix I am pretty sure Microsoft will do something about, maybe disabling all this on executables loading certain libraries...

    Personal opinion: looks like that applications using EVR mode of Media Foundation are, at least for now, good candidates for disabling such optimization (or just natively run them on borderless mode when possible instead of fullscreen mode).
     
    Last edited: Nov 6, 2017

  5. mbk1969

    mbk1969 Ancient Guru

    Messages:
    15,606
    Likes Received:
    13,615
    GPU:
    GF RTX 4070
    Have tried in opposite direction - setting flags in tool and then check them in Options dialog?

    You can paste here registry name-value under that key with problematic behaviour.
     
  6. theahae

    theahae Active Member

    Messages:
    67
    Likes Received:
    12
    GPU:
    GTX 1060
    oh iam terribly sorry i thought the tool reads the exes which have custom flags from the registry.
    using the search in a folder works perfect (it grabs the exes)
     
  7. mbk1969

    mbk1969 Ancient Guru

    Messages:
    15,606
    Likes Received:
    13,615
    GPU:
    GF RTX 4070
    Well, I can add such mode - to display already configured exe-files searching in registry.
     
  8. theahae

    theahae Active Member

    Messages:
    67
    Likes Received:
    12
    GPU:
    GTX 1060
    whatever floats your boat.
     
  9. mbk1969

    mbk1969 Ancient Guru

    Messages:
    15,606
    Likes Received:
    13,615
    GPU:
    GF RTX 4070
    Your boat actually. I would not think to do such feature if not your report.
     
  10. mbk1969

    mbk1969 Ancient Guru

    Messages:
    15,606
    Likes Received:
    13,615
    GPU:
    GF RTX 4070
    https://www.mediafire.com/file/1v972wz1j9rrw93/Compatibility_util.zip
    Change log:
    - button "Check registry" is added to toolbar to search in registry (for current user) for already configured exe-files; if file specified in registry doesn`t exist or fails the check then error icon (hover cursor over the icon to see explaining text) appears in the cell with exe-path.
     
    Last edited: Nov 6, 2017

  11. dr_rus

    dr_rus Ancient Guru

    Messages:
    3,930
    Likes Received:
    1,044
    GPU:
    RTX 4090
    It's pretty easy: your display will blink if it's EFS and it won't if it's not. Starting with 1703 many D3D11 games requesting EFS aren't "blinking" the screen when launching or alt-tabbing because of the FS optimizations - if you disable them the old behavior is back. There's a thread on Reddit which confirm this: https://www.reddit.com/r/Windows10/comments/645ukf/windows_10_cu_fullscreen_optimizations/
    I have a feeling that this has somewhat changed in WDDM 2.3 though as games which would launch in this "emulated EFS" are now blinking the screen again during launching - or maybe its just NV drivers not working properly at the moment.

    ME3 is D3D9 which are all running in this emulated fullscreen since Win10 launch (or was it like this even in 8? don't remember). I don't see why the same "optimizations" in 1703+ couldn't apply to them too.

    Edit: One new thing I've noticed in 1709 actually is that there's a display mode change now if you're launching OpenGL game in desktop resolution while the desktop bit depth is set to anything else but 8 bit. This wasn't the case in 1703 but I have no idea what this means really.

    Another thing new to 1709 (or is it R387+ drivers?..) is that this fullscreen emulation seem to kick in only on a game's second launch - and this seems like a bug more than anything since you get a black screen on the first launch from which you can alt-tab and go back and it will be just regular D3D11 exclusive fullscreen mode.
     
    Last edited: Nov 7, 2017
  12. mbk1969

    mbk1969 Ancient Guru

    Messages:
    15,606
    Likes Received:
    13,615
    GPU:
    GF RTX 4070
    I have tried utility in Win8.1 and it doesn`t work. Debug is needed...
     
  13. mbk1969

    mbk1969 Ancient Guru

    Messages:
    15,606
    Likes Received:
    13,615
    GPU:
    GF RTX 4070
    I am sure game developers have tools for spying after game. Such tools should show statistics and modes.

    PS
    Guy from MS stated
    But still many users (and me too - with ME3) noticed that after disabling "show game bar over fullscreen games Microsoft has verified" they still need to tick "disable fullscreen optimizations" for exe-file to change a behavior. That means either guy doesn`t know what he is talking about or feature and settings are broken AF.
     
    Last edited: Nov 7, 2017
  14. theahae

    theahae Active Member

    Messages:
    67
    Likes Received:
    12
    GPU:
    GTX 1060
    The global switch to switch off full screen windowed mode was (removed) from fall update.
    In creators update it was working fine.
     
  15. Alessio1989

    Alessio1989 Ancient Guru

    Messages:
    2,952
    Likes Received:
    1,244
    GPU:
    .
    The removal of exclusive mode from fullscreen is not tied to the game bar, but it is related to the DXGI runtime for games using DirectX 9.0E, 10 and 11. I am not sure if this still apply to older APIs (in that case the Direct3D runtime would be directly involved instead). Gamebar could be disabled removing the appropriate dll.
     

  16. dr_rus

    dr_rus Ancient Guru

    Messages:
    3,930
    Likes Received:
    1,044
    GPU:
    RTX 4090
    If only it was that simple. I've heard devs complaining on the mess which is vsync in DX more than once for example. And D3D12 didn't have any validation tools up till 1607 I believe. There are quite a few issues with DX in modern Windows which MS doesn't look like even want to fix. They are all about Paint 3D these days.

    Not really in 1703, haven't checked how it's now in 1709. This stuff is driver dependent too though so it's may be a bit of a mess between different Windows and different drivers.

    So my memory is a bit hazy on this but here's how it is now I think:
    - All <D3D9 and D3D9Ex games are running on D3D9 based API emulation since Vista, there are no EFS mode for them anymore
    - All D3D9 games (meaning those which aren't using D3D9Ex introduced in Vista) are running in EFS emulation since Win7? (not really sure on this one but I'm 100% certain that it's the case for all D3D9 games in Win10 at least)
    - All D3D12 games don't really have EFS mode from the beginning
    - For D3D10/11 games EFS is partially emulated to behave like borderless window since Win10 1703 - the list of games where such emulation happens was published for 1703 (https://forums.xbox.com/en-us/thread/8d058178-2329-4513-bc0a-1506c2942dad) but I haven't seen anything on this for 1709 so far. This group of games are both most modern (as D3D11 games continue to be dominating among new releases and will be doing so for quite some time I think) and most demanding (which is why they are showing all kinds of bad performance running on modern h/w). This is basically the only group which need any kind of attention from MS as all the rest of them aren't using EFS now in any case.

    Turning off the Game Bar removes this EFS emulation for selected D3D10/11 titles and they start behaving like they did back in Win7. This doesn't mean however that whateve MS is doing in "fullscreen optimizations" doesn't affect them even in a "true EFS" state.
     
  17. mbk1969

    mbk1969 Ancient Guru

    Messages:
    15,606
    Likes Received:
    13,615
    GPU:
    GF RTX 4070
    I do not believe that MS knows better than game devs and NVidia/AMD devs how (E)FS should work. I do believe MS wants to push its features like streaming and recording (and any future ones) tied to Game Bar functionality. I.e. MS just wants to be able to throw in its overlay. So all these talks about their concerns about performance is PR bullshit, imo.
    MS guy wrote that DWM only kicks in when it is necessary to draw something from outside the game. It may be that new FS mode requires less kernel calls (I don`t see why though, because any change on screen (except for shaders) needs a call to kernel mode driver), but adding another player to "pipeline" never goes free of payload.

    PS And in a world of (serious) development every change in execution environment (new service packs for OS for instance) leads to new cycle of testing because application was previously tested in different environment. And if bugs are discovered then new patches are issued.
     
    Last edited: Nov 7, 2017
  18. dr_rus

    dr_rus Ancient Guru

    Messages:
    3,930
    Likes Received:
    1,044
    GPU:
    RTX 4090
    Well, it helps with alt-tabbing if anything. EFS games are also prone to hang the whole PC more often as sometimes you can't invoke task manager above them to kill their process so this is a stability enhancement too I guess.
     
  19. mbk1969

    mbk1969 Ancient Guru

    Messages:
    15,606
    Likes Received:
    13,615
    GPU:
    GF RTX 4070
    Yes, but I discovered that Ctrl+Alt+Del and then "Log off"/"Sign out" solves that unaccessible Task manager problem.
    As for Alt-tabbing, I never do that. I am a freak that way.
     
  20. mbk1969

    mbk1969 Ancient Guru

    Messages:
    15,606
    Likes Received:
    13,615
    GPU:
    GF RTX 4070

Share This Page