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

Issue 626807 link

Starred by 7 users

Issue metadata

Status: Verified
Owner:
Last visit > 30 days ago
Closed: Jul 2016
Cc:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug



Sign in to add a comment

UDL display blank

Project Member Reported by dnicoara@chromium.org, Jul 8 2016

Issue description

Version: TOT and M-53
OS: ChromeOS

When running a ChromeOS device (in my case pixel 2) with a DisplayLink device attached, the (external) monitor driven by display link is blank. (Note the display appears properly modeset and I can move the cursor on that display).

I've bisected the issue to this change: https://codereview.chromium.org/1837703002/

Enabling DRM tracing I can see continuous buffer allocations/de-allocations on both the Intel device and the DisplayLink device:

 * GbmBuffer::CreateBufferFromFD is called on the Intel device and allocates scanout buffers the same size as the external monitor's mode.
 * GbmBuffer::CreateBuffer is called on the DisplayLink device and allocates scanout buffers the same size as the external monitor's mode.

I did not see any errors in the chrome or ui log.
 
Labels: -Pri-3 ReleaseBlock-Stable Pri-1
Status: Assigned (was: Untriaged)
than Daniel for bisecting. This is definitely something we need fixed, I'm getting tons of negative feedback on the displaylink front right now...
I think the buffers are imported for the wrong surface. I'll verify that this is the problem and figure out what the most appropriate solution is when back at the office on Wednesday.
Yeah, you're right. DrmThread::CreateBufferFromFds() is using the primary DRM device to import the buffer: https://cs.chromium.org/chromium/src/ui/ozone/platform/drm/gpu/drm_thread.cc?rcl=0&l=120
Cc: reve...@chromium.org
Owner: dnicoara@chromium.org
I think https://codereview.chromium.org/2148983002 should fix it but I don't have a displaylink device to test with. dnicoara@, can you give that patch a try?
Just wanted to add a note that this does not only affect UDL.

This is also a problem for EVDI, a driver that is required to support any current (USB 3.0) DisplayLink device on CrOS. Having this bug around basically yields this tweet https://twitter.com/googlechrome/status/751103938955317248 no longer true, as we'd be getting black screens regardless of what docking station is connected.

This is a functional regression from R51, and it is really important to have a fix for this back-ported to R53 again before it gets to stable.
Blockedon: 628334
Project Member

Comment 7 by bugdroid1@chromium.org, Jul 19 2016

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

commit 15e3d9a4516ad22cc56c1ff162f32f3d03e8de9f
Author: reveman <reveman@chromium.org>
Date: Tue Jul 19 18:21:12 2016

gpu: Take surface handle into account when importing buffers.

This makes us use the appropriate DRM device when importing
native GMBs on Ozone instead of always using the primary device.

BUG= 626807 , 597932 
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

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

[modify] https://crrev.com/15e3d9a4516ad22cc56c1ff162f32f3d03e8de9f/cc/test/test_image_factory.cc
[modify] https://crrev.com/15e3d9a4516ad22cc56c1ff162f32f3d03e8de9f/cc/test/test_image_factory.h
[modify] https://crrev.com/15e3d9a4516ad22cc56c1ff162f32f3d03e8de9f/gpu/command_buffer/service/image_factory.h
[modify] https://crrev.com/15e3d9a4516ad22cc56c1ff162f32f3d03e8de9f/gpu/command_buffer/service/in_process_command_buffer.cc
[modify] https://crrev.com/15e3d9a4516ad22cc56c1ff162f32f3d03e8de9f/gpu/command_buffer/tests/texture_image_factory.cc
[modify] https://crrev.com/15e3d9a4516ad22cc56c1ff162f32f3d03e8de9f/gpu/command_buffer/tests/texture_image_factory.h
[modify] https://crrev.com/15e3d9a4516ad22cc56c1ff162f32f3d03e8de9f/gpu/ipc/service/gpu_channel.cc
[modify] https://crrev.com/15e3d9a4516ad22cc56c1ff162f32f3d03e8de9f/gpu/ipc/service/gpu_channel.h
[modify] https://crrev.com/15e3d9a4516ad22cc56c1ff162f32f3d03e8de9f/gpu/ipc/service/gpu_command_buffer_stub.cc
[modify] https://crrev.com/15e3d9a4516ad22cc56c1ff162f32f3d03e8de9f/gpu/ipc/service/gpu_memory_buffer_factory_io_surface.cc
[modify] https://crrev.com/15e3d9a4516ad22cc56c1ff162f32f3d03e8de9f/gpu/ipc/service/gpu_memory_buffer_factory_io_surface.h
[modify] https://crrev.com/15e3d9a4516ad22cc56c1ff162f32f3d03e8de9f/gpu/ipc/service/gpu_memory_buffer_factory_ozone_native_pixmap.cc
[modify] https://crrev.com/15e3d9a4516ad22cc56c1ff162f32f3d03e8de9f/gpu/ipc/service/gpu_memory_buffer_factory_ozone_native_pixmap.h
[modify] https://crrev.com/15e3d9a4516ad22cc56c1ff162f32f3d03e8de9f/gpu/ipc/service/gpu_memory_buffer_factory_surface_texture.cc
[modify] https://crrev.com/15e3d9a4516ad22cc56c1ff162f32f3d03e8de9f/gpu/ipc/service/gpu_memory_buffer_factory_surface_texture.h
[modify] https://crrev.com/15e3d9a4516ad22cc56c1ff162f32f3d03e8de9f/media/gpu/vaapi_drm_picture.cc
[modify] https://crrev.com/15e3d9a4516ad22cc56c1ff162f32f3d03e8de9f/ui/gl/gl_image_ozone_native_pixmap_drm_unittest.cc
[modify] https://crrev.com/15e3d9a4516ad22cc56c1ff162f32f3d03e8de9f/ui/ozone/platform/drm/gpu/drm_device_manager.cc
[modify] https://crrev.com/15e3d9a4516ad22cc56c1ff162f32f3d03e8de9f/ui/ozone/platform/drm/gpu/drm_thread.cc
[modify] https://crrev.com/15e3d9a4516ad22cc56c1ff162f32f3d03e8de9f/ui/ozone/platform/drm/gpu/drm_thread.h
[modify] https://crrev.com/15e3d9a4516ad22cc56c1ff162f32f3d03e8de9f/ui/ozone/platform/drm/gpu/drm_thread_proxy.cc
[modify] https://crrev.com/15e3d9a4516ad22cc56c1ff162f32f3d03e8de9f/ui/ozone/platform/drm/gpu/drm_thread_proxy.h
[modify] https://crrev.com/15e3d9a4516ad22cc56c1ff162f32f3d03e8de9f/ui/ozone/platform/drm/gpu/gbm_surface_factory.cc
[modify] https://crrev.com/15e3d9a4516ad22cc56c1ff162f32f3d03e8de9f/ui/ozone/platform/drm/gpu/gbm_surface_factory.h
[modify] https://crrev.com/15e3d9a4516ad22cc56c1ff162f32f3d03e8de9f/ui/ozone/public/surface_factory_ozone.cc
[modify] https://crrev.com/15e3d9a4516ad22cc56c1ff162f32f3d03e8de9f/ui/ozone/public/surface_factory_ozone.h

Cc: dnicoara@chromium.org
Labels: Merge-Request-53
Owner: reve...@chromium.org
Status: Fixed (was: Assigned)
Requesting merge of

https://chromium.googlesource.com/chromium/src.git/+/15e3d9a4516ad22cc56c1ff162f32f3d03e8de9f

and

https://chromium.googlesource.com/chromium/src.git/+/1ff18bae4738ee3d62c2310d9e03211054be0582

Comment 9 by dimu@google.com, Jul 22 2016

Labels: -Merge-Request-53 Merge-Approved-53 Hotlist-Merge-Approved
Your change meets the bar and is auto-approved for M53 (branch: 2785)
Project Member

Comment 10 by bugdroid1@chromium.org, Jul 22 2016

Labels: -merge-approved-53 merge-merged-2785
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/50fc23ee168e28cba338c9b3b9081d17e416834c

commit 50fc23ee168e28cba338c9b3b9081d17e416834c
Author: David Reveman <reveman@chromium.org>
Date: Fri Jul 22 17:56:39 2016

gpu: Take surface handle into account when importing buffers.

This makes us use the appropriate DRM device when importing
native GMBs on Ozone instead of always using the primary device.

BUG= 626807 , 597932 
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

Review-Url: https://codereview.chromium.org/2148983002
Cr-Commit-Position: refs/heads/master@{#406322}
(cherry picked from commit 15e3d9a4516ad22cc56c1ff162f32f3d03e8de9f)

Review URL: https://codereview.chromium.org/2178563002 .

Cr-Commit-Position: refs/branch-heads/2785@{#305}
Cr-Branched-From: 68623971be0cfc492a2cb0427d7f478e7b214c24-refs/heads/master@{#403382}

[modify] https://crrev.com/50fc23ee168e28cba338c9b3b9081d17e416834c/cc/test/test_image_factory.cc
[modify] https://crrev.com/50fc23ee168e28cba338c9b3b9081d17e416834c/cc/test/test_image_factory.h
[modify] https://crrev.com/50fc23ee168e28cba338c9b3b9081d17e416834c/gpu/command_buffer/service/image_factory.h
[modify] https://crrev.com/50fc23ee168e28cba338c9b3b9081d17e416834c/gpu/command_buffer/service/in_process_command_buffer.cc
[modify] https://crrev.com/50fc23ee168e28cba338c9b3b9081d17e416834c/gpu/command_buffer/tests/texture_image_factory.cc
[modify] https://crrev.com/50fc23ee168e28cba338c9b3b9081d17e416834c/gpu/command_buffer/tests/texture_image_factory.h
[modify] https://crrev.com/50fc23ee168e28cba338c9b3b9081d17e416834c/gpu/ipc/service/gpu_channel.cc
[modify] https://crrev.com/50fc23ee168e28cba338c9b3b9081d17e416834c/gpu/ipc/service/gpu_channel.h
[modify] https://crrev.com/50fc23ee168e28cba338c9b3b9081d17e416834c/gpu/ipc/service/gpu_command_buffer_stub.cc
[modify] https://crrev.com/50fc23ee168e28cba338c9b3b9081d17e416834c/gpu/ipc/service/gpu_memory_buffer_factory_io_surface.cc
[modify] https://crrev.com/50fc23ee168e28cba338c9b3b9081d17e416834c/gpu/ipc/service/gpu_memory_buffer_factory_io_surface.h
[modify] https://crrev.com/50fc23ee168e28cba338c9b3b9081d17e416834c/gpu/ipc/service/gpu_memory_buffer_factory_ozone_native_pixmap.cc
[modify] https://crrev.com/50fc23ee168e28cba338c9b3b9081d17e416834c/gpu/ipc/service/gpu_memory_buffer_factory_ozone_native_pixmap.h
[modify] https://crrev.com/50fc23ee168e28cba338c9b3b9081d17e416834c/gpu/ipc/service/gpu_memory_buffer_factory_surface_texture.cc
[modify] https://crrev.com/50fc23ee168e28cba338c9b3b9081d17e416834c/gpu/ipc/service/gpu_memory_buffer_factory_surface_texture.h
[modify] https://crrev.com/50fc23ee168e28cba338c9b3b9081d17e416834c/media/gpu/vaapi_drm_picture.cc
[modify] https://crrev.com/50fc23ee168e28cba338c9b3b9081d17e416834c/ui/gl/gl_image_ozone_native_pixmap_drm_unittest.cc
[modify] https://crrev.com/50fc23ee168e28cba338c9b3b9081d17e416834c/ui/ozone/platform/drm/gpu/drm_device_manager.cc
[modify] https://crrev.com/50fc23ee168e28cba338c9b3b9081d17e416834c/ui/ozone/platform/drm/gpu/drm_thread.cc
[modify] https://crrev.com/50fc23ee168e28cba338c9b3b9081d17e416834c/ui/ozone/platform/drm/gpu/drm_thread.h
[modify] https://crrev.com/50fc23ee168e28cba338c9b3b9081d17e416834c/ui/ozone/platform/drm/gpu/drm_thread_proxy.cc
[modify] https://crrev.com/50fc23ee168e28cba338c9b3b9081d17e416834c/ui/ozone/platform/drm/gpu/drm_thread_proxy.h
[modify] https://crrev.com/50fc23ee168e28cba338c9b3b9081d17e416834c/ui/ozone/platform/drm/gpu/gbm_surface_factory.cc
[modify] https://crrev.com/50fc23ee168e28cba338c9b3b9081d17e416834c/ui/ozone/platform/drm/gpu/gbm_surface_factory.h
[modify] https://crrev.com/50fc23ee168e28cba338c9b3b9081d17e416834c/ui/ozone/public/surface_factory_ozone.cc
[modify] https://crrev.com/50fc23ee168e28cba338c9b3b9081d17e416834c/ui/ozone/public/surface_factory_ozone.h

Blockedon: -628334
Status: Verified (was: Fixed)
verified in ChromeOS: 8530.96.0 / 53.0.2785.154

Sign in to add a comment