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

Issue 736873 link

Starred by 3 users

Issue metadata

Status: Assigned
Owner:
Last visit > 30 days ago
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 2
Type: Bug-Regression



Sign in to add a comment

Chrome crashes with a cc gl context error at startup when using debug build flags

Project Member Reported by amp@chromium.org, Jun 26 2017

Issue description

Chrome Version: Started showing up 6/20.
OS: Android, both N and O

What steps will reproduce the problem?
(1) Use the following gn arg flags to build chrome
is_debug = true
symbol_level = 2
android_full_debug = true
(2) build monochrome_public_apk, push to device
(3) start Chrome

What is the expected result?
Chrome starts and allows browsing

What happens instead?
Crash, see attached stack trace

This is appears to be graphics related (from the stack trace), but getting about:gpu will be in a follow up comment.

Adding to blink compositing as the stack fails in cc, but I'm not sure if there is a better component. 
 
stacktrace.log
25.8 KB View Download

Comment 1 by amp@chromium.org, Jun 26 2017

I had tried bisecting and at one point saw a good build at fe0fbcf8aed1 with a bad one at 97b10be1f94e, but when I went back to the good one to re-verify it failed again, so I'm not sure what actually caused it (but it's probably somewhere around that range.

Comment 2 by amp@google.com, Jun 26 2017

about://gpu
Graphics Feature Status
Canvas: Hardware accelerated
CheckerImaging: Enabled
Flash: Hardware accelerated
Flash Stage3D: Hardware accelerated
Flash Stage3D Baseline profile: Hardware accelerated
Compositing: Hardware accelerated
Multiple Raster Threads: Disabled
Native GpuMemoryBuffers: Software only. Hardware acceleration disabled
Rasterization: Hardware accelerated
Video Decode: Hardware accelerated
Video Encode: Hardware accelerated
WebGL: Hardware accelerated
WebGL2: Hardware accelerated
Driver Bug Workarounds
broken_egl_image_ref_counting
clear_uniforms_before_first_program_use
disable_framebuffer_cmaa
disable_program_caching_for_transform_feedback
force_cube_map_positive_x_allocation
max_copy_texture_chromium_size_1048576
max_texture_size_limit_4096
multisample_renderbuffer_resize_emulation
scalarize_vec_and_mat_constructor_args
unbind_egl_context_to_flush_driver_caches
use_virtualized_gl_contexts
wake_up_gpu_before_drawing
Problems Detected
Non-virtual contexts on Qualcomm sometimes cause out-of-order frames: 289461
Applied Workarounds: use_virtualized_gl_contexts
The first draw operation from an idle state is slow: 309734
Applied Workarounds: wake_up_gpu_before_drawing
Clear uniforms before first program use on all platforms: 124764, 349137
Applied Workarounds: clear_uniforms_before_first_program_use
Always rewrite vec/mat constructors to be consistent: 398694
Applied Workarounds: scalarize_vec_and_mat_constructor_args
glFinish doesn't clear caches on Android: 509727
Applied Workarounds: unbind_egl_context_to_flush_driver_caches
Android Adreno crashes on binding incomplete cube map texture to FBO: 518889
Applied Workarounds: force_cube_map_positive_x_allocation
CHROMIUM_copy_texture with 1MB copy per flush to avoid unwanted cache growth on Adreno: 542478
Applied Workarounds: max_copy_texture_chromium_size_1048576
EGLImage ref counting across EGLContext/threads is broken: 585250
Applied Workarounds: broken_egl_image_ref_counting
Limit max texure size to 4096 on all of Android
Applied Workarounds: max_texture_size_limit_4096
Limited enabling of Chromium GL_INTEL_framebuffer_CMAA: 535198
Applied Workarounds: disable_framebuffer_cmaa
Disable KHR_blend_equation_advanced until cc shaders are updated: 661715
Program binaries don't contain transform feedback varyings on Qualcomm GPUs: 658074
Applied Workarounds: disable_program_caching_for_transform_feedback
Multisampled color renderbuffers can't be resized on Qualcomm 4xx/5xx: 696126
Applied Workarounds: multisample_renderbuffer_resize_emulation
Raster is using a single thread.
Disabled Features: multiple_raster_threads
Native GpuMemoryBuffers have been disabled, either via about:flags or command line.
Disabled Features: native_gpu_memory_buffers
Version Information
Data exported	6/26/2017, 1:53:51 PM
Chrome version	Chrome/61.0.3142.0
Operating system	Android 8.0.0
Software rendering list version	13.8
Driver bug list version	10.16
ANGLE commit id	579d8c7dfcfa
2D graphics backend	Skia/61 8744405448b9402e1368aebd321c4f555543301a-
Command Line	_ --enable-vr-shell-dev --use-mobile-user-agent --top-controls-show-threshold=0.5 --top-controls-hide-threshold=0.5 --use-mobile-user-agent --enable-pinch --enable-viewport --validate-input-event-stream --enable-longpress-drag-selection --touch-selection-strategy=direction --disable-gpu-process-crash-limit --main-frame-resizes-are-orientation-changes --disable-composited-antialiasing --ui-prioritize-in-gpu-process --profiler-timing=0 --prerender-from-omnibox=enabled --enable-dom-distiller --flag-switches-begin --enable-features=VrCustomTabBrowsing,VrShell --flag-switches-end
Driver Information
Initialization time	205
In-process GPU	false
Passthrough Command Decoder	false
Supports overlays	false
Sandboxed	false
GPU0	VENDOR = 0x0000 [Qualcomm], DEVICE= 0x0000 [Adreno (TM) 530]
Optimus	false
Optimus	false
AMD switchable	false
Driver vendor	
Driver version	225.0
Driver date	
Pixel shader version	3.20
Vertex shader version	3.20
Max. MSAA samples	4
Machine model name	Pixel
Machine model version	
GL_VENDOR	Qualcomm
GL_RENDERER	Adreno (TM) 530
GL_VERSION	OpenGL ES 3.2 V@225.0 (GIT@2359e36, I1690059165) (Date:06/22/17)
GL_EXTENSIONS	GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_EGL_sync GL_OES_vertex_half_float GL_OES_framebuffer_object GL_OES_rgb8_rgba8 GL_OES_compressed_ETC1_RGB8_texture GL_AMD_compressed_ATC_texture GL_KHR_texture_compression_astc_ldr GL_KHR_texture_compression_astc_hdr GL_OES_texture_compression_astc GL_OES_texture_npot GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_OES_texture_3D GL_EXT_color_buffer_float GL_EXT_color_buffer_half_float GL_QCOM_alpha_test GL_OES_depth24 GL_OES_packed_depth_stencil GL_OES_depth_texture GL_OES_depth_texture_cube_map GL_EXT_sRGB GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_EXT_texture_type_2_10_10_10_REV GL_EXT_texture_sRGB_decode GL_OES_element_index_uint GL_EXT_copy_image GL_EXT_geometry_shader GL_EXT_tessellation_shader GL_OES_texture_stencil8 GL_EXT_shader_io_blocks GL_OES_shader_image_atomic GL_OES_sample_variables GL_EXT_texture_border_clamp GL_EXT_multisampled_render_to_texture GL_EXT_multisampled_render_to_texture2 GL_OES_shader_multisample_interpolation GL_EXT_texture_cube_map_array GL_EXT_draw_buffers_indexed GL_EXT_gpu_shader5 GL_EXT_robustness GL_EXT_texture_buffer GL_EXT_shader_framebuffer_fetch GL_ARM_shader_framebuffer_fetch_depth_stencil GL_OES_texture_storage_multisample_2d_array GL_OES_sample_shading GL_OES_get_program_binary GL_EXT_debug_label GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_QCOM_tiled_rendering GL_ANDROID_extension_pack_es31a GL_EXT_primitive_bounding_box GL_OES_standard_derivatives GL_OES_vertex_array_object GL_EXT_disjoint_timer_query GL_KHR_debug GL_EXT_YUV_target GL_EXT_sRGB_write_control GL_EXT_texture_norm16 GL_EXT_discard_framebuffer GL_OES_surfaceless_context GL_OVR_multiview GL_OVR_multiview2 GL_EXT_texture_sRGB_R8 GL_ARB_texture_barrier GL_KHR_no_error GL_EXT_debug_marker GL_OES_EGL_image_external_essl3 GL_OVR_multiview_multisampled_render_to_texture GL_EXT_buffer_storage GL_EXT_blit_framebuffer_params GL_EXT_clip_cull_distance GL_EXT_protected_textures GL_EXT_shader_non_constant_global_initializers GL_QCOM_framebuffer_foveated GL_QCOM_shader_framebuffer_fetch_noncoherent
Disabled Extensions	GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent
Window system binding vendor	
Window system binding version	
Window system binding extensions	
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
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
BGRA_8888	Software only
RGBA_F16	Software only
YVU_420	Software only
YUV_420_BIPLANAR	Software only
UYVY_422	Software only

Components: -Blink>Compositing Internals>Compositing
Labels: -Type-Bug -Pri-3 Pri-1 Type-Bug-Regression

Comment 4 by vmi...@chromium.org, Jun 27 2017

Cc: ccameron@chromium.org ericrk@chromium.org kainino@chromium.org enne@chromium.org
This cold be a change in CC shaders, or a GPU service change.  I'm not seeing recent changes to GLRenderer shaders.

amp@ would you mind adding more logging to diagnose why ProgramBindingBase::Init is failing?

Comment 5 by amp@chromium.org, Jun 27 2017

Sure, I realize now that I had verbose logging turned off.  I'm working on another change, but once I finish that I'll switch back to a debug build and repro with more logging turned on  (I don't use logging flags much so if there is a specific format I should set things to, let me know).

Comment 6 by amp@chromium.org, Jun 27 2017

Attached is verbose log trimmed to as small as I could make it (from just before starting Chrome to just after it crashed).

However, I just reread #4 and realized I may have misinterpreted it, did you want me to make code changes to log what is going on there?
verbose.log
100 KB View Download

Comment 7 by enne@chromium.org, Jun 30 2017

06-27 11:26:11.423  9554  9554 E chromium: [ERROR:program_binding.cc(230)] Error compiling shader: ERROR: 0:2: '' : invalid character
06-27 11:26:11.423  9554  9554 E chromium: ERROR: 0:2: 'À' : invalid character
06-27 11:26:11.423  9554  9554 E chromium: ERROR: 0:2: 'ÿ' : invalid character
06-27 11:26:11.423  9554  9554 E chromium: ERROR: 0:2: '¸' : invalid character
06-27 11:26:11.423  9554  9554 E chromium: ERROR: 0:2: '' : invalid character
06-27 11:26:11.423  9554  9554 E chromium: ERROR: 0:2: 'À' : invalid character
06-27 11:26:11.423  9554  9554 E chromium: ERROR: 0:2: 'ÿ' : invalid character
06-27 11:26:11.423  9554  9554 E chromium: ERROR: 0:2: '¸' : invalid character
06-27 11:26:11.423  9554  9554 E chromium: ERROR: 0:2: '' : invalid character
06-27 11:26:11.423  9554  9554 E chromium: ERROR: 0:2: 'À' : invalid character
06-27 11:26:11.423  9554  9554 E chromium: ERROR: 0:2: 'ÿ' : invalid character
06-27 11:26:11.423  9554  9554 E chromium: ERROR: 0:? : '' : syntax error
06-27 11:26:11.423  9554  9554 E chromium: 
06-27 11:26:11.423  9554  9554 E chromium:  shader program: #define LutLookup texture2D
06-27 11:26:11.423  9554  9554 E chromium: Àÿ¸Àÿ¸Àÿ
06-27 11:26:11.464  9554  9554 F chromium: [FATAL:program_binding.h(409)] Check failed: IsContextLost(context_provider->ContextGL()).

That looks very surprising.  Could you add a base::debug::StackTrace to that check to see which shader is causing this?

Comment 8 by amp@chromium.org, Jul 5 2017

I'm not sure if I did things correctly, but when I added in a debug:StackTrace it wasn't able to resolve it to anything useful.  The below is all I get after passing it through third_party/android_platform/development/scripts/stack:

Stack Trace:
  RELADDR   FUNCTION   FILE:LINE
  014d00d7  <unknown>  /data/app/org.chromium.chrome-3B_NAtBzn9VvCXTqgEtPMg==/base.apk
  04fa61a1  <unknown>  /data/app/org.chromium.chrome-3B_NAtBzn9VvCXTqgEtPMg==/base.apk
  04fa2c91  <unknown>  /data/app/org.chromium.chrome-3B_NAtBzn9VvCXTqgEtPMg==/base.apk
  04f9ccc9  <unknown>  /data/app/org.chromium.chrome-3B_NAtBzn9VvCXTqgEtPMg==/base.apk
  04f95c1f  <unknown>  /data/app/org.chromium.chrome-3B_NAtBzn9VvCXTqgEtPMg==/base.apk
  04f939b7  <unknown>  /data/app/org.chromium.chrome-3B_NAtBzn9VvCXTqgEtPMg==/base.apk
  04f92d9d  <unknown>  /data/app/org.chromium.chrome-3B_NAtBzn9VvCXTqgEtPMg==/base.apk
  04f89c49  <unknown>  /data/app/org.chromium.chrome-3B_NAtBzn9VvCXTqgEtPMg==/base.apk
  04f88d9d  <unknown>  /data/app/org.chromium.chrome-3B_NAtBzn9VvCXTqgEtPMg==/base.apk
  04f888eb  <unknown>  /data/app/org.chromium.chrome-3B_NAtBzn9VvCXTqgEtPMg==/base.apk
  05339f2b  <unknown>  /data/app/org.chromium.chrome-3B_NAtBzn9VvCXTqgEtPMg==/base.apk
  0533eef3  <unknown>  /data/app/org.chromium.chrome-3B_NAtBzn9VvCXTqgEtPMg==/base.apk
  0533e3dd  <unknown>  /data/app/org.chromium.chrome-3B_NAtBzn9VvCXTqgEtPMg==/base.apk
  0533de49  <unknown>  /data/app/org.chromium.chrome-3B_NAtBzn9VvCXTqgEtPMg==/base.apk
  05340f4d  <unknown>  /data/app/org.chromium.chrome-3B_NAtBzn9VvCXTqgEtPMg==/base.apk
  05340eeb  <unknown>  /data/app/org.chromium.chrome-3B_NAtBzn9VvCXTqgEtPMg==/base.apk
  05340eab  <unknown>  /data/app/org.chromium.chrome-3B_NAtBzn9VvCXTqgEtPMg==/base.apk
  05340e2f  <unknown>  /data/app/org.chromium.chrome-3B_NAtBzn9VvCXTqgEtPMg==/base.apk
  0534225f  <unknown>  /data/app/org.chromium.chrome-3B_NAtBzn9VvCXTqgEtPMg==/base.apk
  05341f43  <unknown>  /data/app/org.chromium.chrome-3B_NAtBzn9VvCXTqgEtPMg==/base.apk
  05340f4d  <unknown>  /data/app/org.chromium.chrome-3B_NAtBzn9VvCXTqgEtPMg==/base.apk
  05342077  <unknown>  /data/app/org.chromium.chrome-3B_NAtBzn9VvCXTqgEtPMg==/base.apk
  05342037  <unknown>  /data/app/org.chromium.chrome-3B_NAtBzn9VvCXTqgEtPMg==/base.apk
  05341fbb  <unknown>  /data/app/org.chromium.chrome-3B_NAtBzn9VvCXTqgEtPMg==/base.apk
  014ac2b1  <unknown>  /data/app/org.chromium.chrome-3B_NAtBzn9VvCXTqgEtPMg==/base.apk
  014d0ebf  <unknown>  /data/app/org.chromium.chrome-3B_NAtBzn9VvCXTqgEtPMg==/base.apk
  0151d02b  <unknown>  /data/app/org.chromium.chrome-3B_NAtBzn9VvCXTqgEtPMg==/base.apk
  0151d3c3  <unknown>  /data/app/org.chromium.chrome-3B_NAtBzn9VvCXTqgEtPMg==/base.apk
  0151d919  <unknown>  /data/app/org.chromium.chrome-3B_NAtBzn9VvCXTqgEtPMg==/base.apk
  01520957  <unknown>  /data/app/org.chromium.chrome-3B_NAtBzn9VvCXTqgEtPMg==/base.apk
  0152082d  <unknown>  /data/app/org.chromium.chrome-3B_NAtBzn9VvCXTqgEtPMg==/base.apk
  00054125  <unknown>  /data/app/org.chromium.chrome-3B_NAtBzn9VvCXTqgEtPMg==/oat/arm/base.odex


I'm not familiar at all with the code here (and am still pretty new to c++ in general), so it's entirely possible I screwed something up when trying to get the stack trace.

Comment 9 by enne@chromium.org, Jul 7 2017

Cc: weiliangc@chromium.org khushals...@chromium.org
I think we just need somebody on the gpu team to debug this on Android themselves.

Comment 10 by enne@chromium.org, Jul 21 2017

Owner: weiliangc@chromium.org
Status: Assigned (was: Untriaged)
weiliangc: could you investigate?

Comment 11 by fsamuel@google.com, Nov 24 2017

Wei, any update on this? Thanks!
Wei, any update here? If you don't have time to look at this assign to me and I'll re-triage.
Owner: ericrk@chromium.org
gpu triage: taking ericrk@'s offer; assigning to ericrk@ to re-triage for p1 bug.
Labels: -Pri-1 Pri-2
Owner: vikassoni@chromium.org
Vikas, can you take a look at this and see if the issue still exists? If so, can you try to find a solution? Thanks!
sure I am looking at it..

Sign in to add a comment