Issue metadata
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 descriptionUserAgent: 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:
,
Mar 9 2018
,
Mar 9 2018
Please provide the contents of about:gpu from your system.
,
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!
,
Mar 9 2018
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
,
Mar 9 2018
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.
,
Mar 9 2018
Just FYI, the same happens with Mesa 17.2.8.
,
Mar 9 2018
,
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.
,
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.
,
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?
,
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?
,
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.
,
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.
,
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.
,
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.
,
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.
,
Mar 13 2018
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.
,
Mar 13 2018
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...
,
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);
}
,
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?
,
Mar 15 2018
>> Driver vendor Mesa >> Driver version 18.0.0 Try disabling on-disk shader cache by setting the env var MESA_GLSL_CACHE_DISABLE=1
,
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.
,
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?
,
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.
,
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.
,
Mar 17 2018
Glad to know! I'm closing this, and if you have any issues in future, please let us know again. Thanks!
,
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 |
|||||||||||||||||||||||
Comment 1 by gov...@chromium.org
, Mar 9 2018Labels: Needs-Triage-M65