Issue metadata
Sign in to add a comment
|
"Rats! WebGL hit a snag" error showing up more often than in the past |
||||||||||||||||||||||||
Issue descriptionOn quite a few websites these days, I get an error from Chrome: "Rats! WebGL hit a snag." (Screenshot attached.) This is on the current M57 dev channel on Android -- I'm not sure if there's been a regression, since I seem to be seeing these more often. This is a pretty strange message to be showing users, for a few reasons: - It's too technical. Most people don't know what WebGL is (nor should they care). We don't pop up error messages like this for anything else that goes wrong in the browser, unless it's a hard crash of the render process (which shows a sad tab page). Why this special case for WebGL? - It's too informal. "Rats" and "Hit a snag" are cute, colloquial terms, but I doubt they internationalize very well. (Is this message shown in languages other than English? If so, would a non-English-speaking user understand what it means?) - There's no meaningful action that a user can take in this case. The options are "Reload", "Ignore", or dismiss through the X. I am not sure why a user would care about reloading vs. ignore vs. dismiss. I'm not quite sure if this error message is shown on anything other than Dev channel; if it's Dev only, it's probably fine. But if this message is shown on beta or stable channels, I'd argue that we should remove it.
,
Feb 7 2017
Deja vu, we just had Issue 686260 saying the same thing. I'm concerned with the sudden uptick in "WebGL hit a snag" reports. But this report, in itself, would be solved by Issue 575305 .
,
Feb 13 2017
mdw: I'm looking into the possible sudden increase in "WebGL hit a snag" errors. Can you copy-paste the text of about:gpu on that device? Thanks.
,
Feb 13 2017
Oh, one more question. Do you see this in standalone Chrome or is it only in Chrome Custom Tabs (the semi-embedded chrome tab interface)?
,
Feb 14 2017
Hi Kai, Here's the output from chrome://gpu on this device. Note that I saw this last a few days ago, it is possible that Chrome has updated since then or that this output no longer reflects the errors I was seeing. I have seen this error both in CCT and regular browsing. Let me know if you need any other details and thanks for looking into this! 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: Disabled Native GpuMemoryBuffers: Software only. Hardware acceleration disabled Rasterization: Hardware accelerated Video Decode: Hardware accelerated Video Encode: Software only, hardware acceleration unavailable VPx Video Decode: Hardware accelerated WebGL: Hardware accelerated WebGL2: Unavailable Driver Bug Workarounds broken_egl_image_ref_counting clear_uniforms_before_first_program_use disable_chromium_framebuffer_multisample disable_depth_texture disable_framebuffer_cmaa disable_program_caching_for_transform_feedback disable_program_disk_cache force_cube_map_positive_x_allocation max_copy_texture_chromium_size_1048576 max_texture_size_limit_4096 scalarize_vec_and_mat_constructor_args unbind_egl_context_to_flush_driver_caches use_virtualized_gl_contexts wake_up_gpu_before_drawing Problems Detected MediaCodec is still too buggy to use for encoding (b/11536167): 615108 Disabled Features: accelerated_video_encode WebGL 2 is not yet ready on Android: 295792, 641635 Disabled Features: webgl2 Disable depth textures on Android with Qualcomm GPUs Applied Workarounds: disable_depth_texture 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 ES3 MSAA is broken on Qualcomm: 449116, 471200, 612474 Applied Workarounds: disable_chromium_framebuffer_multisample 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 Certain Adreno 4xx and 5xx drivers often crash in glProgramBinary.: 486117, 598060 Applied Workarounds: disable_program_disk_cache 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 Adreno 5xx support for EXT_multisampled_render_to_texture is buggy on Android 7.1: 663811 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 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 2/14/2017, 8:55:17 AM Chrome version Chrome/57.0.2977.4 Operating system Android 7.1.2 Software rendering list version 12.07 Driver bug list version 9.28 ANGLE commit id 037340d7feb4 2D graphics backend Skia/57 a16339297859f37df69230e64f05624cef511ad3 Command Line Args --use-mobile-user-agent --top-controls-show-threshold=0.5 --top-controls-hide-threshold=0.5 --use-mobile-user-agent --enable-pinch --enable-viewport --enable-overlay-scrollbar --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 --data-reduction-proxy-lo-fi=cellular-only --enable-data-reduction-proxy-lite-page --flag-switches-end --top-controls-show-threshold=0.5 --top-controls-hide-threshold=0.5 --top-controls-show-threshold=0.5 --top-controls-hide-threshold=0.5 Driver Information Initialization time 212 In-process GPU false Passthrough Command Decoder false Sandboxed false GPU0 VENDOR = 0x0000 [Qualcomm], DEVICE= 0x0000 [Adreno (TM) 530] Optimus false AMD switchable false Driver vendor Driver version 145.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@145.0 (GIT@Idb2b4cb785) 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_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_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 Disabled Extensions GL_EXT_multisampled_render_to_texture GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_OES_depth_texture 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 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 YVU_420 Software only YUV_420_BIPLANAR Software only UYVY_422 Software only Log Messages [ERROR:gles2_cmd_decoder.cc(15303)] : Context lost because SwapBuffers failed. [ERROR:gles2_cmd_decoder.cc(5249)] : Error: 5 for Command kSwapBuffers [ERROR:gles2_cmd_decoder.cc(4197)] : GLES2DecoderImpl: Trying to make lost context current. [ERROR:gles2_cmd_decoder.cc(4197)] : GLES2DecoderImpl: Trying to make lost context current. [ERROR:gles2_cmd_decoder.cc(4197)] : GLES2DecoderImpl: Trying to make lost context current. [ERROR:gles2_cmd_decoder.cc(4197)] : GLES2DecoderImpl: Trying to make lost context current. [ERROR:gles2_cmd_decoder.cc(4197)] : GLES2DecoderImpl: Trying to make lost context current. [ERROR:gles2_cmd_decoder.cc(4197)] : GLES2DecoderImpl: Trying to make lost context current. [ERROR:gles2_cmd_decoder.cc(4197)] : GLES2DecoderImpl: Trying to make lost context current. [ERROR:gles2_cmd_decoder.cc(4197)] : GLES2DecoderImpl: Trying to make lost context current. [ERROR:gles2_cmd_decoder.cc(4197)] : GLES2DecoderImpl: Trying to make lost context current. [ERROR:gles2_cmd_decoder.cc(4197)] : GLES2DecoderImpl: Trying to make lost context current.
,
Mar 7 2017
I'm un-merging this from Issue 575305 and linking it to related Issue 686260 . This morning with Chrome Stable (56) on macOS I saw this happen twice while reading the New York Times. I've also intermittently seen it on Android. There is a definite increase in the appearance of this infobar. Based on the log above and investigation by kainino@, SwapBuffers is failing for one of the contexts -- probably the WebGL context, though I'm not sure why it's calling that. WebGL communicates its rendering results to the compositor via mailboxes, and shouldn't be attempting to call SwapBuffers on its GLES2Implementation. I have a hunch that this is related to out-of-process iframes (OOPIF), and am adding a couple of components to this bug. My guess is that an ad is running in an OOPIF, creating a WebGL context for feature detection purposes, and for some reason the browser attempts to call SwapBuffers on it and that fails. Perhaps the offscreen color buffer in the command buffer hasn't been allocated, or is size 0 x 0, or similar. creis@ or fsamuel@ or kylechar@: are there tests of WebGL in out-of-process iframes? Or, could you point me to a self-contained test case which launches an iframe in another process in a guaranteed fashion so I can modify it and try to reproduce this? Thanks.
,
Mar 8 2017
Here's strong evidence that it's iframe-related, if not out-of-process-iframe related. This is a screenshot of the New York Times web site as it's failing to load a 360 video player on the front page, which is part of an ad hosted inside an iframe. Full-page WebGL content like the WebGL Aquarium runs fine in the same browser session. about:gpu follows. The browser session has been running for a while and there were 2 GPU process crashes in the past, but none recently.
creis@: is there anyone on your team who can take this and try to reproduce?
-----
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: Hardware accelerated
Rasterization: Hardware accelerated
Video Decode: Hardware accelerated
Video Encode: Hardware accelerated
VPx Video Decode: Hardware accelerated
WebGL: Hardware accelerated
WebGL2: Hardware accelerated
Driver Bug Workarounds
adjust_src_dst_region_for_blitframebuffer
decode_encode_srgb_for_generatemipmap
disable_ext_draw_buffers
disable_framebuffer_cmaa
disable_multimonitor_multisampling
get_frag_data_info_bug
needs_offscreen_buffer_workaround
pack_parameters_workaround_with_pack_buffer
regenerate_struct_names
remove_invariant_and_centroid_for_essl3
reset_base_mipmap_level_before_texstorage
scalarize_vec_and_mat_constructor_args
set_zero_level_before_generating_mipmap
unfold_short_circuit_as_ternary_operation
unpack_alignment_workaround_with_unpack_buffer
use_intermediary_for_copy_texture_image
use_unused_standard_shared_blocks
Problems Detected
Work around a bug in offscreen buffers on NVIDIA GPUs on Macs: 89557
Applied Workarounds: needs_offscreen_buffer_workaround
Disable EXT_draw_buffers on GeForce GT 650M on Mac OS X due to driver bugs
Applied Workarounds: disable_ext_draw_buffers
Multisampling is buggy on OSX when multiple monitors are connected: 237931
Applied Workarounds: disable_multimonitor_multisampling
Unfold short circuit on Mac OS X: 307751
Applied Workarounds: unfold_short_circuit_as_ternary_operation
Always rewrite vec/mat constructors to be consistent: 398694
Applied Workarounds: scalarize_vec_and_mat_constructor_args
Mac drivers handle struct scopes incorrectly: 403957
Applied Workarounds: regenerate_struct_names
glGenerateMipmap fails if the zero texture level is not set on some Mac drivers: 560499
Applied Workarounds: set_zero_level_before_generating_mipmap
Pack parameters work incorrectly with pack buffer bound: 563714
Applied Workarounds: pack_parameters_workaround_with_pack_buffer
Alignment works incorrectly with unpack buffer bound: 563714
Applied Workarounds: unpack_alignment_workaround_with_unpack_buffer
copyTexImage2D fails when reading from IOSurface on multiple GPU types.: 581777
Applied Workarounds: use_intermediary_for_copy_texture_image
Limited enabling of Chromium GL_INTEL_framebuffer_CMAA: 535198
Applied Workarounds: disable_framebuffer_cmaa
glGetFragData{Location|Index} works incorrectly on Max: 638340
Applied Workarounds: get_frag_data_info_bug
glTexStorage* are buggy when base mipmap level is not 0: 640506
Applied Workarounds: reset_base_mipmap_level_before_texstorage
Decode and encode before generateMipmap for srgb format textures on macosx: 634519
Applied Workarounds: decode_encode_srgb_for_generatemipmap
Insert statements to reference all members in unused std140/shared blocks on Mac: 618464
Applied Workarounds: use_unused_standard_shared_blocks
adjust src/dst region if blitting pixels outside read framebuffer on Mac: 644740
Applied Workarounds: adjust_src_dst_region_for_blitframebuffer
Mac driver GL 4.1 requires invariant and centroid to match between shaders: 639760, 641129
Applied Workarounds: remove_invariant_and_centroid_for_essl3
Disable KHR_blend_equation_advanced until cc shaders are updated: 661715
Version Information
Data exported 3/8/2017, 1:06:38 AM
Chrome version Chrome/57.0.2987.88
Operating system Mac OS X 10.12.3
Software rendering list version 12.13
Driver bug list version 9.29
ANGLE commit id c1a5d16e964a
2D graphics backend Skia/57 7695359876b8f90225bc4be895c20f34fcdfaf2e
Command Line Args Chrome.app/Contents/MacOS/Google Chrome --restore-last-session --flag-switches-begin --flag-switches-end
Driver Information
Initialization time 44
In-process GPU false
Passthrough Command Decoder false
Sandboxed true
GPU0 VENDOR = 0x10de, DEVICE= 0x0fd5 *ACTIVE*
GPU1 VENDOR = 0x8086, DEVICE= 0x0166
Optimus true
AMD switchable false
Driver vendor
Driver version 10.22.29
Driver date
Pixel shader version 4.10
Vertex shader version 4.10
Max. MSAA samples 8
Machine model name MacBookPro
Machine model version 10.1
GL_VENDOR Intel Inc.
GL_RENDERER Intel HD Graphics 4000 OpenGL Engine
GL_VERSION 4.1 INTEL-10.22.29
GL_EXTENSIONS GL_ARB_blend_func_extended GL_ARB_draw_buffers_blend GL_ARB_draw_indirect GL_ARB_ES2_compatibility GL_ARB_explicit_attrib_location GL_ARB_gpu_shader_fp64 GL_ARB_gpu_shader5 GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_occlusion_query2 GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_separate_shader_objects GL_ARB_shader_bit_encoding GL_ARB_shader_subroutine GL_ARB_shading_language_include GL_ARB_tessellation_shader GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_cube_map_array GL_ARB_texture_gather GL_ARB_texture_query_lod GL_ARB_texture_rgb10_a2ui GL_ARB_texture_storage GL_ARB_texture_swizzle GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_vertex_attrib_64bit GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_EXT_debug_label GL_EXT_debug_marker GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_texture_compression_s3tc GL_EXT_texture_filter_anisotropic GL_EXT_texture_sRGB_decode GL_APPLE_client_storage GL_APPLE_container_object_shareable GL_APPLE_flush_render GL_APPLE_object_purgeable GL_APPLE_rgb_422 GL_APPLE_row_bytes GL_APPLE_texture_range GL_ATI_texture_mirror_once GL_NV_texture_barrier
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 0x0000
GPU process crash count 2
Compositor Information
Tile Update Mode Zero-copy
Partial Raster Enabled
GpuMemoryBuffers Status
ATC Software only
ATCIA Software only
DXT1 Software only
DXT5 Software only
ETC1 Software only
R_8 GPU_READ_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE_PERSISTENT
RG_88 Software only
BGR_565 Software only
RGBA_4444 Software only
RGBX_8888 Software only
RGBA_8888 GPU_READ, SCANOUT
BGRX_8888 GPU_READ, SCANOUT
BGRA_8888 GPU_READ, SCANOUT, GPU_READ_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE_PERSISTENT
YVU_420 Software only
YUV_420_BIPLANAR GPU_READ_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE_PERSISTENT
UYVY_422 GPU_READ_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE_PERSISTENT
Log Messages
[911:16195:0303/020915.581306:ERROR:gpu_watchdog_thread.cc(373)] : The GPU process hung. Terminating after 10000 ms.
GpuProcessHostUIShim: The GPU process crashed!
[1865:16195:0303/071317.654597:ERROR:gpu_watchdog_thread.cc(373)] : The GPU process hung. Terminating after 10000 ms.
GpuProcessHostUIShim: The GPU process crashed!
[4935:775:0303/082812.761026:ERROR:gles2_cmd_decoder.cc(16167)] : [.Offscreen-MainThread-0x7fb8759b6c00]GL ERROR :GL_INVALID_VALUE : glCopySubTextureCHROMIUM: unknown texture id
[4935:775:0303/082812.761074:ERROR:gles2_cmd_decoder.cc(17173)] : [.Offscreen-MainThread-0x7fb8759b6c00]GL ERROR :GL_INVALID_OPERATION : glProduceTextureDirectCHROMIUM: unknown texture for target
[4935:775:0303/082812.761794:ERROR:gles2_cmd_decoder.cc(16666)] : [.Offscreen-MainThread-0x7fb8759b6c00]GL ERROR :GL_INVALID_VALUE : glCopySubTextureCHROMIUM: destination texture bad dimensions.
[4935:775:0303/082812.761846:ERROR:gles2_cmd_decoder.cc(17186)] : [.Offscreen-MainThread-0x7fb8759b6c00]GL ERROR :GL_INVALID_OPERATION : glProduceTextureDirectCHROMIUM: invalid target
[4935:775:0303/082814.655987:ERROR:gles2_cmd_decoder.cc(16167)] : [.Offscreen-MainThread-0x7fb8759b6c00]GL ERROR :GL_INVALID_VALUE : glCopySubTextureCHROMIUM: unknown texture id
[4935:775:0303/082814.656027:ERROR:gles2_cmd_decoder.cc(17173)] : [.Offscreen-MainThread-0x7fb8759b6c00]GL ERROR :GL_INVALID_OPERATION : glProduceTextureDirectCHROMIUM: unknown texture for target
[4935:775:0303/082814.656164:ERROR:gles2_cmd_decoder.cc(16167)] : [.Offscreen-MainThread-0x7fb8759b6c00]GL ERROR :GL_INVALID_VALUE : glCopySubTextureCHROMIUM: unknown texture id
[4935:775:0303/082814.656187:ERROR:gles2_cmd_decoder.cc(17173)] : [.Offscreen-MainThread-0x7fb8759b6c00]GL ERROR :GL_INVALID_OPERATION : glProduceTextureDirectCHROMIUM: unknown texture for target
[4935:775:0303/084231.204669:ERROR:latency_info.cc(163)] : GpuCommandBufferStub::OnAsyncFlush, LatencyInfo vector size 1751 is too big.
[4935:775:0303/084731.488200:ERROR:latency_info.cc(163)] : GpuCommandBufferStub::OnAsyncFlush, LatencyInfo vector size 181 is too big.
[4935:775:0304/235829.077976:ERROR:latency_info.cc(163)] : GpuCommandBufferStub::OnAsyncFlush, LatencyInfo vector size 300 is too big.
[4935:775:0308/085646.577032:ERROR:interface_registry.cc(203)] : Failed to locate a binder for interface: chrome::mojom::ResourceUsageReporter requested by: exposed by: via InterfaceProviderSpec "service_manager:connector".
[4935:775:0308/085646.577090:WARNING:interface_registry.cc(210)] : InterfaceRegistry(service_manager:connector): --> InterfaceRegistry is not yet bound to a pipe.
,
Mar 8 2017
Note: I restarted the browser and the problem is no longer readily reproducible, even reloading the page over and over again. In hindsight, I might have forgotten to click the "Reload" button in the infobar, so it's possible that a GPU process crash from some time ago might have blocked WebGL access on nytimes.com, and so the ad which used WebGL would correctly have been blocked. The question is still why WebGL in an iframe appears to be so unstable.
,
Mar 8 2017
We aren't using out-of-process iframes for normal web pages yet-- only when an extension page has a web iframe or vice versa (unless the user has turned on something like --top-document-isolation or --site-per-process). The example in comment 7 is not an OOPIF, for example, since the screenshot shows the iframe's source inline in the DevTools window (which doesn't work until issue 652783 is fixed). That said, there could definitely be something iframe related here, either from our changes or not. I've also been seeing this error a lot on Mac (with --isolate-extensions enabled) when using Google Photos (when a video plays), and I think on Android on AMP pages (with no OOPIF mode enabled). lfg@ or kenrb@, do you know if any of the frame changes we've made might be contributing to this?
,
Mar 8 2017
Thanks creis@ for your input and apologies that I didn't know the state of OOPIFs. I don't mean to make your team triage a likely WebGL-specific bug, but if you can provide any pointers as to how the backing store for iframes might be being handled specially even in the in-process case, that would be helpful. Thanks.
,
Mar 8 2017
No worries. I think iframes do get their own surface, but I'll definitely have to defer to kenrb@ or lfg@ here for details. Maybe they can share what they know and assign it back?
,
Mar 9 2017
In-process iframes are not special in this regard, they get their own backing surface only if there is a reason, such as a transform that requires a separate composited layer. I would expect that an ad with a 360 video player would cause this to be the case, but it's not an area that we have touched. OOPIFs, obviously, always get a separate backing surface, in the other process. I don't have any useful insight into what might be causing this. lfg@ might have additional thoughts.
,
Mar 13 2017
It looks like lfg@ is OOO this whole week, so I'll assign this back to kbr@ for triage given comment 12. Maybe someone on the compositing team would be able to help further about the surface aspect of it?
,
Mar 21 2017
As Ken pointed out, the OOPIF-related changes shouldn't affect the rendering of in-process iframes, which is the case in comment #7. The only thing that could be possibly related is the fact that with OOPIFs we may be using more GPU resources in general. Perhaps jbauman@ could have some ideas.
,
Mar 21 2017
+piman@ +danakj@
,
Mar 21 2017
The only contexts that should call SwapBuffers are the UI compositor's and possibly Pepper ones (i.e. not on Android). I believe Pepper ones can't fail SwapBuffers, so it's not that either. SwapBuffers failing loses contexts and at least on Android, that makes us kill the GPU process, which would among others lose the webgl context and show the infobar. I'm not sure it necessarily makes sense to merge the Mac and the Android versions of this bug, because the root cause seems very different (e.g. Mac's SwapBuffers doesn't have a path where it fails, and the report looks unrelated where the GPU process hangs instead and then gets killed by the watchdog). For Android, it would be useful to have more details about the failure reason. There can be many cases that lead to that same error (coalesced into GLES2DecoderImpl::FinishSwapBuffers, that shows the error, but the actual error came from before).
,
May 3 2017
Reviving this bug to see if we can at least fix the string by addressing the issues mdw@ mentions in c#1: too technical, too informal. Proposal is to change the string to "Can’t load 3D graphics on this page" Include RELOAD if reload might fix the problem.
,
May 3 2017
Too technical might make sense, but isn't the casual tone of the message consistent with other Chrome error messaging? (i.e. "Aw, snap", "He's dead Jim")
,
May 3 2017
We're going to replace this UI to eliminate the infobar entirely in Issue 575305 . There's a possibility that the increased "Rats!" infobars are caused by bugs where the GPU watchdog is firing more often than it used to; see Issue 609252 , which we haven't had any success in diagnosing. This mainly seems to affect ads that are for one reason or another allocating a WebGL context for feature detection that they don't actually use.
,
May 13 2017
My wife has been hitting this pretty regularly on Chrome on her Macbook Pro on Google sites such as Google Maps. She also hits it on her Android Chrome. Let me know if there are any diagnostics we can run for you.
,
Jul 25 2017
,
Aug 9 2017
,
Aug 10 2017
I've never seen this message before, and now see it within hours of running Chrome. Gmail and Google Photos tabs show this. Windows 10 just downloaded and installed a major update, and that is the only change I can think of to my system. Chrome: Version 60.0.3112.90 (Official Build) (64-bit) Windows 10 Pro, Version 1703
,
Aug 10 2017
#23: please copy/paste the contents of about:gpu to a plaintext file and attach the contents here. Thanks. (Your GPU process is probably crashing and the question is why. Also, Gmail just started creating a WebGL rendering context for no good reason; I filed b/64543405 about this yesterday.)
,
Sep 20 2017
stanisc@ just fixed a longstanding bug which affected Chrome's suspend/resume detection on all platforms. I think this is the cause of this infobar popping up more often on Windows and Mac, at least, if not Android too. Personally I haven't seen this happen in a while. I'm going to duplicate this report into the one where that issue was fixed. If it still seems to be happening with Canary or Dev then please reopen it.
,
Mar 9 2018
I have the same problem on Chrome Canary for Android Version: 67.0.3365.0 OS: Android 7.0 (Samsung Galaxy S7 Edge) I'm using three.js's GLTF loader to load the GLB file attached. You can see the issue here: https://vqa.hexa3d.io/index.html?load=//cdn.hexa3d.io/hotlink-ok/models/bouclair_long_chair.glb This issue is taking place only on Android with Chrome. Works on Chrome on other platforms. Works on Android on other browsers. Here is the output from my chrome://gpu/ Graphics Feature StatusCanvas: Hardware acceleratedCheckerImaging: DisabledFlash: Hardware acceleratedFlash Stage3D: Hardware acceleratedFlash Stage3D Baseline profile: Hardware acceleratedCompositing: Hardware acceleratedMultiple Raster Threads: DisabledNative GpuMemoryBuffers: Software only. Hardware acceleration disabledRasterization: Hardware acceleratedSurface Synchronization: DisabledVideo Decode: Hardware acceleratedViz Service Display Compositor: DisabledWebGL: Hardware acceleratedWebGL2: Hardware accelerated Driver Bug Workaroundsclear_uniforms_before_first_program_usedisable_framebuffer_cmaadont_disable_webgl_when_compositor_context_lostmax_texture_size_limit_4096scalarize_vec_and_mat_constructor_argsuse_client_side_arrays_for_stream_buffersuse_virtualized_gl_contexts Problems DetectedARM driver doesn't like uploading lots of buffer data constantly: 178093 Applied Workarounds: use_client_side_arrays_for_stream_buffersThe Mali-Txxx driver does not guarantee flush ordering: 154715, 10068, 269829, 294779, 285292 Applied Workarounds: use_virtualized_gl_contextsClear uniforms before first program use on all platforms: 124764, 349137 Applied Workarounds: clear_uniforms_before_first_program_useAlways rewrite vec/mat constructors to be consistent: 398694 Applied Workarounds: scalarize_vec_and_mat_constructor_argsLimit max texure size to 4096 on all of Android Applied Workarounds: max_texture_size_limit_4096Use GL_INTEL_framebuffer_CMAA on ChromeOS: 535198 Applied Workarounds: disable_framebuffer_cmaaDisable KHR_blend_equation_advanced until cc shaders are updated: 661715 Applied Workarounds: disable(GL_KHR_blend_equation_advanced), disable(GL_KHR_blend_equation_advanced_coherent)eglSwapBuffers intermittently fails on Android when app goes to background: 744678 Applied Workarounds: dont_disable_webgl_when_compositor_context_lostDon't expose disjoint_timer_query extensions to WebGL: 808744Raster is using a single thread. Disabled Features: multiple_raster_threadsNative GpuMemoryBuffers have been disabled, either via about:flags or command line. Disabled Features: native_gpu_memory_buffersSurface synchronization has been disabled by Finch trial or command line. Disabled Features: surface_synchronizationViz service display compositor is not enabled by default. Disabled Features: viz_display_compositorChecker-imaging has been disabled via finch trial or the command line. Disabled Features: checker_imaging Version Information Data exported2018-03-09T15:34:43.342ZChrome versionChrome/67.0.3365.0Operating systemAndroid 7.0Software rendering list URLhttps://chromium.googlesource.com/chromium/src/+/d86541c542807cdf78c8df4e61f4ada085fa8eaa/gpu/config/software_rendering_list.jsonDriver bug list URLhttps://chromium.googlesource.com/chromium/src/+/d86541c542807cdf78c8df4e61f4ada085fa8eaa/gpu/config/gpu_driver_bug_list.jsonANGLE commit id40dba69082bd2D graphics backendSkia/67 88df8d2e5a87df5605b1d5530408cc6f534d8feb-Command Line--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 --main-frame-resizes-are-orientation-changes --disable-composited-antialiasing --enable-dom-distiller --flag-switches-begin --flag-switches-end --top-controls-show-threshold=0.5 --top-controls-hide-threshold=0.5 Driver Information Initialization time224In-process GPUfalsePassthrough Command DecoderfalseDirect CompositionfalseSupports overlaysfalseSandboxedfalseGPU0VENDOR = 0x0000 [ARM], DEVICE= 0x0000 [Mali-T880] *ACTIVE*OptimusfalseOptimusfalseAMD switchablefalseDriver vendorDriver version1.Driver datePixel shader version3.20Vertex shader version3.20Max. MSAA samples16Machine model nameSM-G935FMachine model versionGL_VENDORARMGL_RENDERERMali-T880GL_VERSIONOpenGL ES 3.2 v1.r12p1-03dev0.228ab63cced004f840e7dd47b762a1d0GL_EXTENSIONSGL_EXT_debug_marker GL_ARM_rgba8 GL_ARM_mali_shader_binary GL_OES_depth24 GL_OES_depth_texture GL_OES_depth_texture_cube_map GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_EXT_read_format_bgra GL_OES_compressed_paletted_texture GL_OES_compressed_ETC1_RGB8_texture GL_OES_standard_derivatives GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_EGL_image_external_essl3 GL_OES_EGL_sync GL_OES_texture_npot GL_OES_vertex_half_float GL_OES_required_internalformat GL_OES_vertex_array_object GL_OES_mapbuffer GL_EXT_texture_format_BGRA8888 GL_EXT_texture_rg GL_EXT_texture_type_2_10_10_10_REV GL_OES_fbo_render_mipmap GL_OES_element_index_uint GL_EXT_shadow_samplers GL_OES_texture_compression_astc GL_KHR_texture_compression_astc_ldr GL_KHR_texture_compression_astc_hdr GL_KHR_texture_compression_astc_sliced_3d GL_KHR_debug GL_EXT_occlusion_query_boolean GL_EXT_disjoint_timer_query GL_EXT_blend_minmax GL_EXT_discard_framebuffer GL_OES_get_program_binary GL_OES_texture_3D GL_EXT_texture_storage GL_EXT_multisampled_render_to_texture GL_OES_surfaceless_context GL_OES_texture_stencil8 GL_EXT_shader_pixel_local_storage GL_ARM_shader_framebuffer_fetch GL_ARM_shader_framebuffer_fetch_depth_stencil GL_ARM_mali_program_binary GL_EXT_sRGB GL_EXT_sRGB_write_control GL_EXT_texture_sRGB_decode GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_OES_texture_storage_multisample_2d_array GL_OES_shader_image_atomic GL_EXT_robustness GL_EXT_draw_buffers_indexed GL_OES_draw_buffers_indexed GL_EXT_texture_border_clamp GL_OES_texture_border_clamp GL_EXT_texture_cube_map_array GL_OES_texture_cube_map_array GL_OES_sample_variables GL_OES_sample_shading GL_OES_shader_multisample_interpolation GL_EXT_shader_io_blocks GL_OES_shader_io_blocks GL_EXT_tessellation_shader GL_OES_tessellation_shader GL_EXT_primitive_bounding_box GL_OES_primitive_bounding_box GL_EXT_geometry_shader GL_OES_geometry_shader GL_ANDROID_extension_pack_es31a GL_EXT_gpu_shader5 GL_OES_gpu_shader5 GL_EXT_texture_buffer GL_OES_texture_buffer GL_EXT_copy_image GL_OES_copy_image GL_EXT_color_buffer_half_float GL_EXT_color_buffer_float GL_EXT_YUV_target GL_OVR_multiview GL_OVR_multiview2 GL_OVR_multiview_multisampled_render_to_texture GL_KHR_robustness GL_KHR_robust_buffer_access_behavior GL_EXT_draw_elements_base_vertex GL_OES_draw_elements_base_vertex GL_EXT_protected_texturesDisabled ExtensionsGL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherentDisabled WebGL ExtensionsEXT_disjoint_timer_query EXT_disjoint_timer_query_webgl2Window system binding vendorWindow system binding versionWindow system binding extensionsDirect renderingYesReset notification strategy0x8252GPU process crash count2 Compositor Information Tile Update ModeOne-copyPartial RasterEnabled GpuMemoryBuffers Status ATCSoftware onlyATCIASoftware onlyDXT1Software onlyDXT5Software onlyETC1Software onlyR_8Software onlyR_16Software onlyRG_88Software onlyBGR_565Software onlyRGBA_4444Software onlyRGBX_8888Software onlyRGBA_8888Software onlyBGRX_8888Software onlyBGRX_1010102Software onlyRGBX_1010102Software onlyBGRA_8888Software onlyRGBA_F16Software onlyYVU_420Software onlyYUV_420_BIPLANARSoftware onlyUYVY_422Software only Display(s) Information InfoDisplay[0] bounds=0,0 360x640, workarea=0,0 360x640, scale=3, externalColor space information{primaries:BT709, transfer:IEC61966_2_1, matrix:RGB, range:FULL}Bits per color component8Bits per pixel24 Video Acceleration Information Decode vp8up to 3840x2160 pixelsDecode vp8up to 3840x2160 pixels (encrypted)Decode vp9 profile0up to 3840x2160 pixelsDecode vp9 profile0up to 3840x2160 pixels (encrypted)Decode vp9 profile1up to 3840x2160 pixelsDecode vp9 profile1up to 3840x2160 pixels (encrypted)Decode vp9 profile2up to 3840x2160 pixelsDecode vp9 profile2up to 3840x2160 pixels (encrypted)Decode vp9 profile3up to 3840x2160 pixelsDecode vp9 profile3up to 3840x2160 pixels (encrypted)Decode h264 baselineup to 3840x2160 pixelsDecode h264 mainup to 3840x2160 pixelsDecode h264 extendedup to 3840x2160 pixelsDecode h264 highup to 3840x2160 pixelsDecode h264 high 10up to 3840x2160 pixelsDecode h264 high 4:2:2up to 3840x2160 pixelsDecode h264 high 4:4:4 predictiveup to 3840x2160 pixelsDecode h264 scalable baselineup to 3840x2160 pixelsDecode h264 scalable highup to 3840x2160 pixelsDecode h264 stereo highup to 3840x2160 pixelsDecode h264 multiview highup to 3840x2160 pixelsEncode vp8up to 1280x720 pixels and/or 30.000 fpsEncode h264 baselineup to 1280x720 pixels and/or 30.000 fps Log Messages[ERROR:gles2_cmd_decoder.cc(16482)] : Onscreen context lost via ARB/EXT_robustness. Reset status = GL_GUILTY_CONTEXT_RESET_KHR[ERROR:gles2_cmd_decoder.cc(4561)] :GLES2DecoderImpl: Context reset detected after MakeCurrent.[ERROR:gpu_channel_manager.cc(200)] : Exiting GPU process because some drivers cannot recover from problems.[ERROR:gpu_channel_manager.cc(200)] : Exiting GPU process because some drivers cannot recover from problems.GpuProcessHostUIShim:[ERROR:gles2_cmd_decoder.cc(18293)] : [.DisplayCompositor-0xbb418100]GL ERROR :GL_INVALID_OPERATION : glCreateAndConsumeTextureCHROMIUM: invalid mailbox name[ERROR:gles2_cmd_decoder.cc(10134)] : [.DisplayCompositor-0xbb418100]RENDER WARNING: texture bound to texture unit 0 is not renderable. It maybe non-power-of-2 and have incompatible texture filtering.[ERROR:gles2_cmd_decoder.cc(16482)] : Onscreen context lost via ARB/EXT_robustness. Reset status = GL_GUILTY_CONTEXT_RESET_KHR[ERROR:gles2_cmd_decoder.cc(4561)] :GLES2DecoderImpl: Context reset detected after MakeCurrent.[ERROR:gpu_channel_manager.cc(200)] : Exiting GPU process because some drivers cannot recover from problems.[ERROR:gpu_channel_manager.cc(200)] : Exiting GPU process because some drivers cannot recover from problems.GpuProcessHostUIShim:[ERROR:gles2_cmd_decoder.cc(18293)] : [.DisplayCompositor-0xbae08900]GL ERROR :GL_INVALID_OPERATION : glCreateAndConsumeTextureCHROMIUM: invalid mailbox name[ERROR:gles2_cmd_decoder.cc(10134)] : [.DisplayCompositor-0xbae08900]RENDER WARNING: texture bound to texture unit 0 is not renderable. It maybe non-power-of-2 and have incompatible texture filtering.
,
Mar 9 2018
ranbuch: It's not related to this issue. Could you please file a new bug report with the same info that you included in your comment? Thanks!
,
Mar 10 2018
kainino: I've tried twice but got a 400 Error, Screenshot attached.
,
Mar 10 2018
Strange, we may need to file an issue about that too. Do any of these work: https://bugs.chromium.org/p/chromium/issues/entry http://crbug.com/new https://chromiumbugs.appspot.com/ (not even sure the last one is correct)
,
Mar 11 2018
The first link is working fine for me: https://bugs.chromium.org/p/chromium/issues/detail?id=820775 Probably should open an issue thought. Thank you. |
|||||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||||
Comment 1 by mdw@chromium.org
, Feb 7 2017