• Joe Downing's avatar
    [Windows Host] Prevent connection hang for hosts with 3D Display Mode enabled · ee9ee634
    Joe Downing authored
    This change prevents a hang when connecting to a Windows machine
    which has curtain mode and 3d display mode enabled.  The root cause
    of the hang is that creating a D3D11 device takes several seconds so
    function calls which used to take a few milliseconds now take 5+
    seconds.  I did not see a mechanism to control this display mode
    programatically so I am adding code which can detect the condition
    and the logic to prevent D3D usage when 3D mode is enabled.
    
    Of note is the change in BasicDesktopEnvironment where I requery the
    D3D apis.  DesktopEnvironmentOptions are queried in Session 0 and
    then passed on to the Desktop process.  There is a non-obvious
    problem with this as many D3D methods cannot be queried or will
    not return reliable results.  This results in a base set of options
    being set in Session 0 (which includes user / experiment overrides)
    and then passed into a session where D3D will return new values.  In
    this CL, I requery the D3D APIs and update the capturer options if
    they should be disabled.
    
    BUG=836007
    
    Change-Id: Ib7a6e61fa7987bd093e93a6100b97cc49e3aff05
    Reviewed-on: https://chromium-review.googlesource.com/1164403
    Commit-Queue: Joe Downing <joedow@chromium.org>
    Reviewed-by: default avatarJamie Walch <jamiewalch@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#583276}
    ee9ee634
switches.cc 1.17 KB