Hi all,
On May 3rd new version of Chrome, 58, was released and we stopped seeing map on our website in Chrome only.
https://aramcoservices.bssdev.com/contact-us
https://aramcoservices.bssdev.com/about/our-reach
We upgraded map api to latest version 0.37.0 and still experiencing the same issue.
Error message from console:
Error: Failed to initialize WebGL
at e._setupPainter (map.js:1311)
at new e (map.js:179)
at app.js:4
Enabling WebGL in chrome://flags didn't resolve it either.
Steps to Trigger Behavior
Expected Behavior
Map is displayed.
Actual Behavior
"Mapbox GL unsupported" error message.
OS:
Windows 7, 10
Seems to be a Windows Issue, I can see your map on OSX & Chrome 58.
@Scarysize it is, I can see it on Mac too.
Can you post the contents of chrome://gpu/
?
I also ran into this on my machine sometime back. Chrome gave this error while safari worked fine. It looks like Chrome has marked some graphic cards as incompatible in the latest version. I had to disable 'Override software rendering list' under chrome://flags to get webgl working again.
Here is content of my chrome://gpu/
Graphics Feature Status
Canvas: Software only, hardware acceleration unavailable
Flash: Software only, hardware acceleration unavailable
Flash Stage3D: Software only, hardware acceleration unavailable
Flash Stage3D Baseline profile: Software only, hardware acceleration unavailable
Compositing: Software only, hardware acceleration unavailable
Multiple Raster Threads: Unavailable
Native GpuMemoryBuffers: Software only. Hardware acceleration disabled
Rasterization: Software only, hardware acceleration unavailable
Video Decode: Software only, hardware acceleration unavailable
Video Encode: Software only, hardware acceleration unavailable
VPx Video Decode: Software only, hardware acceleration unavailable
WebGL: Unavailable
WebGL2: Unavailable
Driver Bug Workarounds
clear_uniforms_before_first_program_use
decode_encode_srgb_for_generatemipmap
disable_d3d11
disable_discard_framebuffer
disable_framebuffer_cmaa
exit_on_context_lost
force_cube_complete
msaa_is_slow
scalarize_vec_and_mat_constructor_args
texsubimage_faster_than_teximage
Problems Detected
GPU process was unable to boot: Features are disabled on full but not preliminary GPU info.
Disabled Features: all
VPx decoding is too slow on Intel Broadwell, Skylake, and CherryView: 616318
Disabled Features: accelerated_vpx_decode
GPU rasterization should only be enabled on NVIDIA and Intel DX11+, and AMD RX-R2 GPUs for now.: 643850
Disabled Features: gpu_rasterization
Accelerated VPx decoding is hanging on some videos.: 654111
Disabled Features: accelerated_vpx_decode
Some drivers are unable to reset the D3D device in the GPU process sandbox
Applied Workarounds: exit_on_context_lost
TexSubImage is faster for full uploads on ANGLE
Applied Workarounds: texsubimage_faster_than_teximage
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
Disable Direct3D11 on systems with AMD switchable graphics: 451420
Applied Workarounds: disable_d3d11
ANGLE crash on glReadPixels from incomplete cube map texture: 518889
Applied Workarounds: force_cube_complete
On Intel GPUs MSAA performance is not acceptable for GPU rasterization: 527565
Applied Workarounds: msaa_is_slow
Framebuffer discarding can hurt performance on non-tilers: 570897
Applied Workarounds: disable_discard_framebuffer
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
Decode and Encode before generateMipmap for srgb format textures on Windows: 634519
Applied Workarounds: decode_encode_srgb_for_generatemipmap
Native GpuMemoryBuffers have been disabled, either via about:flags or command line.
Disabled Features: native_gpu_memory_buffers
Version Information
Data exported 5/4/2017, 1:13:10 PM
Chrome version Chrome/58.0.3029.96
Operating system Windows NT 10.0.14393
Software rendering list version 12.20
Driver bug list version 9.36
ANGLE commit id 461d9a3060e3
2D graphics backend Skia/58 4c81ba6ba3a3270db809bf7d4c3bc782694a56a4
Command Line Args Files (x86)\Google\Chrome\Applicationchrome.exe" --flag-switches-begin --enable-es3-apis --flag-switches-end
Driver Information
Initialization time 332
In-process GPU false
Passthrough Command Decoder false
Sandboxed true
GPU0 VENDOR = 0x1002, DEVICE= 0x6900
GPU1 VENDOR = 0x8086, DEVICE= 0x1916 ACTIVE
Optimus false
Optimus false
AMD switchable true
Desktop compositing Aero Glass
Diagonal Monitor Size of \.\DISPLAY3 21.9"
Diagonal Monitor Size of \.\DISPLAY2 21.9"
Diagonal Monitor Size of \.\DISPLAY1 13.9"
Driver vendor Advanced Micro Devices, Inc.
Driver version 21.19.128.4
Driver date 9-3-2016
Pixel shader version 3.0
Vertex shader version 3.0
Max. MSAA samples 16
Machine model name
Machine model version
GL_VENDOR Google Inc.
GL_RENDERER ANGLE (Intel(R) HD Graphics 520 Direct3D9Ex vs_3_0 ps_3_0)
GL_VERSION OpenGL ES 2.0 (ANGLE 2.1.0.461d9a3060e3)
GL_EXTENSIONS GL_ANGLE_client_arrays GL_ANGLE_depth_texture GL_ANGLE_framebuffer_blit GL_ANGLE_framebuffer_multisample GL_ANGLE_instanced_arrays GL_ANGLE_pack_reverse_row_order GL_ANGLE_request_extension GL_ANGLE_robust_client_memory GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_ANGLE_texture_usage GL_ANGLE_translated_shader_source GL_CHROMIUM_bind_generates_resource GL_CHROMIUM_bind_uniform_location GL_CHROMIUM_copy_texture GL_CHROMIUM_sync_query GL_EXT_blend_minmax GL_EXT_color_buffer_half_float GL_EXT_debug_marker GL_EXT_frag_depth GL_EXT_occlusion_query_boolean GL_EXT_read_format_bgra GL_EXT_robustness GL_EXT_shader_texture_lod GL_EXT_texture_compression_dxt1 GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_EXT_texture_storage GL_EXT_unpack_subimage GL_KHR_debug GL_NV_fence GL_NV_pack_subimage GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_depth32 GL_OES_element_index_uint GL_OES_get_program_binary 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_vertex_array_object
Disabled Extensions GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent
Window system binding vendor Google Inc. (adapter LUID: 0000000000008465)
Window system binding version 1.4 (ANGLE 2.1.0.461d9a3060e3)
Window system binding extensions EGL_EXT_create_context_robustness EGL_ANGLE_d3d_share_handle_client_buffer EGL_ANGLE_d3d_texture_client_buffer EGL_ANGLE_surface_d3d_texture_2d_share_handle EGL_ANGLE_query_surface_pointer EGL_ANGLE_window_fixed_size EGL_NV_post_sub_buffer EGL_KHR_create_context EGL_EXT_device_query EGL_KHR_image EGL_KHR_image_base EGL_KHR_gl_texture_2D_image EGL_KHR_gl_renderbuffer_image EGL_KHR_get_all_proc_addresses EGL_ANGLE_flexible_surface_compatibility EGL_ANGLE_create_context_webgl_compatibility EGL_CHROMIUM_create_context_bind_generates_resource EGL_EXT_pixel_format_float EGL_ANGLE_display_texture_share_group EGL_ANGLE_create_context_client_arrays
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
Diagnostics
... loading ...
Log Messages
WARNING: Hardware acceleration is unavailable.
I have WebGL enabled in chrome://flags/
This looks like https://bugs.chromium.org/p/chromium/issues/detail?id=687004.
@jfirebaugh I enabled 'Override software rendering list' in chrome://flags and I can see map then..
I tried to reproduce issue described in https://bugs.chromium.org/p/chromium/issues/detail?id=687004 and everything was ok.
great! glad you were able to get it working! thanks @karinamkl
@mollymerp can you guys take a look at map yourself, please? some end users won't see it and we can't make them change browser settings to make it visible.
@karinamkl The issue here is that for certain models of GPU, Chrome has a bug where it thinks that WebGL is not possible on that GPU, when it actually is. Two results of that:
If you'd like to see the Chrome bug fixed, please star or leave a comment here: https://bugs.chromium.org/p/chromium/issues/detail?id=687004. Thanks!
@jfirebaugh hopefully they will. thanks for information!
Should be fixed in next version of Chrome...
http://stackoverflow.com/q/43807988/2399799
(although that's not 100% what you were after)
just chiming in that its still happening in some people's chrome browser on 2018 MacBook Pros version 65 (64 bit)
I'm currently seeing this in Windows 10, Chrome version 66.0.3395.117. Is it back?
I am now experiencing this Chrome Version 67.0.3396.62 (Official Build) (64-bit)
All is well on my end with this now. Even after enabling hardware acceleration i believe, a fresh restart was needed before it functioned as expected.
Ill just tell all my users to restart their computer =]
I also am getting this error on Chrome 67.0.3396.79 (Official Build) (64-bit) on the Mac.
Same thing on Chrome 67.0.3396.87 on MacOS. Happens when the page is reloaded (not immediately, but after being open for quite some time). In my case it was enough to close the tab and open the same URL in a new one.
Same here on Chrome 67.0.3396.87 (MacOS - El Capitan).
Works on:
Version 67.0.3396.99 (Official Build) (64-bit)
MacBook Pro (Retina, 15-inch, Mid 2015)
Mac OS 10.13.5
Doesn't work on:
Version 67.0.3396.99 (Official Build) (64-bit
iMac (Retina 5K, 27-inch, Late 2014)
AMD Radeon R9 M290X 2048 MB
MacOS Sierra 10.13.6 (17G65)
UPD:
This helped:
Go to chrome://settings
Click the Show advanced settings link
Scroll down to the System section and ensure the Use hardware acceleration when available checkbox is checked
https://forum.onshape.com/discussion/3822/mac-os-chrome-no-webgl-functionality
Hi everyone,
I'm getting this error now for an application my team has been working on, but I think it has something to do with the new web proxy at work.
Recently I was the only member on my team who got added to the new pilot web proxy and now getting this error:
Uncaught Error: Failed to initialize WebGL.
at new o (<root>\node_modules\mapbox-gl\dist\mapbox-gl.js:sourcemap:33)
at getNewMap (gis-map.ts:56)
at createMap (gis-map.ts:18)
at HTMLDocument.<anonymous> (gis-map.ts:243)
at mightThrow (<root>\node_modules\jquery\dist\jquery.js:3534)
at process (<root>\node_modules\jquery\dist\jquery.js:3602)
My teammates who are not on the web proxy do not get this error. Are there some specific URLs that are being used to initialize WebGL? I can probably test to see if they are blocked by the web proxy if so.
Thanks for any help!
@GitFlip WebGL initialization is handled internally by the browser. The only URLs that are used are blob URLs which are created for the worker bundle so that service workers can download the code they need in order to parse tiles and perform layout.
@ryanbaumann Thanks for the explanation - a bit new to all this. For example I had to look up blob URLs: https://stackoverflow.com/a/30881444/759593
This is probably getting out of the context of this issue, but would you happen to know if there is a way to understand (using chrome dev tools or something of the like) to see if the new proxy is interfering with the blob URLs?
I don't think the browser is messing this up as my whole team is using the same version of chrome.
Edit: Perhaps I jumped to conclusions. I tried an older web app that we built out and it is working correctly.
Not sure what could be causing this issue then for the new one especially since it is only affecting me and not the whole team.
Out of curiosity though I wouldn't mind checking on the blob URLs if it's possible.
WebGL initialization shouldn't affect the workers and vice versa. Try going to chrome://gpu/
in your browser to ensure that your browser's hardware is still accelerated.
is there any way we can detect this or handle this gracefully? so the user doesn't see a blank screen?
I see this still happening.
Sorry that your comment slipped through the cracks @agiratech-vigneshm but since there's some continuing interest in this ticket, I wanted to point out the mapbox-gl-supported
plugin. This plugin detects WebGL support and gives the developer a chance to gracefully handle any machines that can't display WebGL content. Hope this can help anyone facing this situation.
I fixed the issue, but not sure how I did it. Probably by updating mapbox-gl-js version. @viczam Can you check your mapbox gl version and update here?
Thanks @ryanhamley
I fixed the issue, but not sure how I did it. Probably by updating mapbox-gl-js version. @viczam Can you check your mapbox gl version and update here?
Thanks @ryanhamley
We updated our mapbox gl js version to 1.3.1 hoping it would fix this issue for our users but it did not.
Here is some additional details that we have gathered from our user base. The ONLY users that experience this problem are users of Corporate provided PCs from 2 organizations that we service. My guess is there is some sort of web proxy related issue here that at least 1 other person on this thread pointed out. However, what makes matters more strange is that having them access the mapbox gl js Example page in the documentation - the map LOADS! wtf? Also worth noting, when we have them install Firefox, the map loads just fine.
What is happening?!
@1parkplace Sorry to hear that your users are facing this issue. The Mapbox examples pages working indicates that this is not an issue with their GPU or with Chrome. Without a further reproducible case, it is not possible for us to diagnose this issue.
Could you provide a minimal reproducible case using a site like jsbin or jsfiddle? Alternatively, you can contact support.
Thank you!
@1parkplace Sorry to hear that your users are facing this issue. The Mapbox examples pages working indicates that this is not an issue with their GPU or with Chrome. Without a further reproducible case, it is not possible for us to diagnose this issue.
Could you provide a minimal reproducible case using a site like jsbin or jsfiddle? Alternatively, you can contact support.
Thank you!
I wish - not even we can reproduce it. The only way I have been able to reproduce is by remote sharing their screen and logging the error, which is just Failed to Initialize WebGL. It works fine on every other device and every other network. Just like 150 of our customers that have Corporate provided PCs that have Chrome pre-installed, it does not work for them.
@1parkplace Sorry to hear that your users are facing this issue. The Mapbox examples pages working indicates that this is not an issue with their GPU or with Chrome. Without a further reproducible case, it is not possible for us to diagnose this issue.
Could you provide a minimal reproducible case using a site like jsbin or jsfiddle? Alternatively, you can contact support.
Thank you!
We ended up fixing the problem, one of our developers enabled the flag failIfMajorPerformanceCaveat. We turned that off and it started working for our affected users. Should consider a change to make a failure induced by that throw an appropriate error message in the console.
I was able to fix this by restarting Chrome.
Most helpful comment
is there any way we can detect this or handle this gracefully? so the user doesn't see a blank screen?