DirectX screen capturer doesn't handle screen size changes properly |
||||||||||
Issue description1. Install recent M57 host on Win10 machine with curtain (haven't tested without curtain). 2. Resize client window to make it smaller Expected: The desktop is resized. Observed: See attached screen shot: Desktop is resized, but the canvas it is rendered onto isn't. The host keeps sending video at the old resolution, while only portion of the screen is being used and updated. There were two changes that may be related: - New DX capturer. - Screen resizing for Win 10 in curtain mode.
,
Jan 24 2017
The capturer resets the frame queue only after it fails to capture a frame, see https://codesearch.chromium.org/chromium/src/third_party/webrtc/modules/desktop_capture/win/screen_capturer_win_directx.cc?sq=package:chromium&l=92 . This means that when desktop become smaller it fails to notice it and keeps using the old set of frame buffers.
,
Jan 24 2017
,
Jan 24 2017
Should I revert the launch CL yet, and relaunch it after this fix?
,
Jan 24 2017
Sounds like something we can fix and merge to 57.
,
Jan 24 2017
I'm working on a fix right now, but it might be quite substantial. I'm not sure at this point if it's better to fix or disable the new capturer for M57. I'll update this bug when I have a working fix. It also looks like there is another related issue: the capturer doesn't detect on-fly when a new monitor is connected.
,
Jan 25 2017
Yes, this is a defect in new capturer, which can only detect the resolution increments but not decrements. https://cs.chromium.org/chromium/src/third_party/webrtc/modules/desktop_capture/win/dxgi_output_duplicator.cc?rcl=0&l=159 We can use GetScreenRect() each time in CaptureFrame() function, so both issues can be resolved. Joe also reports a bug https://bugs.chromium.org/p/chromium/issues/detail?id=684937, DX capturer cannot capture lock screen in non-curtain mode. It looks like disabling new capturer would be a safer solution for now.
,
Jan 25 2017
,
Jan 25 2017
,
Jan 25 2017
,
Jan 28 2017
,
Feb 8 2017
This bug should only impact DxgiTextureMapping, which is used on systems with shared cpu / gpu memory.
,
Feb 16 2017
Change https://codereview.webrtc.org/2682913002 has been submitted to fix this issue. AJ, would you mind to confirm it?
,
Apr 5 2017
Checked on Win 10 with curtain mode (and without) and this no longer occurs. Verified Fixed with 59.0.3062.0 Host. |
||||||||||
►
Sign in to add a comment |
||||||||||
Comment 1 by sergeyu@chromium.org
, Jan 24 2017