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

Issue 820446 link

Starred by 3 users

Issue metadata

Status: WontFix
Owner:
Closed: Mar 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug-Regression



Sign in to add a comment

google-chrome-stable GPU thread crashes in i965_dri.so

Reported by xhejt...@gmail.com, Mar 9 2018

Issue description

UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36

Steps to reproduce the problem:
1. Start latest google-chrome-stable
2. chrome://gpu/
3. GpuProcessHostUIShim: The GPU process crashed!

What is the expected behavior?
Not to crash, obviously.

What went wrong?
Program terminated with signal SIGSEGV, Segmentation fault.
#0  _mesa_WindowPos3dv (v=0x1) at ../../../src/mesa/main/rastpos.c:833
[Current thread is 1 (Thread 0x7f2f8dc94ac0 (LWP 28975))]
(gdb) where
#0  0x00007f2f7d513bd8 in _mesa_WindowPos3dv (v=0x1) at ../../../src/mesa/main/rastpos.c:833
#1  0x0000562dc8f28bef in  ()
#2  0x0000000000000000 in  ()
(gdb) disassemble _mesa_WindowPos3dv
Dump of assembler code for function _mesa_WindowPos3dv:
   0x00007f2f7d513bc0 <+0>:	mov    0x97b3c1(%rip),%rax        # 0x7f2f7de8ef88
   0x00007f2f7d513bc7 <+7>:	push   %rbx
   0x00007f2f7d513bc8 <+8>:	pxor   %xmm0,%xmm0
   0x00007f2f7d513bcc <+12>:	pxor   %xmm2,%xmm2
   0x00007f2f7d513bd0 <+16>:	mov    %fs:(%rax),%rbx
   0x00007f2f7d513bd4 <+20>:	pxor   %xmm1,%xmm1
=> 0x00007f2f7d513bd8 <+24>:	cvtsd2ss (%rdi),%xmm0
   0x00007f2f7d513bdc <+28>:	cvtsd2ss 0x10(%rdi),%xmm2
   0x00007f2f7d513be1 <+33>:	cvtsd2ss 0x8(%rdi),%xmm1
   0x00007f2f7d513be6 <+38>:	callq  0x7f2f7d5119b0 <window_pos3f>
   0x00007f2f7d513beb <+43>:	movl   $0x3f800000,0x21b8(%rbx)
   0x00007f2f7d513bf5 <+53>:	pop    %rbx
   0x00007f2f7d513bf6 <+54>:	retq   
End of assembler dump.

It obviously called either wrong function or passed wrong args (0x1 instead of a valid pointer).

Crashed report ID: No

How much crashed? Just one tab

Is it a problem with a plugin? No 

Did this work before? Yes Not exactly sure.

Chrome version: 65.0.3325.146  Channel: stable
OS Version: Ubuntu 18.04
Flash Version:
 
Cc: kbr@chromium.org vmi...@chromium.org
Labels: Needs-Triage-M65
Components: Internals>GPU

Comment 3 by kbr@chromium.org, Mar 9 2018

Cc: yang...@intel.com yunchao...@intel.com
Labels: GPU-Intel Needs-Feedback
Please provide the contents of about:gpu from your system.

Comment 4 by xhejt...@gmail.com, Mar 9 2018


Graphics Feature Status
Canvas: Software only, hardware acceleration unavailable
CheckerImaging: Disabled
Flash: Software only. Hardware acceleration disabled
Flash Stage3D: Software only. Hardware acceleration disabled
Flash Stage3D Baseline profile: Software only. Hardware acceleration disabled
Compositing: Software only. Hardware acceleration disabled
Multiple Raster Threads: Enabled
Native GpuMemoryBuffers: Software only. Hardware acceleration disabled
Rasterization: Software only. Hardware acceleration disabled
Video Decode: Software only. Hardware acceleration disabled
WebGL: Software only, hardware acceleration unavailable
WebGL2: Software only, hardware acceleration unavailable
Problems Detected
Native GpuMemoryBuffers have been disabled, either via about:flags or command line.
Disabled Features: native_gpu_memory_buffers
Checker-imaging has been disabled via finch trial or the command line.
Disabled Features: checker_imaging
Version Information
Data exported	2018-03-09T18:13:22.740Z
Chrome version	Chrome/65.0.3325.146
Operating system	Linux 4.15.0-12-generic
Software rendering list URL	https://chromium.googlesource.com/chromium/src/+/f926414266f7aecb5ec1bf1b5f93f8716976ceef/gpu/config/software_rendering_list.json
Driver bug list URL	https://chromium.googlesource.com/chromium/src/+/f926414266f7aecb5ec1bf1b5f93f8716976ceef/gpu/config/gpu_driver_bug_list.json
ANGLE commit id	2c9cc8b6e810
2D graphics backend	Skia/65 bd0dafbc8112f6cfa92a8096d8cb5696d8535ef9-
Command Line	/usr/bin/google-chrome --process-per-site --force-device-scale-factor=2 --high-dpi-support=1 --enable_hidpi=1 --flag-switches-begin --show-saved-copy=primary --enable-smooth-scrolling --flag-switches-end
Driver Information
Initialization time	61
In-process GPU	false
Passthrough Command Decoder	false
Direct Composition	false
Supports overlays	false
Sandboxed	true
GPU0	VENDOR = 0x8086, DEVICE= 0x1616 *ACTIVE*
Optimus	false
Optimus	false
AMD switchable	false
Driver vendor	Mesa
Driver version	18.0.0
Driver date	
Pixel shader version	1.00
Vertex shader version	1.00
Max. MSAA samples	4
Machine model name	
Machine model version	
GL_VENDOR	Google Inc.
GL_RENDERER	Google SwiftShader
GL_VERSION	OpenGL ES 2.0 SwiftShader 4.0.0.0
GL_EXTENSIONS	GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth24 GL_OES_depth32 GL_OES_depth_texture GL_OES_depth_texture_cube_map GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_EGL_sync GL_OES_element_index_uint GL_OES_framebuffer_object GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_OES_standard_derivatives 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_texture_3D GL_OES_vertex_half_float GL_EXT_blend_minmax GL_EXT_color_buffer_half_float GL_EXT_draw_buffers GL_EXT_instanced_arrays GL_EXT_occlusion_query_boolean GL_EXT_read_format_bgra GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_EXT_texture_rg GL_ANGLE_framebuffer_blit GL_ANGLE_framebuffer_multisample GL_ANGLE_instanced_arrays GL_CHROMIUM_texture_filtering_hint GL_NV_fence GL_NV_framebuffer_blit GL_NV_read_depth
Disabled Extensions	
Disabled WebGL Extensions	
Window system binding vendor	Google Inc.
Window system binding version	1.4 SwiftShader 4.0.0.0
Window system binding extensions	EGL_KHR_create_context EGL_KHR_get_all_proc_addresses EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_fence_sync EGL_KHR_image_base EGL_ANDROID_framebuffer_target EGL_ANDROID_recordable
Window manager	Openbox
Compositing manager	No
Direct rendering	Yes
Reset notification strategy	0x0000
GPU process crash count	3
System visual ID	0
RGBA visual ID	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
R_16	Software only
RG_88	Software only
BGR_565	Software only
RGBA_4444	Software only
RGBX_8888	Software only
RGBA_8888	Software only
BGRX_8888	Software only
BGRX_1010102	Software only
BGRA_8888	Software only
RGBA_F16	Software only
YVU_420	Software only
YUV_420_BIPLANAR	Software only
UYVY_422	Software only
Display(s) Information
Info	Display[13761487533244416] bounds=0,0 1280x720, workarea=0,16 1280x703, scale=2, external
Color space information	{primaries:INVALID, transfer:INVALID, matrix:INVALID, range:INVALID}
Bits per color component	8
Bits per pixel	24
Video Acceleration Information
Log Messages
GpuProcessHostUIShim: The GPU process crashed!
GpuProcessHostUIShim: The GPU process crashed!
GpuProcessHostUIShim: The GPU process crashed!
Project Member

Comment 5 by sheriffbot@chromium.org, Mar 9 2018

Labels: -Needs-Feedback
Thank you for providing more feedback. Adding the requester to the cc list.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot

Comment 6 by kbr@chromium.org, Mar 9 2018

Cc: marc...@chromium.org
Owner: yang...@intel.com
Hmm. Looks like Intel HD Graphics 5500, Mesa 18.0.0.

Yang / Yunchao: do you have any Linux machines with this configuration? Can you see whether it's working? Thanks.

(The Chromium project's testing on Intel GPUs on Linux on a continuous basis here:
https://ci.chromium.org/buildbot/chromium.gpu.fyi/Linux%20FYI%20Release%20%28Intel%20HD%20630%29/

and don't see this instability.)

+marcheu also as FYI in case Chrome OS is also affected.

Comment 7 by xhejt...@gmail.com, Mar 9 2018

Just FYI, the same happens with Mesa 17.2.8.
Status: Assigned (was: Unconfirmed)

Comment 9 by yang...@intel.com, Mar 12 2018

This is Broadwell GPU, but the one we have is a different type (Iris Pro Graphics 6200). I tried it today with current OS (16.04 LTS), and couldn't repro the issue with exact same Chrome. I'm upgrading the system to 18.04 beta and will have a try tomorrow. Some questions:
1. Ubuntu 18.04 hasn't been released. Did you see this issue in previous Ubuntu?
2. I noticed several extra Chrome options (--process-per-site --force-device-scale-factor=2 --high-dpi-support=1 --enable_hidpi=1 --flag-switches-begin --show-saved-copy=primary --enable-smooth-scrolling --flag-switches-end) are added. Are they necessary to repro the issue?

Anyway, I will give a try tomorrow to see if I can repro it at my side. 

Comment 10 by xhejt...@gmail.com, Mar 12 2018

I think I didn't see this issue in previous Ubuntu version. I do use rolling updates from ubuntu-devel branch. I remember, that GPU used to work. I started to debug this as I have huge issues with:
1) wrong flushes so some parts of the web page are not displayed
2) terrible tearing while scrolling
so I thought GPU accel could solve this as it was not an issue some versions before.

I do need high-dpi and device-scale factors as I use 2500px wide on 14" and 4k on external 32". Not sure about the flag-switches.

Comment 11 by yang...@intel.com, Mar 13 2018

It seems I can't repro this issue after upgrading my system to 18.04. The GPU is also from Broadwell, but a different type (Iris Pro Graphics 6200). More details can be found in attached file. I also tried but couldn't find the same GPU nearby. 
According to your crash stack, it seems to be something in Mesa. As Ubuntu 18.04 is still in heavy development, can you have another try after its official release?
gpu.html
64.5 KB View Download

Comment 12 by yang...@intel.com, Mar 13 2018

Looked into your GPU info again, and I had a misunderstanding of your Mesa crash. Your crash happened after falling back to CPU path (SwiftShader), thus the Mesa crash stack is actually in Chrome, instead of Mesa in system. While this might be an issue in SwiftShader, your real issue is why the GPU path couldn't work. Can you have a try with Firefox and run a simple WebGL case (e.g., https://webglsamples.org/aquarium/aquarium.html) to see if it works?

Comment 13 by xhejt...@gmail.com, Mar 13 2018

It works just fine in firefox. Not sure whether firefox is using 3d hw accel though. layers.acceleration.force-enabled is true. 

Comment 14 by xhejt...@gmail.com, Mar 13 2018

And perhaps internal Mesa might not be compatible with my external i965_dri.so module?

this avoids coredump but obviously, it is not a solution:
export LIBGL_ALWAYS_SOFTWARE=1

maybe these messages can be helpful?
libGL: Can't open configuration file /home/xhejtman/.drirc: Operation not permitted.
[17516:17516:0313/144354.114082:ERROR:command_buffer_proxy_impl.cc(133)] ContextResult::kTransientFailure: Failed to send GpuChannelMsg_CreateCommandBuffer.
libGL: Can't open configuration file /home/xhejtman/.drirc: Operation not permitted.
[1:1:0313/144354.221225:ERROR:command_buffer_proxy_impl.cc(133)] ContextResult::kTransientFailure: Failed to send GpuChannelMsg_CreateCommandBuffer.
[17516:17516:0313/144354.225190:ERROR:command_buffer_proxy_impl.cc(133)] ContextResult::kTransientFailure: Failed to send GpuChannelMsg_CreateCommandBuffer.
libGL: Can't open configuration file /home/xhejtman/.drirc: Operation not permitted.
[1:1:0313/144354.312323:ERROR:command_buffer_proxy_impl.cc(133)] ContextResult::kTransientFailure: Failed to send GpuChannelMsg_CreateCommandBuffer.
[17516:17516:0313/144354.312484:ERROR:command_buffer_proxy_impl.cc(133)] ContextResult::kTransientFailure: Failed to send GpuChannelMsg_CreateCommandBuffer.
[17516:17516:0313/144354.368192:ERROR:gpu_process_transport_factory.cc(1019)] Lost UI shared context.
[1:10:0313/144354.374839:ERROR:command_buffer_proxy_impl.cc(133)] ContextResult::kTransientFailure: Failed to send GpuChannelMsg_CreateCommandBuffer.


I straced chrome to see what's wrong with ~.drirc:
17911 openat(AT_FDCWD, "/home/xhejtman/.drirc", O_RDONLY <unfinished ...>
17911 <... openat resumed> )            = 257
17911 --- SIGSYS {si_signo=SIGSYS, si_code=SYS_SECCOMP, si_errno=ENOENT, si_call_addr=0x7faed0955dae, si_syscall=__NR_openat, si_arch=AUDIT_ARCH_X86_64} ---
17911 rt_sigreturn({mask=[]} <unfinished ...>
17911 <... rt_sigreturn resumed> )      = -1 EPERM (Operation not permitted)

so, it seems that while ~/.drirc can be opened, but chrome itself denies access to it. However, even removing ~/.drirc does not make GPU accel working.

Comment 15 by xhejt...@gmail.com, Mar 13 2018

maybe this is even more interesting (exported MESA_DEBUG=1)

Mesa: User error: GL_INVALID_VALUE in glShaderSourceARB
[1:1:0313/145959.301243:ERROR:command_buffer_proxy_impl.cc(133)] ContextResult::kTransientFailure: Failed to send GpuChannelMsg_CreateCommandBuffer.
[19190:19190:0313/145959.305276:ERROR:command_buffer_proxy_impl.cc(133)] ContextResult::kTransientFailure: Failed to send GpuChannelMsg_CreateCommandBuffer.

Comment 16 by kbr@chromium.org, Mar 13 2018

The error:

Mesa: User error: GL_INVALID_VALUE in glShaderSourceARB

would definitely be a problem. If Chrome's failing to load its own shaders (for its compositor, for example) then the GPU process would be torn down quickly and cause the cascading failures you're seeing on your system, including the fallback to SwiftShader.

Comment 17 by kbr@chromium.org, Mar 13 2018

#15: also, Chrome's GPU process sandbox is probably what's preventing ~/.drirc from being loaded. You can confirm this by running Chrome with the command line argument --disable-gpu-sandbox but you shouldn't browse the web in this mode.

I'm not sure why your system attempts to load that file and others don't.

It sounds like chrome is sending a shader, and mesa thinks that the shader is invalid. Since mesa has historically been more strict about the GL spec than other implementations, that wouldn't be too surprising. I don't know why we aren't seeing this on Chrome OS though.
Hmm actually from the spec: 

    The error INVALID_VALUE is generated by any command that takes one or
    more handles as input, and one or more of these handles are not an
    object handle generated by OpenGL.

So maybe it's an invalid handle...

Comment 20 by xhejt...@gmail.com, Mar 13 2018

This is from Mesa sources, looks like shader is NULL..


shader_source(struct gl_context *ctx, GLuint shaderObj, GLsizei count,
              const GLchar *const *string, const GLint *length, bool no_error)
{
   GLint *offsets;
   GLsizei i, totalLength;
   GLcharARB *source;
   struct gl_shader *sh;

   if (!no_error) {
      sh = _mesa_lookup_shader_err(ctx, shaderObj, "glShaderSourceARB");
      if (!sh)
         return;

      if (string == NULL) {
         _mesa_error(ctx, GL_INVALID_VALUE, "glShaderSourceARB");
         return;
      }
   } else {
      sh = _mesa_lookup_shader(ctx, shaderObj);
   }

Comment 21 by yang...@intel.com, Mar 15 2018

I found the same GPU today, which is in a Broadwell laptop (Lenovo S1 Yoga). However, I still couldn't repro the issue. 
The Ubuntu image was downloaded from http://cdimage.ubuntu.com/daily-live/current/. Then I burned it into an usb key, and used it to boot into system without installation (I couldn't replace current Windows as I borrowed the laptop).
I tried both Chrome Stable and Dev (downloaded from https://www.chromium.org/getting-involved/dev-channel), but couldn't repro the issue (can run Aquarium well). The detailed gpu info are as attached. 
Note that I couldn't install Chrome Stable smoothly, and later I used the command "sudo dpkg -i --ignore-depends=libappindicator1 google-chrome-stable_current_amd64.deb" to ignore the dependence with libappindicator1. The installation of Chrome Dev had no such problem. 
Now I suspect there is some problem in your system. Could you please follow my way to have a clean try?
gpu-stable.html
64.5 KB View Download
gpu-dev.html
64.8 KB View Download
>> Driver vendor Mesa
>> Driver version 18.0.0

Try disabling on-disk shader cache by setting the env var MESA_GLSL_CACHE_DISABLE=1

Comment 23 by xhejt...@gmail.com, Mar 15 2018

no effect disabling shader cache. I will give it a try with fresh new install on usb disk whether there is any change.

Comment 24 by xhejt...@gmail.com, Mar 15 2018

Yang, can you check whether you are running intel driver of modesetting driver? I'm still using intel 2d gfx driver while fresh ubuntu install uses modesetting driver + gl accel. 

I tried ubuntu live image of ubuntu bionic and GPU accel works in the chrome stable. However, this live image uses the modesetting driver, not the intel driver. Could you check?

Comment 25 by yang...@intel.com, Mar 16 2018

Can I know how to check this? And is there any way to force Intel driver in live image? Note I'm using the live image, which means everything is non-persistent. 
BTW, I'm OOO today and may have to get back to you early next week. 

Comment 26 by xhejt...@gmail.com, Mar 17 2018

After complete reinstall to ubuntu 18, the GPU issue is not present anymore. Didn't find what was the problem with the previous installation.

Comment 27 by yang...@intel.com, Mar 17 2018

Status: WontFix (was: Assigned)
Glad to know! I'm closing this, and if you have any issues in future, please let us know again. Thanks!

Comment 28 by xhejt...@gmail.com, Mar 17 2018

I'm getting many of theses errors in chrome://gpu. It is not crashing though.


[1960:1960:0317/103705.491502:ERROR:gl_surface_presentation_helper.cc(104)] : GetVSyncParametersIfAvailable() failed!
[1960:1960:0317/103705.493140:ERROR:gl_surface_presentation_helper.cc(104)] : GetVSyncParametersIfAvailable() failed!
[1960:1960:0317/103705.499040:ERROR:gl_surface_presentation_helper.cc(104)] : GetVSyncParametersIfAvailable() failed!
[1960:1960:0317/103705.500697:ERROR:gl_surface_presentation_helper.cc(104)] : GetVSyncParametersIfAvailable() failed!
[1960:1960:0317/103706.492610:ERROR:gl_surface_presentation_helper.cc(104)] : GetVSyncParametersIfAvailable() failed!

Sign in to add a comment