Any way to keep Aero running?

2014-07-08
2014-07-19
  • I'm pretty happy with DXWnd right now (although the huge number of controls is seriously overwhelming, even to a pretty technical guy like me).

    That said, it seems that every time I run a game through DXWnd, my desktop switches from Aero to Basic mode. I am running Windows 7 x64 and I really prefer to keep Aero running while a game is running inside DXWnd. Is this at all possible? Which of the myriad of settings will allow me to do this?

     
  • gsky916
    gsky916
    2014-07-08

    There is a "Set AERO compatible mode" under DirectX tab, however it can not guarantee you an AERO under all circumstances.(AFAIK a different surface emulation may break the AERO mode)
    I think this flag is checked by default.

     
  • gho
    gho
    2014-07-08

    Wonderful: I don't think I could ever had explained it better than gsky916.
    I can add just this: if you have a specific game in mind, let me (us?) know, I can try to see if there's a way to keep AERO in place in some way.
    Also, you must be aware that the AERO system active while the game is windowized seems to cause quite often a lot of mouse lags. Again, it would be great to understand why and how to fix it, but I'm the DxWnd David agains MS Goliath....

     
    • gsky916
      gsky916
      2014-07-10

      AERO system will cause framerate latency is commonly reported.

      Seems dxwnd's competitor(not really :D) dealt it pretty well, however i think it's just because it totally used a different surface emulation mechanism, so meaningless...

      Someone claimed this issue is caused by the DCE(Desktop Composition Engine) it involves applications rendering to DCE buffers instead of directly to the screen.
      See: http://stackoverflow.com/questions/2479328/how-to-access-the-desktop-composition-engine-from-a-winforms-app

      There are several APIs (e.g.DwmSetDxFrameDuration) relate to this topic, you can get to the references pages from the above link.

      Some more general information:
      http://blogs.msdn.com/b/greg_schechter/archive/2006/09/14/753605.aspx

       
      Last edit: gsky916 2014-07-10
      • gho
        gho
        2014-07-10

        From http://msdn.microsoft.com/en-us/library/aa969522%28VS.85%29.aspx :

        DwmSetDxFrameDuration is no longer supported. Starting with Windows 8.1, calls to DwmSetDxFrameDuration always return E_NOTIMPL.

        Apparently, MS changed his mind rather quickly...
        But there's a lot of interesting stuff there!

         
        • gsky916
          gsky916
          2014-07-10

          I noticed that. You can use it in win7 and vista, but not win8...

          I think there should big changes in win8 dwm!
          Even end users get effected by the Flattened Desktop it is not surprising that lots DEV API can not use any more.

          You need to deal with win8 separately!


          Update1:
          Interesting, I think the latency is most serious under an intel integrated graphics card...An independent card will give you a much better performance...no latency at all when i test under a nvidia gt650m.
          More like a WDDM performance issue?


          Update2:
          I confirmed the performance murder is the "DWM window composition".

          There are several APIs can control it, you could disable some unnecessary components for the windowed task (task thumbnail preview, etc..)see if this could give you some better performance!
          See:
          http://msdn.microsoft.com/en-us/library/windows/desktop/aa969538%28v=vs.85%29.aspx
          http://msdn.microsoft.com/en-us/library/windows/desktop/aa969530%28v=vs.85%29.aspx

           
          Last edit: gsky916 2014-07-10
    • gsky916
      gsky916
      2014-07-12

      http://en.wikipedia.org/wiki/Desktop_Window_Manager

      For rendering techniques that are not DWM-aware, output must be redirected to the DWM buffers.

      Wikipedia has some details about dwm architecture(look into the link for whole details).

      I think it gives out some answer for understanding WHY the aero latency.
      However it wont tell you HOW TO FIX it directly...Hope this could help for finding some solution.

      Unfortunately I cant do further testings for you, there is limited settings in the system for dwm(only turn it on/off), the only way to control each dwm attribute/parameters is using programmatic APIs.

      P.S. Clarification: DWM or DCE(the previous name of dwm) or window composition(sevice host by dwm), they are really talking about the same thing.

      That's all I can help.
      Regards!

       
      Last edit: gsky916 2014-07-12
    • gsky916
      gsky916
      2014-07-19

      Hi, gho. I'd like to know if the information above (DWM window composition APIs)made any sense for the AERO question?
      Useless or meaningless? Any comment would be appreciate.

       
      Last edit: gsky916 2014-07-19
      • gho
        gho
        2014-07-19

        It seems to make sense, but honestly I got no time to read it yet.
        But it looks promising.

         
        • gsky916
          gsky916
          2014-07-19

          Thanks for the comment.
          Take care!

           
  • Thanks for the replies, gsky916 & gho. I've just noticed that whenever I play a video, for example, when Aero is disabled, I get more screen tearing. To me, that makes Basic Mode inferior to Aero, so I always try to keep Windows in Aero at all times.

    I have only tried one game with DxWnd so far: Frogwares' Sherlock Holmes: The Mystery of the Mummy. It's from 2002 and I've heard it's an awful game, but I paid essentially pennies for it, so why not? It doesn't run natively in Steam on my computer, so I thought I'd try DxWnd after someone in the game's forum recommended it.