Wow! Detailed graphics info.
Chris Katko

Want to know some details about your graphics card? Like workarounds, or bugs, commonly seen by a proper vendor?

Ask chrome.

chrome://gpu/

It'll output a nice, table, color coded listing of memory/etc but also detected driver/hardware bugs and all of the WORKAROUNDS that Chrome is currently using.

This output may not be pretty on A.CC but here's the data for a Haswell-ULT Intel Graphics built into my Celeron 2955U in my Acer Chromebook (11?):

Formatted interesting snippet:

#SelectExpand
1Driver Bug Workarounds 2adjust_src_dst_region_for_blitframebuffer 3clear_uniforms_before_first_program_use 4count_all_in_varyings_packing 5decode_encode_srgb_for_generatemipmap 6disable_framebuffer_cmaa 7disable_post_sub_buffers_for_onscreen_surfaces 8msaa_is_slow 9scalarize_vec_and_mat_constructor_args 10Problems Detected 11Clear uniforms before first program use on all platforms: 124764, 349137 12Applied Workarounds: clear_uniforms_before_first_program_use 13Mesa drivers in Linux handle varyings without static use incorrectly: 333885 14Applied Workarounds: count_all_in_varyings_packing 15Disable partial swaps on Mesa drivers (detected with GL_RENDERER): 339493 16Applied Workarounds: disable_post_sub_buffers_for_onscreen_surfaces 17Always rewrite vec/mat constructors to be consistent: 398694 18Applied Workarounds: scalarize_vec_and_mat_constructor_args 19On Intel GPUs MSAA performance is not acceptable for GPU rasterization: 527565 20Applied Workarounds: msaa_is_slow 21Timer queries crash on Intel GPUs on Linux: 540543, 576991 22Applied Workarounds: disable(GL_ARB_timer_query), disable(GL_EXT_timer_query) 23Use GL_INTEL_framebuffer_CMAA on ChromeOS: 535198 24Applied Workarounds: disable_framebuffer_cmaa 25Disable partial swaps on Mesa drivers (detected with GL_VERSION): 339493 26Applied Workarounds: disable_post_sub_buffers_for_onscreen_surfaces 27Decode and encode before generateMipmap for srgb format textures on os except macosx: 634519 28Applied Workarounds: decode_encode_srgb_for_generatemipmap 29adjust src/dst region if blitting pixels outside read framebuffer on Linux Intel: 664740 30Applied Workarounds: adjust_src_dst_region_for_blitframebuffer 31Disable KHR_blend_equation_advanced until cc shaders are updated: 661715 32Applied Workarounds: disable(GL_KHR_blend_equation_advanced), disable(GL_KHR_blend_equation_advanced_coherent) 33Accelerated rasterization has been disabled, either via blacklist, about:flags or the command line. 34Disabled Features: rasterization 35Raster is using a single thread. 36Disabled Features: multiple_raster_threads 37Native GpuMemoryBuffers have been disabled, either via about:flags or command line. 38Disabled Features: native_gpu_memory_buffers 39Checker-imaging has been disabled via finch trial or the command line. 40Disabled Features: checker_imaging

Chrome detects that my card either has problems with, or simply doesn't support, MSAA, so it applies a work around. This kind of stuff may be helpful to have in Allegro 5 in the way we have data for joysticks. We might even be able to read the SOURCE CODE for those specific workarounds (I think each has an ID number).

If useful, I could write a simpler parser script in Python or whatever that takes a Chrome output, and dumps it to a easier-to-parse ini file. Don't know if that'll be useful at the moment. But we could start building a database of device capabilities, as well as known workarounds Chrome uses. We don't have to use that information but it could be useful to know a large listing of "these videocards support this OpenGL version", etc. (Though I "think" there's a page out there with info like that...)

Full dump:

#SelectExpand
1Note: To properly save this page, select the "Webpage, Complete" option in the Save File dialog. 2Graphics Feature Status 3Canvas: Hardware accelerated 4CheckerImaging: Disabled 5Flash: Hardware accelerated 6Flash Stage3D: Hardware accelerated 7Flash Stage3D Baseline profile: Hardware accelerated 8Compositing: Hardware accelerated 9Multiple Raster Threads: Disabled 10Native GpuMemoryBuffers: Software only. Hardware acceleration disabled 11Rasterization: Software only. Hardware acceleration disabled 12Video Decode: Hardware accelerated 13Video Encode: Hardware accelerated 14WebGL: Hardware accelerated 15WebGL2: Hardware accelerated 16Driver Bug Workarounds 17adjust_src_dst_region_for_blitframebuffer 18clear_uniforms_before_first_program_use 19count_all_in_varyings_packing 20decode_encode_srgb_for_generatemipmap 21disable_framebuffer_cmaa 22disable_post_sub_buffers_for_onscreen_surfaces 23msaa_is_slow 24scalarize_vec_and_mat_constructor_args 25Problems Detected 26Clear uniforms before first program use on all platforms: 124764, 349137 27Applied Workarounds: clear_uniforms_before_first_program_use 28Mesa drivers in Linux handle varyings without static use incorrectly: 333885 29Applied Workarounds: count_all_in_varyings_packing 30Disable partial swaps on Mesa drivers (detected with GL_RENDERER): 339493 31Applied Workarounds: disable_post_sub_buffers_for_onscreen_surfaces 32Always rewrite vec/mat constructors to be consistent: 398694 33Applied Workarounds: scalarize_vec_and_mat_constructor_args 34On Intel GPUs MSAA performance is not acceptable for GPU rasterization: 527565 35Applied Workarounds: msaa_is_slow 36Timer queries crash on Intel GPUs on Linux: 540543, 576991 37Applied Workarounds: disable(GL_ARB_timer_query), disable(GL_EXT_timer_query) 38Use GL_INTEL_framebuffer_CMAA on ChromeOS: 535198 39Applied Workarounds: disable_framebuffer_cmaa 40Disable partial swaps on Mesa drivers (detected with GL_VERSION): 339493 41Applied Workarounds: disable_post_sub_buffers_for_onscreen_surfaces 42Decode and encode before generateMipmap for srgb format textures on os except macosx: 634519 43Applied Workarounds: decode_encode_srgb_for_generatemipmap 44adjust src/dst region if blitting pixels outside read framebuffer on Linux Intel: 664740 45Applied Workarounds: adjust_src_dst_region_for_blitframebuffer 46Disable KHR_blend_equation_advanced until cc shaders are updated: 661715 47Applied Workarounds: disable(GL_KHR_blend_equation_advanced), disable(GL_KHR_blend_equation_advanced_coherent) 48Accelerated rasterization has been disabled, either via blacklist, about:flags or the command line. 49Disabled Features: rasterization 50Raster is using a single thread. 51Disabled Features: multiple_raster_threads 52Native GpuMemoryBuffers have been disabled, either via about:flags or command line. 53Disabled Features: native_gpu_memory_buffers 54Checker-imaging has been disabled via finch trial or the command line. 55Disabled Features: checker_imaging 56Version Information 57Data exported 12/21/2017, 5:49:43 AM 58Chrome version Chrome/63.0.3239.108 59Operating system Linux 4.10.0-041000-generic 60Software rendering list version 0 61Driver bug list version 10.34 62ANGLE commit id 2ff870db3a3b 632D graphics backend Skia/63 dbae7001c9805fb0a4b18fd0cbc889941cb39db4- 64Command Line /usr/bin/google-chrome-stable --flag-switches-begin --enable-experimental-canvas-features --enable-tab-audio-muting --ignore-gpu-blacklist --save-page-as-mhtml --flag-switches-end 65Driver Information 66Initialization time 127 67In-process GPU false 68Passthrough Command Decoder false 69Supports overlays false 70Sandboxed true 71GPU0 VENDOR = 0x8086, DEVICE= 0x0a06 72Optimus false 73Optimus false 74AMD switchable false 75Driver vendor Mesa 76Driver version 17.2.4 77Driver date 78Pixel shader version 1.30 79Vertex shader version 1.30 80Max. MSAA samples 8 81Machine model name 82Machine model version 83GL_VENDOR Intel Open Source Technology Center 84GL_RENDERER Mesa DRI Intel(R) Haswell Mobile 85GL_VERSION 3.0 Mesa 17.2.4 86GL_EXTENSIONS GL_3DFX_texture_compression_FXT1 GL_AMD_conservative_depth GL_AMD_draw_buffers_blend GL_AMD_seamless_cubemap_per_texture GL_AMD_shader_trinary_minmax GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_APPLE_object_purgeable GL_APPLE_packed_pixels GL_ARB_ES2_compatibility GL_ARB_ES3_compatibility GL_ARB_arrays_of_arrays GL_ARB_blend_func_extended GL_ARB_buffer_storage GL_ARB_clear_buffer_object GL_ARB_clear_texture GL_ARB_clip_control GL_ARB_color_buffer_float GL_ARB_compressed_texture_pixel_storage GL_ARB_compute_shader GL_ARB_conditional_render_inverted GL_ARB_conservative_depth GL_ARB_copy_buffer GL_ARB_copy_image GL_ARB_cull_distance GL_ARB_debug_output GL_ARB_depth_buffer_float GL_ARB_depth_clamp GL_ARB_depth_texture GL_ARB_derivative_control GL_ARB_draw_buffers GL_ARB_draw_buffers_blend GL_ARB_draw_elements_base_vertex GL_ARB_draw_instanced GL_ARB_explicit_attrib_location GL_ARB_explicit_uniform_location GL_ARB_fragment_coord_conventions GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_framebuffer_no_attachments GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_get_program_binary GL_ARB_get_texture_sub_image GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_internalformat_query2 GL_ARB_invalidate_subdata GL_ARB_map_buffer_alignment GL_ARB_map_buffer_range GL_ARB_multi_bind GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_occlusion_query2 GL_ARB_pipeline_statistics_query GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_program_interface_query GL_ARB_provoking_vertex GL_ARB_query_buffer_object GL_ARB_robust_buffer_access_behavior GL_ARB_robustness GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_seamless_cubemap_per_texture GL_ARB_separate_shader_objects GL_ARB_shader_atomic_counter_ops GL_ARB_shader_atomic_counters GL_ARB_shader_bit_encoding GL_ARB_shader_clock GL_ARB_shader_draw_parameters GL_ARB_shader_group_vote GL_ARB_shader_image_load_store GL_ARB_shader_image_size GL_ARB_shader_objects GL_ARB_shader_precision GL_ARB_shader_storage_buffer_object GL_ARB_shader_texture_image_samples GL_ARB_shader_texture_lod GL_ARB_shading_language_100 GL_ARB_shading_language_420pack GL_ARB_shading_language_packing GL_ARB_shadow GL_ARB_stencil_texturing GL_ARB_sync GL_ARB_texture_barrier GL_ARB_texture_border_clamp GL_ARB_texture_compression GL_ARB_texture_compression_bptc GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map GL_ARB_texture_cube_map_array GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_float GL_ARB_texture_gather GL_ARB_texture_mirror_clamp_to_edge GL_ARB_texture_mirrored_repeat GL_ARB_texture_multisample GL_ARB_texture_non_power_of_two GL_ARB_texture_query_levels GL_ARB_texture_query_lod GL_ARB_texture_rectangle GL_ARB_texture_rg GL_ARB_texture_rgb10_a2ui GL_ARB_texture_stencil8 GL_ARB_texture_storage GL_ARB_texture_storage_multisample GL_ARB_texture_swizzle GL_ARB_texture_view GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_transform_feedback_instanced GL_ARB_transform_feedback_overflow_query GL_ARB_transpose_matrix GL_ARB_uniform_buffer_object GL_ARB_vertex_array_bgra GL_ARB_vertex_array_object GL_ARB_vertex_attrib_binding GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_vertex_type_10f_11f_11f_rev GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_window_pos GL_ATI_blend_equation_separate GL_ATI_draw_buffers GL_ATI_separate_stencil GL_ATI_texture_env_combine3 GL_ATI_texture_float GL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color GL_EXT_blend_equation_separate GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_compiled_vertex_array GL_EXT_copy_texture GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_framebuffer_object GL_EXT_framebuffer_sRGB GL_EXT_gpu_program_parameters GL_EXT_multi_draw_arrays GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_packed_pixels GL_EXT_pixel_buffer_object GL_EXT_point_parameters GL_EXT_polygon_offset GL_EXT_polygon_offset_clamp GL_EXT_provoking_vertex GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_specular_color GL_EXT_shader_integer_mix GL_EXT_shader_samples_identical GL_EXT_shadow_funcs GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_subtexture GL_EXT_texture GL_EXT_texture3D GL_EXT_texture_array GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc GL_EXT_texture_cube_map GL_EXT_texture_edge_clamp GL_EXT_texture_env_add GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_EXT_texture_filter_anisotropic GL_EXT_texture_integer GL_EXT_texture_lod_bias GL_EXT_texture_object GL_EXT_texture_rectangle GL_EXT_texture_sRGB GL_EXT_texture_sRGB_decode GL_EXT_texture_shared_exponent GL_EXT_texture_snorm GL_EXT_texture_swizzle GL_EXT_timer_query GL_EXT_transform_feedback GL_EXT_vertex_array GL_EXT_vertex_array_bgra GL_IBM_multimode_draw_arrays GL_IBM_rasterpos_clip GL_IBM_texture_mirrored_repeat GL_INGR_blend_func_separate GL_INTEL_performance_query GL_KHR_blend_equation_advanced GL_KHR_context_flush_control GL_KHR_debug GL_KHR_no_error GL_KHR_robust_buffer_access_behavior GL_KHR_robustness GL_MESA_pack_invert GL_MESA_shader_integer_functions GL_MESA_texture_signed_rgba GL_MESA_window_pos GL_NV_blend_square GL_NV_conditional_render GL_NV_depth_clamp GL_NV_light_max_exponent GL_NV_packed_depth_stencil GL_NV_primitive_restart GL_NV_texgen_reflection GL_NV_texture_barrier GL_NV_texture_env_combine4 GL_NV_texture_rectangle GL_OES_EGL_image GL_OES_read_format GL_S3_s3tc GL_SGIS_generate_mipmap GL_SGIS_texture_border_clamp GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod GL_SUN_multi_draw_arrays 87Disabled Extensions GL_ARB_timer_query GL_EXT_timer_query GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent 88Window system binding vendor SGI 89Window system binding version 1.4 90Window system binding extensions GLX_ARB_create_context GLX_ARB_create_context_profile GLX_ARB_create_context_robustness GLX_ARB_fbconfig_float GLX_ARB_framebuffer_sRGB GLX_ARB_multisample GLX_EXT_create_context_es_profile GLX_EXT_create_context_es2_profile GLX_EXT_fbconfig_packed_float GLX_EXT_framebuffer_sRGB GLX_EXT_import_context GLX_EXT_texture_from_pixmap GLX_EXT_visual_info GLX_EXT_visual_rating GLX_MESA_copy_sub_buffer GLX_OML_swap_method GLX_SGI_swap_control GLX_SGIS_multisample GLX_SGIX_fbconfig GLX_SGIX_pbuffer GLX_SGIX_visual_select_group GLX_INTEL_swap_event 91Window manager Compiz 92XDG_CURRENT_DESKTOP Unity 93GDMSESSION ubuntu 94Compositing manager Yes 95Direct rendering Yes 96Reset notification strategy 0x8261 97GPU process crash count 0 98System visual ID 32 99RGBA visual ID 108 100Compositor Information 101Tile Update Mode One-copy 102Partial Raster Enabled 103GpuMemoryBuffers Status 104ATC Software only 105ATCIA Software only 106DXT1 Software only 107DXT5 Software only 108ETC1 Software only 109R_8 Software only 110R_16 Software only 111RG_88 Software only 112BGR_565 Software only 113RGBA_4444 Software only 114RGBX_8888 Software only 115RGBA_8888 Software only 116BGRX_8888 Software only 117BGRA_8888 Software only 118RGBA_F16 Software only 119YVU_420 Software only 120YUV_420_BIPLANAR Software only 121UYVY_422 Software only 122Display(s) Information 123Info Display[3850489720471552] bounds=0,0 1366x768, workarea=0,21 1366x747, scale=1, external 124Color space information {primaries:[[0.4478,0.3358,0.1806,],[0.2569,0.5638,0.1793,],[0.0549,0.0730,0.6971,],], transfer:0.0000*x + 0.0000 if x < 0.0000 else (1.0000*x + 0.0000)**2.2000 + 0.0000, matrix:RGB, range:FULL, icc_profile_id:10} 125Bits per color component 8 126Bits per pixel 24 127Log Messages 128[14260:14260:1221/054042.444562:WARNING:x11_util.cc(1349)] : X error received: serial 111737, error_code 9 (BadDrawable), request_code 153, minor_code 4 (Unknown) 129[14260:14260:1221/054042.445365:WARNING:x11_util.cc(1349)] : X error received: serial 111738, error_code 3 (BadWindow), request_code 4, minor_code 0 (Unknown) 130[14260:14260:1221/054220.735463:ERROR:gles2_cmd_decoder.cc(17977)] : [.DisplayCompositor-0xaa6e6e01600]GL ERROR :GL_INVALID_OPERATION : glCreateAndConsumeTextureCHROMIUM: invalid mailbox name 131[14260:14260:1221/054220.735821:ERROR:gles2_cmd_decoder.cc(9881)] : [.DisplayCompositor-0xaa6e6e01600]RENDER WARNING: texture bound to texture unit 0 is not renderable. It maybe non-power-of-2 and have incompatible texture filtering. 132[14260:14260:1221/054220.735974:ERROR:gles2_cmd_decoder.cc(17977)] : [.DisplayCompositor-0xaa6e6e01600]GL ERROR :GL_INVALID_OPERATION : glCreateAndConsumeTextureCHROMIUM: invalid mailbox name 133[14260:14260:1221/054220.736061:ERROR:gles2_cmd_decoder.cc(9881)] : [.DisplayCompositor-0xaa6e6e01600]RENDER WARNING: texture bound to texture unit 0 is not renderable. It maybe non-power-of-2 and have incompatible texture filtering. 134[14260:14260:1221/054220.736151:ERROR:gles2_cmd_decoder.cc(17977)] : [.DisplayCompositor-0xaa6e6e01600]GL ERROR :GL_INVALID_OPERATION : glCreateAndConsumeTextureCHROMIUM: invalid mailbox name 135[14260:14260:1221/054220.736219:ERROR:gles2_cmd_decoder.cc(9881)] : [.DisplayCompositor-0xaa6e6e01600]RENDER WARNING: texture bound to texture unit 0 is not renderable. It maybe non-power-of-2 and have incompatible texture filtering. 136[14260:14260:1221/054220.736293:ERROR:gles2_cmd_decoder.cc(17977)] : [.DisplayCompositor-0xaa6e6e01600]GL ERROR :GL_INVALID_OPERATION : glCreateAndConsumeTextureCHROMIUM: invalid mailbox name 137[14260:14260:1221/054220.736358:ERROR:gles2_cmd_decoder.cc(9881)] : [.DisplayCompositor-0xaa6e6e01600]RENDER WARNING: texture bound to texture unit 0 is not renderable. It maybe non-power-of-2 and have incompatible texture filtering. 138[14260:14260:1221/054220.736426:ERROR:gles2_cmd_decoder.cc(17977)] : [.DisplayCompositor-0xaa6e6e01600]GL ERROR :GL_INVALID_OPERATION : glCreateAndConsumeTextureCHROMIUM: invalid mailbox name 139[14260:14260:1221/054220.736487:ERROR:gles2_cmd_decoder.cc(9881)] : [.DisplayCompositor-0xaa6e6e01600]RENDER WARNING: texture bound to texture unit 0 is not renderable. It maybe non-power-of-2 and have incompatible texture filtering.

Thread #617183. Printed from Allegro.cc