A user of our software has an old, blacklisted AMD driver (id
144 in software_rendering_list.json) which I
thought would simply cause Chromium to fallback to software rendering for WebGL, but instead causes
Canvas.GetContext('webgl', attributes) to return null, with the attributes object being:
{
"failIfMajorPerformanceCaveat": false,
"preserveDrawingBuffer": false,
"antialias": false,
"alpha": true,
"stencil": true,
"depth": true
}
We have asked the user to update to the latest driver (which, being released after 2010, should not be blacklisted), but in the meantime I was wondering if someone could tell me if my assumption about software rendering fallback is correct, and if it is, what other avenues should I investigate? Even if the driver update fixes his problem, I want to make sure I have an accurate understanding of how Chromium handles blacklisted cards/drivers in case we encounter this in the future.
Now, it is possible that the blacklist issue is a red herring, as the user was not able to see our WebGL map (mapbox) even after disabling the blacklist, and in addition the blacklist specifies WebGL2, whereas mapbox is trying to access WebGL.
Since the user is a customer and not on site, I unfortunately cannot easily get too much information from him, but below is the output of his chrome://gpu. Apologies for the lack of more complete information; even a pointer to some resources/documentation that would help be better understand these types of issues would be greatly appreciated.
Graphics Feature Status
• Canvas: Software only, hardware acceleration unavailable
• 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
• Hardware Protected Video Decode: Disabled
• Rasterization: Software only. Hardware acceleration disabled
• Skia Deferred Display List: Disabled
• Skia Renderer: Disabled
• Surface Synchronization: Enabled
• Video Decode: Software only. Hardware acceleration disabled
• Viz Service Display Compositor: 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
• Viz service display compositor is not enabled by default.
Disabled Features: viz_display_compositor
• Skia renderer is not used by default.
Disabled Features: skia_renderer
• Skia deferred display list is not used by default.
Disabled Features: skia_deferred_display_list
Version Information
Data exported 2018-09-07T13:18:42.977Z
Chrome version Chrome/68.0.3440.106
Operating system Windows NT 6.1.7601 SP1
Software rendering list URL https://chromium.googlesource.com/chromium/src/+/1c32c539ce0065a41cb79da7bfcd2c71af1afe62/gpu/config/software_rendering_list.json
Driver bug list URL https://chromium.googlesource.com/chromium/src/+/1c32c539ce0065a41cb79da7bfcd2c71af1afe62/gpu/config/gpu_driver_bug_list.json
ANGLE commit id ba1627086779
2D graphics backend Skia/68 1e419fead7ff3b5247102b29b982b6472a60cd4d-
Command Line "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --flag-switches-begin --flag-switches-end
Driver Information
Initialization time 610
In-process GPU false
Passthrough Command Decoder false
Direct Composition false
Supports overlays false
Sandboxed true
GPU0 VENDOR = 0x1002, DEVICE= 0x95cd
GPU1 VENDOR = 0x1002, DEVICE= 0x95cd
Optimus false
AMD switchable false
Desktop compositing none
Diagonal Monitor Size of \\.\DISPLAY1
21.9"
Diagonal Monitor Size of \\.\DISPLAY2
21.9"
Diagonal Monitor Size of \\.\DISPLAY4
21.5"
Diagonal Monitor Size of \\.\DISPLAY3
23.0"
Driver D3D12 feature level Not supported
Driver Vulkan API version Not supported
Driver vendor ATI Technologies Inc.
Driver version 8.580.0.0
Driver date 1-15-2009
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.6
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_surfaceless_context 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_array_object 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_compression_dxt1 GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_EXT_texture_rg GL_ARB_texture_rectangle GL_ANGLE_framebuffer_blit GL_ANGLE_framebuffer_multisample GL_ANGLE_instanced_arrays GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_APPLE_texture_format_BGRA8888 GL_CHROMIUM_color_buffer_float_rgba GL_CHROMIUM_texture_filtering_hint GL_NV_fence GL_NV_framebuffer_blit GL_NV_read_depth GL_EXT_color_buffer_float
Disabled Extensions
Disabled WebGL Extensions
Window system binding vendor Google Inc.
Window system binding version 1.4 SwiftShader 4.0.0.6
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_KHR_surfaceless_context EGL_ANGLE_iosurface_client_buffer EGL_ANDROID_framebuffer_target EGL_ANDROID_recordable
Direct rendering Yes
Reset notification strategy 0x0000
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 GPU_READ, SCANOUT
RGBA_8888 GPU_READ, SCANOUT
BGRX_8888 Software only
BGRX_1010102 Software only
RGBX_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[2528732444] bounds=[240,-1050 1680x1050], workarea=[240,-1050 1680x1050], scale=1, external.
Color space information {primaries:BT709, transfer:IEC61966_2_1, matrix:RGB, range:FULL}
Bits per color component 8
Bits per pixel 24
Info Display[2779098405] bounds=[1920,-1050 1680x1050], workarea=[1920,-1050 1680x1050], scale=1, external.
Color space information {primaries:BT709, transfer:IEC61966_2_1, matrix:RGB, range:FULL}
Bits per color component 8
Bits per pixel 24
Info Display[2841568472] bounds=[1920,0 1920x1080], workarea=[1920,0 1920x1080], scale=1, external.
Color space information {primaries:BT709, transfer:IEC61966_2_1, matrix:RGB, range:FULL}
Bits per color component 8
Bits per pixel 24
Info Display[2480450848] bounds=[0,0 1920x1080], workarea=[0,0 1920x1040], scale=1, external.
Color space information {primaries:BT709, transfer:IEC61966_2_1, matrix:RGB, range:FULL}
Bits per color component 8
Bits per pixel 24
Video Acceleration Information
Diagnostics
... loading ...
Driver Information for Hardware GPU
Initialization time 417
In-process GPU false
Passthrough Command Decoder false
Direct Composition false
Supports overlays false
Sandboxed true
GPU0 VENDOR = 0x1002, DEVICE= 0x95cd
GPU1 VENDOR = 0x1002, DEVICE= 0x95cd
Optimus false
AMD switchable false
Desktop compositing none
Diagonal Monitor Size of \\.\DISPLAY1
21.9"
Diagonal Monitor Size of \\.\DISPLAY2
21.9"
Diagonal Monitor Size of \\.\DISPLAY4
21.5"
Diagonal Monitor Size of \\.\DISPLAY3
23.0"
Driver D3D12 feature level Not supported
Driver Vulkan API version Not supported
Driver vendor ATI Technologies Inc.
Driver version 8.580.0.0
Driver date 1-15-2009
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.6
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_surfaceless_context 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_array_object 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_compression_dxt1 GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_EXT_texture_rg GL_ARB_texture_rectangle GL_ANGLE_framebuffer_blit GL_ANGLE_framebuffer_multisample GL_ANGLE_instanced_arrays GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_APPLE_texture_format_BGRA8888 GL_CHROMIUM_color_buffer_float_rgba GL_CHROMIUM_texture_filtering_hint GL_NV_fence GL_NV_framebuffer_blit GL_NV_read_depth GL_EXT_color_buffer_float
Disabled Extensions
Disabled WebGL Extensions
Window system binding vendor Google Inc.
Window system binding version 1.4 SwiftShader 4.0.0.6
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_KHR_surfaceless_context EGL_ANGLE_iosurface_client_buffer EGL_ANDROID_framebuffer_target EGL_ANDROID_recordable
Direct rendering Yes
Reset notification strategy 0x0000
GPU process crash count 0
Graphics Feature Status for Hardware GPU
• Canvas: Software only, hardware acceleration unavailable
• 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
• Hardware Protected Video Decode: Disabled
• Rasterization: Software only. Hardware acceleration disabled
• Skia Deferred Display List: Disabled
• Skia Renderer: Disabled
• Surface Synchronization: Enabled
• Video Decode: Software only. Hardware acceleration disabled
• Viz Service Display Compositor: Disabled
• WebGL: Software only, hardware acceleration unavailable
• WebGL2: Software only, hardware acceleration unavailable
Problems Detected for Hardware GPU
• Native GpuMemoryBuffers have been disabled, either via about:flags or command line.
Disabled Features: native_gpu_memory_buffers
• Viz service display compositor is not enabled by default.
Disabled Features: viz_display_compositor
• Skia renderer is not used by default.
Disabled Features: skia_renderer
• Skia deferred display list is not used by default.
Disabled Features: skia_deferred_display_list
Log Messages
• GpuProcessHostUIShim: The GPU process exited normally. Everything is okay.