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

Issue 700020 link

Starred by 2 users

Issue metadata

Status: Archived
Owner:
Closed: Apr 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug



Sign in to add a comment

Incorrect layout applied after first time connect two extending UDL devices

Reported by adam.kal...@displaylink.com, Mar 9 2017

Issue description

Chrome Version: 59.0.3033.0 (Official Build) canary (64bit)
Chrome OS Version: Platform 9348.0.0 (Official Build) canary-channel samus
Chrome OS Platform: Google_samus.6300.174.0
Network info: not applicable

Please specify Cr-* of the system to which this bug/feature applies (add
the label below).

Steps To Reproduce:
(1)Switch channel to canary, reboot
(2)Attach for the first time two UDL devices with two monitors to USB ports
(3)Wait for system to recognize devices and start to extended main laptop screen
(4)Open several apps on laptop screen (Settings, Chrome browser as example)
(5)Drag one of window with your mouse cursor and move it around the laptop internal screen, observe both UDL screens

Expected Result:
Application movement should be limited only to laptop internal screen. User should be able to move an application to any UDL extending screen as it is present in Display properties.

Actual Result:
Both UDL screens are present in Display Properties as extended, however user can't move any application on the extending UDL screen. It looks like that the laptop monitor made a boundary where application can be dragged over. 
Also when application is moved on the internal laptop screen (when is clicked with a cursor) it is mirrored on other screens.

How frequently does this problem reproduce? 
This problem reproduced for the first time when you attach two external monitors via UDL.

What is the impact to the user, and is there a workaround? If so, what is
it?
Simply user can't move a mouse on the "extending" UDL screens.
To workaround this problem you need to change only a bit current layout in display properties. This is healing the system.

Video with recorded problem: https://drive.google.com/file/d/0BxMF_wPxgWXtZ1FIR0N0VEdWR2c/view?usp=sharing

 
Output of about:gpu
Graphics Feature Status
•	Canvas: Hardware accelerated
•	Flash: Hardware accelerated
•	Flash Stage3D: Hardware accelerated
•	Flash Stage3D Baseline profile: Hardware accelerated
•	Compositing: Hardware accelerated
•	Multiple Raster Threads: Enabled
•	Native GpuMemoryBuffers: Software only. Hardware acceleration disabled
•	Panel Fitting: Unavailable
•	Rasterization: Software only. Hardware acceleration disabled
•	Video Decode: Hardware accelerated
•	Video Encode: Hardware accelerated
•	VPx Video Decode: Hardware accelerated
•	WebGL: Hardware accelerated
•	WebGL2: Hardware accelerated
Driver Bug Workarounds
•	clear_uniforms_before_first_program_use
•	count_all_in_varyings_packing
•	decode_encode_srgb_for_generatemipmap
•	disable_discard_framebuffer
•	msaa_is_slow
•	scalarize_vec_and_mat_constructor_args
Problems Detected
•	Chrome OS panel fitting is only supported for Intel IVB and SNB Graphics Controllers
Disabled Features: panel_fitting
•	Framebuffer discarding causes jumpy scrolling on Mali drivers: 301988
Applied Workarounds: disable_discard_framebuffer
•	Clear uniforms before first program use on all platforms: 124764, 349137
Applied Workarounds: clear_uniforms_before_first_program_use
•	Mesa drivers in ChromeOS handle varyings without static use incorrectly: 333885
Applied Workarounds: count_all_in_varyings_packing
•	Always rewrite vec/mat constructors to be consistent: 398694
Applied Workarounds: scalarize_vec_and_mat_constructor_args
•	On Intel GPUs MSAA performance is not acceptable for GPU rasterization: 527565
Applied Workarounds: msaa_is_slow
•	Disable KHR_blend_equation_advanced until cc shaders are updated: 661715
•	Decode and Encode before generateMipmap for srgb format textures on Chromeos Intel: 634519
Applied Workarounds: decode_encode_srgb_for_generatemipmap
•	Accelerated rasterization has been disabled, either via blacklist, about:flags or the command line.
Disabled Features: rasterization
•	Native GpuMemoryBuffers have been disabled, either via about:flags or command line.
Disabled Features: native_gpu_memory_buffers
Version Information
Data exported 
2017-3-9 16:39:19 
Chrome version 
Chrome/59.0.3033.0 
Operating system 
Linux 3.14.0 
Software rendering list version 
12.19 
Driver bug list version 
9.32 
ANGLE commit id 
461d9a3060e3 
2D graphics backend 
Skia/59 0 
Command Line Args 
--enable-logging --gpu-sandbox-failures-fatal=yes --ppapi-flash-path=/opt/google/chrome/pepper/libpepflashplayer.so --ppapi-flash-version=25.0.0.127 --ui-prioritize-in-gpu-process --use-cras --use-gl=egl --user-data-dir=/home/chronos --default-wallpaper-large=/usr/share/chromeos-assets/wallpaper/default_large.jpg --default-wallpaper-small=/usr/share/chromeos-assets/wallpaper/default_small.jpg --guest-wallpaper-large=/usr/share/chromeos-assets/wallpaper/guest_large.jpg --guest-wallpaper-small=/usr/share/chromeos-assets/wallpaper/guest_small.jpg --arc-availability=officially-supported --login-profile=user --enable-natural-scroll-default --system-developer-mode --bwsi --homepage=chrome://newtab/ --incognito --log-level=1 --login-user=$guest --login-user=$guest --login-profile=d9454b4a3799ace42028b3987250e7265ecad86d --vmodule=screen_locker=2,webui_screen_locker=2,lock_state_controller=2,webui_login_view=2,power_button_observer=2,*/ui/display/manager/chromeos/*=1,*/ash/display/*=1,*/ui/ozone/*=1,*zygote*=1,*plugin*=2,auto_enrollment_controller=1,*chromeos/login/*=1,*arc/*=1 --disable-sync --disable-extensions 
Driver Information
Initialization time 
16 
In-process GPU 
false 
Passthrough Command Decoder 
false 
Sandboxed 
true 
GPU0 
VENDOR = 0x8086, DEVICE= 0x1616 
Optimus 
false 
Optimus 
false 
AMD switchable 
false 
Driver vendor 
Mesa 
Driver version 
17.1.0 
Driver date 

Pixel shader version 
3.10 
Vertex shader version 
3.10 
Max. MSAA samples 
8 
Machine model name 

Machine model version 

GL_VENDOR 
Intel Open Source Technology Center 
GL_RENDERER 
Mesa DRI Intel(R) HD Graphics 5500 (Broadwell GT2) 
GL_VERSION 
OpenGL ES 3.1 Mesa 17.1.0-devel (git-9baf1ff) 
GL_EXTENSIONS 
GL_EXT_blend_minmax GL_EXT_multi_draw_arrays GL_EXT_texture_filter_anisotropic GL_EXT_texture_compression_dxt1 GL_EXT_texture_format_BGRA8888 GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth24 GL_OES_element_index_uint GL_OES_fbo_render_mipmap GL_OES_mapbuffer GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_stencil8 GL_OES_texture_3D GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_npot GL_OES_vertex_half_float GL_EXT_texture_sRGB_decode GL_OES_EGL_image GL_OES_depth_texture GL_OES_packed_depth_stencil GL_EXT_texture_type_2_10_10_10_REV GL_OES_get_program_binary GL_APPLE_texture_max_level GL_EXT_discard_framebuffer GL_EXT_read_format_bgra GL_NV_fbo_color_attachments GL_OES_EGL_image_external GL_OES_EGL_sync GL_OES_vertex_array_object GL_OES_viewport_array GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_EXT_robustness GL_EXT_texture_rg GL_EXT_unpack_subimage GL_NV_draw_buffers GL_NV_read_buffer GL_NV_read_depth GL_NV_read_depth_stencil GL_NV_read_stencil GL_EXT_draw_buffers GL_EXT_map_buffer_range GL_KHR_debug GL_KHR_robustness GL_OES_depth_texture_cube_map GL_OES_surfaceless_context GL_EXT_color_buffer_float GL_EXT_separate_shader_objects GL_EXT_shader_integer_mix GL_EXT_tessellation_point_size GL_EXT_tessellation_shader GL_EXT_copy_image GL_EXT_draw_buffers_indexed GL_EXT_draw_elements_base_vertex GL_EXT_gpu_shader5 GL_EXT_polygon_offset_clamp GL_EXT_primitive_bounding_box GL_EXT_shader_io_blocks GL_EXT_texture_border_clamp GL_EXT_texture_buffer GL_EXT_texture_cube_map_array GL_KHR_context_flush_control GL_KHR_robust_buffer_access_behavior GL_NV_image_formats GL_OES_copy_image GL_OES_draw_buffers_indexed GL_OES_draw_elements_base_vertex GL_OES_gpu_shader5 GL_OES_primitive_bounding_box GL_OES_sample_shading GL_OES_sample_variables GL_OES_shader_io_blocks GL_OES_shader_multisample_interpolation GL_OES_tessellation_point_size GL_OES_tessellation_shader GL_OES_texture_border_clamp GL_OES_texture_buffer GL_OES_texture_cube_map_array GL_OES_texture_stencil8 GL_OES_texture_storage_multisample_2d_array GL_EXT_blend_func_extended GL_EXT_buffer_storage GL_EXT_geometry_point_size GL_EXT_geometry_shader GL_EXT_shader_samples_identical GL_OES_geometry_point_size GL_OES_geometry_shader GL_OES_shader_image_atomic GL_EXT_clip_cull_distance GL_MESA_shader_integer_functions 
Disabled Extensions 
GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent 
Window system binding vendor 
Mesa Project 
Window system binding version 
1.4 (DRI2) 
Window system binding extensions 
EGL_EXT_create_context_robustness EGL_EXT_image_dma_buf_import EGL_KHR_config_attribs EGL_KHR_create_context EGL_KHR_fence_sync EGL_KHR_get_all_proc_addresses EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_image_base EGL_KHR_no_config_context EGL_KHR_reusable_sync EGL_KHR_surfaceless_context EGL_KHR_wait_sync EGL_MESA_configless_context EGL_MESA_drm_image EGL_MESA_image_dma_buf_export 
Direct rendering 
Yes 
Reset notification strategy 
0x8252 
GPU process crash count 
0 
Compositor Information
Tile Update Mode 
One-copy 
Partial Raster 
Enabled 
GpuMemoryBuffers Status
ATC 
Software only 
ATCIA 
Software only 
DXT1 
Software only 
DXT5 
Software only 
ETC1 
Software only 
R_8 
Software only 
RG_88 
Software only 
BGR_565 
GPU_READ 
RGBA_4444 
Software only 
RGBX_8888 
GPU_READ, SCANOUT, SCANOUT_CPU_READ_WRITE 
RGBA_8888 
GPU_READ, SCANOUT_CPU_READ_WRITE 
BGRX_8888 
GPU_READ, SCANOUT, SCANOUT_CPU_READ_WRITE 
BGRA_8888 
GPU_READ, SCANOUT_CPU_READ_WRITE 
YVU_420 
GPU_READ 
YUV_420_BIPLANAR 
Software only 
UYVY_422 
Software only 
Log Messages
•	[3154:3164:0309/163904.746154:VERBOSE1:drm_device_manager.cc(54)] : Could not initialize DRM device for /sys/devices/platform/vgem/drm/card1 
•	[3154:3164:0309/163905.636149:VERBOSE1:drm_display.cc(102)] : DRM configuring: device=/sys/devices/pci0000:00/0000:00:02.0/drm/card0 crtc=20 connector=29 origin=0,0 size=2560x1700 

Cc: marc...@chromium.org bhthompson@chromium.org dbehr@chromium.org
Cc: afakhry@chromium.org osh...@chromium.org
Cc: steve...@chromium.org
From the video, md-settings shows that the 3 displays are not touching. I will try to repro this soon.
Cc: malaykeshav@chromium.org
marcheu, is this the bug you told me about?
yes this is the same bug we get with two MST monitors.
I couldn't repro this issue neither on my setup, nor on marcheu's.
Components: UI>Shell>MultipleMonitor

Comment 10 by zork@chromium.org, Mar 28 2017

Owner: marc...@chromium.org
Status: WontFix (was: Unconfirmed)
That's a UI bug, so I'm not the right owner. That said it doesn't seem to reproduce any longer so I'm closing it.
This problem is still reproducible.
I am using Chell CrBook with R59 canary/ R58 dev channel and two UDL devices. 

This problem is reproducible after power wash (and sometimes after reboot).
If you have problems with reproduction try to do a power wash, login user, open any app on internal CrBook screen, then attach the externals UDL screens.

Please check todays video at:
https://drive.google.com/open?id=0BxMF_wPxgWXtSFNIU2lFSTJCLTQ

Thanks,
Adam
Owner: afakhry@chromium.org
Status: Assigned (was: WontFix)
Maybe the layout information wasn't initialized properly on first use. ahmed, can you take a look?
Labels: -Pri-3 M-59 Pri-2
Status: Started (was: Assigned)
Project Member

Comment 15 by bugdroid1@chromium.org, Apr 14 2017

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

commit d3d4ea43bd26fafa27ae723b7db6ada167034248
Author: afakhry <afakhry@chromium.org>
Date: Fri Apr 14 02:01:43 2017

Fix expected PlacementList sort order.

We sort the displays IDs list by the least significant 8 bits of the IDs.
This list is used to fill in the placement list, however,
DisplayLayout::Validate() expects the list to be sorted using the full
display IDs. This resulted in false positives where we skip applying valid
layouts.

We also should never persist an invalid layout.

BUG= 700020 
TEST=manually, +test.

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

[modify] https://crrev.com/d3d4ea43bd26fafa27ae723b7db6ada167034248/chrome/browser/chromeos/display/display_preferences.cc
[modify] https://crrev.com/d3d4ea43bd26fafa27ae723b7db6ada167034248/ui/display/display.cc
[modify] https://crrev.com/d3d4ea43bd26fafa27ae723b7db6ada167034248/ui/display/display.h
[modify] https://crrev.com/d3d4ea43bd26fafa27ae723b7db6ada167034248/ui/display/display_layout.cc
[modify] https://crrev.com/d3d4ea43bd26fafa27ae723b7db6ada167034248/ui/display/display_layout_builder.cc
[modify] https://crrev.com/d3d4ea43bd26fafa27ae723b7db6ada167034248/ui/display/display_layout_unittest.cc
[modify] https://crrev.com/d3d4ea43bd26fafa27ae723b7db6ada167034248/ui/display/manager/display_layout_store.cc
[modify] https://crrev.com/d3d4ea43bd26fafa27ae723b7db6ada167034248/ui/display/manager/display_manager_utilities.cc
[modify] https://crrev.com/d3d4ea43bd26fafa27ae723b7db6ada167034248/ui/display/manager/display_manager_utilities.h

Status: Fixed (was: Started)

Comment 17 by dchan@chromium.org, Jan 22 2018

Status: Archived (was: Fixed)

Sign in to add a comment