New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 671539 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Dec 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 2
Type: Bug



Sign in to add a comment

GPU process fails to be launched in a Remote Desktop session on some Windows 10 machines

Project Member Reported by jiawei.s...@intel.com, Dec 6 2016

Issue description

On some Windows 10 machines, GPU process will fail to be launched when Chrome is open in a Remote Desktop session. I have found two such devices: 
Dell notebook (i5-6200U, HD520, driver version 20.19.15.4463, Windows 10 Enterprise Version 10.0.10240);
A desktop machine (i7-6700K, HD530, driver version 20.19.15.4550, Windows 10 Enterprise Version 10.0.10240) 
It seems that the bug does not relate to the version of driver as it can occur with any Intel drivers.

It is because that Chrome calls EnumDisplayDevices to get information about display devices, and on these machines, in an RDP session EnumDisplayDevices can only get the information of the mirror driver "RDPUDD Chained DD" and cannot the information from real graphic devices on this machine.
 
The related code is as follows, the DeviceID of the mirror driver is empty, so Chrome returns  kCollectInfoNonFatalFailure and won't create GPU process unless ignore-gpu-blacklist is set.
https://cs.chromium.org/chromium/src/gpu/config/gpu_info_collector_win.cc?l=414

chrome://gpu webpages are attached in this report. In no_flags.pdf, you can see the GPU process fails to be launched without ignore-gpu-process. In section Driver Information in with_ignore-gpu-blacklist.pdf, you can see Chrome fails to get the driver parameters, and in szDescription in section Diagnostics, the graphic device Chrome gets is "RDPUDD Chained DD".

I wrote a C++ file to test EnumDisplayDevices, as attached in the report. You can see only "RDPUDD Chained DD"s in the output in a RDP session on the machines with this bug.


  
 
no_flags.pdf
113 KB Download
with_ignore-gpu-blacklist.pdf
128 KB Download
TestEnumDisplayDevices.cpp
771 bytes View Download
Cc: yunchao...@intel.com zmo@chromium.org yang...@intel.com qiankun....@intel.com kbr@chromium.org

Comment 2 by zmo@chromium.org, Dec 6 2016

Cc: piman@chromium.org
A couple years ago we evaluated this situation and decided not to support GPU acceleration through Remote Desktop.  If the single blocker is just EnumDisplayDevices, then I would say let's find a fix and get it to work.
I have written a simple fix and it seems to work on all my devices affected by this bug: https://codereview.chromium.org/2557513005/
PTAL. Thanks!
I updated the Windows 10 on i7-6700K machine to version 10.0.14393 and Chrome can get the right GPU information by EnumDisplayDevices to launch GPU process in an RDP session. 
So it seems that the result of EnumDisplayDevices may differ among different versions of Windows when it is called in an RDP session.
Project Member

Comment 5 by bugdroid1@chromium.org, Dec 9 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f406d19447ab1352ce2b2b6e260a0b9d2e4a9e41

commit f406d19447ab1352ce2b2b6e260a0b9d2e4a9e41
Author: jiawei.shao <jiawei.shao@intel.com>
Date: Fri Dec 09 07:48:24 2016

Fix a bug that GPU process may fail to launch in RDP sessions

Chrome calls EnumDisplayDevices() to get details about display devices.
On some Windows machines EnumDisplayDevices() can only get the mirror
driver "RDPUDD Chained DD" with empty DeviceID and no physical display
devices when Chrome is opened in a Remote Desktop session, which will
cause the failure of launching the GPU process.

This patch fixes this issue by skipping the check of DeviceID when the
primary display device is "RDPUDD Chained DD" according to the result
of EnumDisplayDevices() so that Chrome can obtain GPU information
afterwards (in CollectDriverInfoD3D()).

BUG= 671539 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2557513005
Cr-Commit-Position: refs/heads/master@{#437492}

[modify] https://crrev.com/f406d19447ab1352ce2b2b6e260a0b9d2e4a9e41/gpu/config/gpu_info_collector_win.cc

Comment 6 by ajuma@chromium.org, Dec 9 2016

Owner: jiawei.s...@intel.com
Status: Assigned (was: Untriaged)
Status: Fixed (was: Assigned)

Sign in to add a comment