canvas.getContext('webgl2') doesn't work with chrome remote desktop |
||
Issue description
How to repro:
1. I ran chrome remote desktop, and connected to my desktop station (Linux).
2. Ran chromium (ToT). Open dev-tool.
3. type these:
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('webgl2');
console.log(ctx);
4. Observe console prints null
Note that changing 'webgl2' to 'webgl' works fine.
I checked chrome://gpu page, and WebGL2 is hardware accelerated.
Is this working as intended?
,
Nov 18 2016
For me, the only OpenGL driver available inside a Chrome remote desktop environment Mesa llvmpipe (software). On Ubuntu 14.04, this provides a desktop OpenGL 2.1 context, which isn't enough to support WebGL 2. But about:gpu tells me WebGL2 is unavailable. Can you provide the complete contents of about:gpu? (copy-paste plain-text is best)
,
Nov 18 2016
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: Software only. Hardware acceleration disabled Rasterization: Software only. Hardware acceleration disabled Video Decode: Hardware accelerated Video Encode: Hardware accelerated VPx Video Decode: Hardware accelerated WebGL: Hardware accelerated WebGL2: Hardware accelerated Driver Bug Workarounds clear_uniforms_before_first_program_use count_all_in_varyings_packing decode_encode_srgb_for_generatemipmap disable_framebuffer_cmaa disable_post_sub_buffers_for_onscreen_surfaces disable_texture_storage scalarize_vec_and_mat_constructor_args Problems Detected Clear uniforms before first program use on all platforms: 124764, 349137 Applied Workarounds: clear_uniforms_before_first_program_use Mesa drivers in Linux handle varyings without static use incorrectly: 333885 Applied Workarounds: count_all_in_varyings_packing Always rewrite vec/mat constructors to be consistent: 398694 Applied Workarounds: scalarize_vec_and_mat_constructor_args NVIDIA drivers before 346 lack features in NV_path_rendering and related extensions to implement driver level path rendering.: 344330 Linux Mesa drivers crash on glTexSubImage2D() to texture storage bound to FBO: 521904 Applied Workarounds: disable_texture_storage Limited enabling of Chromium GL_INTEL_framebuffer_CMAA: 535198 Applied Workarounds: disable_framebuffer_cmaa Disable partial swaps on Mesa drivers (detected with GL_VERSION): 339493 Applied Workarounds: disable_post_sub_buffers_for_onscreen_surfaces Decode and encode before generateMipmap for srgb format textures on os except macosx: 634519 Applied Workarounds: decode_encode_srgb_for_generatemipmap Accelerated rasterization has been disabled, either via blacklist, about:flags or the command line. Disabled Features: rasterization Native GpuMemoryBuffers have been disabled, either via about:flags or command line. Disabled Features: native_gpu_memory_buffers Version Information Data exported 11/18/2016, 1:39:09 PM Chrome version Chrome/56.0.2924.0 Operating system Linux 3.13.0-100-generic Software rendering list version 0 Driver bug list version 9.16 ANGLE commit id af7f301f6ba9 2D graphics backend Skia/55 524f11a50ab05f412c4f87baf7cce5573bd2188c Command Line Args --flag-switches-begin --ignore-gpu-blacklist --flag-switches-end Driver Information Initialization time 56 In-process GPU false Sandboxed false GPU0 VENDOR = 0x10de, DEVICE= 0x13ba Optimus false AMD switchable false Driver vendor Mesa Driver version 10.1.3 Driver date Pixel shader version 1.30 Vertex shader version 1.30 Max. MSAA samples 0 Machine model name Machine model version GL_VENDOR VMware, Inc. GL_RENDERER Gallium 0.4 on llvmpipe (LLVM 3.4, 256 bits) GL_VERSION 2.1 Mesa 10.1.3 GL_EXTENSIONS GL_ARB_multisample GL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_copy_texture GL_EXT_polygon_offset GL_EXT_subtexture GL_EXT_texture_object GL_EXT_vertex_array GL_EXT_compiled_vertex_array GL_EXT_texture GL_EXT_texture3D GL_IBM_rasterpos_clip GL_ARB_point_parameters GL_EXT_draw_range_elements GL_EXT_packed_pixels GL_EXT_point_parameters GL_EXT_rescale_normal GL_EXT_separate_specular_color GL_EXT_texture_edge_clamp GL_SGIS_generate_mipmap GL_SGIS_texture_border_clamp GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod GL_ARB_framebuffer_sRGB GL_ARB_multitexture GL_EXT_framebuffer_sRGB GL_IBM_multimode_draw_arrays GL_IBM_texture_mirrored_repeat GL_ARB_texture_cube_map GL_ARB_texture_env_add GL_ARB_transpose_matrix GL_EXT_blend_func_separate GL_EXT_fog_coord GL_EXT_multi_draw_arrays GL_EXT_secondary_color GL_EXT_texture_env_add GL_EXT_texture_lod_bias GL_INGR_blend_func_separate GL_NV_blend_square GL_NV_light_max_exponent GL_NV_texgen_reflection GL_NV_texture_env_combine4 GL_S3_s3tc GL_SUN_multi_draw_arrays GL_ARB_texture_border_clamp GL_ARB_texture_compression GL_EXT_framebuffer_object GL_EXT_texture_compression_s3tc GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_MESA_window_pos GL_NV_packed_depth_stencil GL_NV_texture_rectangle GL_ARB_depth_texture GL_ARB_occlusion_query GL_ARB_shadow GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_mirrored_repeat GL_ARB_window_pos GL_EXT_stencil_two_side GL_EXT_texture_cube_map GL_NV_depth_clamp GL_NV_fog_distance GL_APPLE_packed_pixels GL_APPLE_vertex_array_object GL_ARB_draw_buffers GL_ARB_fragment_program GL_ARB_fragment_shader GL_ARB_shader_objects GL_ARB_vertex_program GL_ARB_vertex_shader GL_ATI_draw_buffers GL_ATI_texture_env_combine3 GL_ATI_texture_float GL_EXT_shadow_funcs GL_EXT_stencil_wrap GL_MESA_pack_invert GL_MESA_ycbcr_texture GL_NV_primitive_restart GL_ARB_depth_clamp GL_ARB_fragment_program_shadow GL_ARB_half_float_pixel GL_ARB_occlusion_query2 GL_ARB_point_sprite GL_ARB_shading_language_100 GL_ARB_sync GL_ARB_texture_non_power_of_two GL_ARB_vertex_buffer_object GL_ATI_blend_equation_separate GL_EXT_blend_equation_separate GL_OES_read_format GL_ARB_color_buffer_float GL_ARB_pixel_buffer_object GL_ARB_texture_compression_rgtc GL_ARB_texture_float GL_ARB_texture_rectangle GL_ATI_texture_compression_3dc GL_EXT_packed_float GL_EXT_pixel_buffer_object GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_rgtc GL_EXT_texture_mirror_clamp GL_EXT_texture_rectangle GL_EXT_texture_sRGB GL_EXT_texture_shared_exponent GL_ARB_framebuffer_object GL_EXT_framebuffer_blit GL_EXT_packed_depth_stencil GL_ARB_vertex_array_object GL_ATI_separate_stencil GL_ATI_texture_mirror_once GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_gpu_program_parameters GL_EXT_texture_array GL_EXT_texture_compression_latc GL_EXT_texture_integer GL_EXT_texture_sRGB_decode GL_EXT_timer_query GL_OES_EGL_image GL_ARB_copy_buffer GL_ARB_depth_buffer_float GL_ARB_draw_instanced GL_ARB_half_float_vertex GL_ARB_instanced_arrays GL_ARB_map_buffer_range GL_ARB_texture_rg GL_ARB_texture_swizzle GL_ARB_vertex_array_bgra GL_EXT_texture_swizzle GL_EXT_vertex_array_bgra GL_NV_conditional_render GL_AMD_conservative_depth GL_AMD_draw_buffers_blend GL_AMD_seamless_cubemap_per_texture GL_ARB_ES2_compatibility GL_ARB_blend_func_extended GL_ARB_debug_output GL_ARB_draw_buffers_blend GL_ARB_draw_elements_base_vertex GL_ARB_explicit_attrib_location GL_ARB_fragment_coord_conventions GL_ARB_provoking_vertex GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_shader_texture_lod GL_ARB_texture_rgb10_a2ui GL_ARB_uniform_buffer_object GL_ARB_vertex_type_2_10_10_10_rev GL_EXT_provoking_vertex GL_EXT_texture_snorm GL_MESA_texture_signed_rgba GL_ARB_get_program_binary GL_ARB_robustness GL_ARB_shader_bit_encoding GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_NV_vdpau_interop GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_ARB_conservative_depth GL_ARB_internalformat_query GL_ARB_map_buffer_alignment GL_ARB_shading_language_420pack GL_ARB_shading_language_packing GL_ARB_texture_storage GL_ARB_transform_feedback_instanced GL_EXT_transform_feedback GL_AMD_shader_trinary_minmax GL_ARB_clear_buffer_object GL_ARB_invalidate_subdata GL_ARB_vertex_attrib_binding GL_KHR_debug GL_ARB_texture_mirror_clamp_to_edge GL_ARB_vertex_type_10f_11f_11f_rev Disabled Extensions GL_NV_path_rendering Window system binding vendor SGI Window system binding version 1.4 Window system binding extensions GLX_ARB_multisample GLX_EXT_visual_info GLX_EXT_visual_rating GLX_EXT_import_context GLX_EXT_texture_from_pixmap GLX_OML_swap_method GLX_SGI_make_current_read GLX_SGIS_multisample GLX_SGIX_fbconfig GLX_SGIX_pbuffer GLX_MESA_copy_sub_buffer GLX_INTEL_swap_event Window manager Compiz XDG_CURRENT_DESKTOP Unity Compositing manager Yes Direct rendering Yes Reset notification strategy 0x8261 GPU process crash count 0 System visual ID 33 RGBA visual ID 65 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 [87958:87958:1118/133903:ERROR:sandbox_linux.cc(343)] : InitializeSandbox() called with multiple threads in process gpu-process.
,
Nov 18 2016
It is likely working as intended, because I saw this in the above page: GL_VERSION 2.1 Mesa 10.1.3
,
Nov 18 2016
Aha, I think I know what the issue is. You have the --ignore-gpu-blacklist flag enabled, so it's not blacklisting certain features on the Mesa llvmpipe driver as it does by default. I guess the code which displays "WebGL2: hardware accelerated" is missing a bit of logic and is reporting incorrectly in that case.
,
Nov 18 2016
Yeah, it makes sense. Closing this bug now because it is working as expected. |
||
►
Sign in to add a comment |
||
Comment 1 by xidac...@chromium.org
, Nov 18 2016