MicrosoftEdge / WebView2Feedback

Feedback and discussions about Microsoft Edge WebView2
https://aka.ms/webview2
425 stars 51 forks source link

Your browser does not support any of the required graphics API for this content. #1864

Open delemojo opened 2 years ago

delemojo commented 2 years ago

I am trying to load WebGL content but on some devices, I receive this error: 'Your browser does not support any of the required graphics API for this content. Edge Canary'.

The weird part is, if I try to load the WebGL content in any none-embedded browser, default Windows Edge, Chrome, Firefox, etc. it works. Only the embedded version gives me troubles on some devices.

Hardware-Acceleration is enabled on all devices. (edge://settings/system) "edge://gpu/" shows WebGL as Hardware Accelerated

SDK: 1.0.992.28 Runtime: Latest Canary Framework: 1.0.992.28 OS: Win10

AB#37330499

champnic commented 2 years ago

Hey @delemojo - thanks for the bug report! Does the content on the WebGL matter, or does even the simplest example give this error? Can you tell if there's anything in particular about the machines that don't work vs. the ones that do?

On the machine that doesn't work (and one that does) would you be able to share the entire output of edge://gpu from the embedded WebView2?

delemojo commented 2 years ago

@champnic sorry for the late response! But here you go:

Graphics Feature Status Canvas: Hardware accelerated Canvas out-of-process rasterization: Disabled Compositing: Hardware accelerated Multiple Raster Threads: Enabled Out-of-process Rasterization: Unavailable OpenGL: Enabled Rasterization: Unavailable Raw Draw: Disabled Skia Renderer: Enabled Video Decode: Hardware accelerated Video Encode: Hardware accelerated Vulkan: Disabled WebGL: Hardware accelerated WebGL2: Unavailable Driver Bug Workarounds clear_uniforms_before_first_program_use decode_encode_srgb_for_generatemipmap disable_accelerated_vp9_decode disable_d3d11 disable_decode_swap_chain disable_direct_composition disable_direct_composition_sw_video_overlays disable_imagebitmap_from_video_using_gpu disable_ms_video_processing disable_nv12_dynamic_textures enable_bgra8_overlays_with_yuv_overlay_support enable_webgl_timer_query_extensions exit_on_context_lost max_msaa_sample_count_4 msaa_is_slow disabled_extension_GL_KHR_blend_equation_advanced disabled_extension_GL_KHR_blend_equation_advanced_coherent Problems Detected GPU rasterization should only be enabled on NVIDIA and Intel and AMD RX-R2 GPUs with DX11+ or any GPU using ANGLE's GL backend.: 1047002 Disabled Features: gpu_rasterization Some drivers are unable to reset the D3D device in the GPU process sandbox Applied Workarounds: exit_on_context_lost Clear uniforms before first program use on all platforms: 124764, 349137 Applied Workarounds: clear_uniforms_before_first_program_use Old Intel drivers cannot reliably support D3D11: 363721 Applied Workarounds: disable_d3d11 On Intel GPUs MSAA performance is not acceptable for GPU rasterization: 527565 Applied Workarounds: msaa_is_slow Disable 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) Decode and Encode before generateMipmap for srgb format textures on Windows: 634519 Applied Workarounds: decode_encode_srgb_for_generatemipmap Accelerated VP9 decoding is hanging on some videos.: 654111 Applied Workarounds: disable_accelerated_vp9_decode Expose WebGL's disjoint_timer_query extensions on platforms with site isolation: 808744, 870491 Applied Workarounds: enable_webgl_timer_query_extensions Direct composition causes rendering issues on Intel SandyBridge and IvyBridge GPUs: 775898, 785648, 9245627 Applied Workarounds: disable_direct_composition Dynamic texture map crashes on Intel drivers less than version 24: 890227 Applied Workarounds: disable_nv12_dynamic_textures Disable using GPU backed resource for imageBitmap from video on d3d9: 1098445, 1105923 Applied Workarounds: disable_imagebitmap_from_video_using_gpu Disable DecodeSwapChain for Intel Gen9 and older devices: 1107403 Applied Workarounds: disable_decode_swap_chain Intel GPUs fail to report BGRA8 overlay support: 1119491 Applied Workarounds: enable_bgra8_overlays_with_yuv_overlay_support 8x MSAA for WebGL contexts is slow on Win Intel: 1145793 Applied Workarounds: max_msaa_sample_count_4 Disable software overlays for Intel GPUs. All Skylake+ devices support hw overlays, older devices peform poorly.: 1192748 Applied Workarounds: disable_direct_composition_sw_video_overlays Disable ms video processing capabilities for these Intel GPUs because the xCloud Shield lab reported poor performance on them. Applied Workarounds: disable_ms_video_processing ANGLE Features allow_compressed_formats (Frontend workarounds): Enabled: true Allow compressed formats disable_anisotropic_filtering (Frontend workarounds): Disabled Disable support for anisotropic filtering disable_program_binary (Frontend features) anglebug:5007: Disabled Disable support for GL_OES_get_program_binary disable_program_caching_for_transform_feedback (Frontend workarounds): Disabled On some GPUs, program binaries don't contain transform feedback varyings enableCompressingPipelineCacheInThreadPool (Frontend workarounds) anglebug:4722: Disabled: false Enable compressing pipeline cache in thread pool. enableProgramBinaryForCapture (Frontend features) anglebug:5658: Disabled Even if FrameCapture is enabled, enable GL_OES_get_program_binary enable_capture_limits (Frontend features) anglebug:5750: Disabled Set the context limits like frame capturing was enabled forceInitShaderVariables (Frontend features): Disabled Force-enable shader variable initialization forceRobustResourceInit (Frontend features) anglebug:6041: Disabled Force-enable robust resource init lose_context_on_out_of_memory (Frontend workarounds): Enabled: true Some users rely on a lost context notification if a GL_OUT_OF_MEMORY error occurs scalarize_vec_and_mat_constructor_args (Frontend workarounds) 1165751: Disabled: false Always rewrite vec/mat constructors to be consistent add_mock_texture_no_render_target (D3D workarounds) anglebug:2152: Disabled On some drivers when rendering with no render target, two bugs lead to incorrect behavior allowES3OnFL10_0 (D3D workarounds): Disabled Allow ES3 on 10.0 devices allow_clear_for_robust_resource_init (D3D workarounds) 941620: Enabled: true Some drivers corrupt texture data when clearing for robust resource initialization. allow_translate_uniform_block_to_structured_buffer (D3D workarounds) anglebug:3682: Disabled There is a slow fxc compile performance issue with dynamic uniform indexing if translating a uniform block with a large array member to cbuffer. call_clear_twice (D3D workarounds) 655534: Disabled Using clear() may not take effect depth_stencil_blit_extra_copy (D3D workarounds) anglebug:1452: Disabled Bug in some drivers triggers a TDR when using CopySubresourceRegion from a staging texture to a depth/stencil disable_b5g6r5_support (D3D workarounds): Disabled Textures with the format DXGI_FORMAT_B5G6R5_UNORM have incorrect data emulate_isnan_float (D3D workarounds) 650547: Disabled Using isnan() on highp float will get wrong answer emulate_tiny_stencil_textures (D3D workarounds): Disabled 1x1 and 2x2 mips of depth/stencil textures aren't sampled correctly expand_integer_pow_expressions (D3D workarounds): Enabled: true The HLSL optimizer has a bug with optimizing 'pow' in certain integer-valued expressions flush_after_ending_transform_feedback (D3D workarounds): Disabled Some drivers sometimes write out-of-order results to StreamOut buffers when transform feedback is used to repeatedly write to the same buffer positions force_atomic_value_resolution (D3D workarounds) anglebug:3246: Disabled On some drivers the return value from RWByteAddressBuffer.InterlockedAdd does not resolve when used in the .yzw components of a RWByteAddressBuffer.Store operation get_dimensions_ignores_base_level (D3D workarounds): Disabled Some drivers do not take into account the base level of the texture in the results of the HLSL GetDimensions builtin mrt_perf_workaround (D3D workarounds): Enabled: true Some drivers have a bug where they ignore null render targets pre_add_texel_fetch_offsets (D3D workarounds): Disabled HLSL's function texture.Load returns 0 when the parameter Location is negative, even if the sum of Offset and Location is in range rewrite_unary_minus_operator (D3D workarounds): Disabled Evaluating unary minus operator on integer may get wrong answer in vertex shaders select_view_in_geometry_shader (D3D workarounds): Disabled The viewport or render target slice will be selected in the geometry shader stage for the ANGLE_multiview extension set_data_faster_than_image_upload (D3D workarounds): Disabled: false Set data faster than image upload skip_vs_constant_register_zero (D3D workarounds): Disabled In specific cases the driver doesn't handle constant register zero correctly use_instanced_point_sprite_emulation (D3D workarounds): Disabled: false Some D3D11 renderers do not support geometry shaders for pointsprite emulation use_system_memory_for_constant_buffers (D3D workarounds) 593024: Disabled Copying from staging storage to constant buffer storage does not work zero_max_lod (D3D workarounds): Disabled Missing an option to disable mipmaps on a mipmapped texture DAWN Info

D3D12 backend - Microsoft Basic Render Driver [Default Toggle Names] lazy_clear_resource_on_first_use: https://crbug.com/dawn/145: Clears resource to zero on first usage. This initializes the resource so that no dirty bits from recycled memory is present in the new resource. use_d3d12_resource_heap_tier2: https://crbug.com/dawn/27: Enable support for resource heap tier 2. Resource heap tier 2 allows mixing of texture and buffers in the same heap. This allows better heap re-use and reduces fragmentation. use_d3d12_render_pass: https://crbug.com/dawn/36: Use the D3D12 render pass API introduced in Windows build 1809 by default. On versions of Windows prior to build 1809, or when this toggle is turned off, Dawn will emulate a render pass. use_d3d12_residency_management: https://crbug.com/dawn/193: Enable residency management. This allows page-in and page-out of resource heaps in GPU memory. This component improves overcommitted performance by keeping the most recently used resources local to the GPU. Turning this component off can cause allocation failures when application memory exceeds physical device memory. disallow_unsafe_apis: http://crbug.com/1138528: Produces validation errors on API entry points or parameter combinations that aren't considered secure yet. [WebGPU Forced Toggles - enabled] disallow_spirv: https://crbug.com/1214923: Disallow usage of SPIR-V completely so that only WGSL is used for shader modules.This is useful to prevent a Chromium renderer process from successfully sendingSPIR-V code to be compiled in the GPU process. [Supported Features] texture-compression-bc pipeline-statistics-query timestamp-query dawn-internal-usages multiplanar-formats Version Information Data exported 2021-12-08T13:04:26.627Z Edge version Edg/98.0.1097.0 Operating system Windows NT 10.0.19042 Software rendering list URL https://chromium.googlesource.com/chromium/src/+/7dd7f50bb9733218797d4113644f65bce7fafba5/gpu/config/software_rendering_list.json Driver bug list URL https://chromium.googlesource.com/chromium/src/+/7dd7f50bb9733218797d4113644f65bce7fafba5/gpu/config/gpu_driver_bug_list.json ANGLE commit id 585ccdf070db 2D graphics backend Skia/98 db3c48b16b2d24a0aff507bc27d7c8d851c94b4d Command Line "C:\Users\Iza\AppData\Local\Microsoft\Edge SxS\Application\msedge.exe" --flag-switches-begin --flag-switches-end Driver Information Initialization time 5201 In-process GPU false Passthrough Command Decoder true Sandboxed true GPU0 VENDOR= 0x8086, DEVICE=0x0102, SUBSYS=0x2ae2103c, REV=9, LUID={0,32717} *ACTIVE* GPU1 VENDOR= 0x1414, DEVICE=0x008c, LUID={0,33189} Optimus false AMD switchable false Desktop compositing Aero Glass Direct composition false Supports overlays false YUY2 overlay support NONE NV12 overlay support NONE BGRA8 overlay support NONE RGB10A2 overlay support NONE Diagonal Monitor Size of \\.\DISPLAY1 7.2" Driver D3D12 feature level Not supported Driver Vulkan API version Not supported Driver vendor Intel Driver version 9.17.10.4459 GPU CUDA compute capability major version 0 Pixel shader version 3.0 Vertex shader version 3.0 Max. MSAA samples 4 Machine model name Machine model version GL_VENDOR Google Inc. (Intel) GL_RENDERER ANGLE (Intel, Intel(R) HD Graphics Direct3D9Ex vs_3_0 ps_3_0, igdumd64.dll-9.17.10.4459) GL_VERSION OpenGL ES 2.0.0 (ANGLE 2.1.25284 git hash: 585ccdf070db) GL_EXTENSIONS GL_ANGLE_client_arrays GL_ANGLE_depth_texture GL_ANGLE_framebuffer_blit GL_ANGLE_framebuffer_multisample GL_ANGLE_get_serialized_context_string GL_ANGLE_get_tex_level_parameter GL_ANGLE_instanced_arrays GL_ANGLE_memory_size GL_ANGLE_multi_draw GL_ANGLE_pack_reverse_row_order GL_ANGLE_program_cache_control 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_color_buffer_float_rgb GL_CHROMIUM_color_buffer_float_rgba GL_CHROMIUM_copy_texture GL_CHROMIUM_lose_context GL_CHROMIUM_sync_query GL_EXT_blend_minmax GL_EXT_color_buffer_half_float GL_EXT_debug_label GL_EXT_debug_marker GL_EXT_float_blend GL_EXT_frag_depth GL_EXT_occlusion_query_boolean GL_EXT_read_format_bgra GL_EXT_robustness GL_EXT_sRGB GL_EXT_shader_texture_lod GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_s3tc_srgb GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_EXT_texture_storage GL_EXT_unpack_subimage GL_KHR_debug GL_KHR_parallel_shader_compile GL_NV_fence GL_NV_pack_subimage GL_NV_read_depth GL_NV_read_stencil 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_surfaceless_context GL_OES_texture_border_clamp 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_stencil8 GL_OES_vertex_array_object GL_WEBGL_video_texture Disabled Extensions GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent Disabled WebGL Extensions Window system binding vendor Google Inc. (Intel) Window system binding version 1.5 (ANGLE 2.1.25284 git hash: 585ccdf070db) 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_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_create_context_webgl_compatibility EGL_CHROMIUM_create_context_bind_generates_resource EGL_EXT_pixel_format_float EGL_KHR_surfaceless_context EGL_ANGLE_display_texture_share_group EGL_ANGLE_display_semaphore_share_group EGL_ANGLE_create_context_client_arrays EGL_ANGLE_program_cache_control EGL_ANGLE_robust_resource_initialization EGL_ANGLE_create_context_extensions_enabled EGL_ANDROID_blob_cache EGL_ANDROID_recordable EGL_ANGLE_create_context_backwards_compatible EGL_KHR_no_config_context EGL_KHR_create_context_no_error EGL_KHR_reusable_sync EGL_KHR_mutable_render_buffer Direct rendering version unknown Reset notification strategy 0x8252 GPU process crash count 0 gfx::BufferFormats supported for allocation and texturing R_8: not supported, R_16: not supported, RG_88: not supported, RG_1616: not supported, BGR_565: not supported, RGBA_4444: not supported, RGBX_8888: not supported, RGBA_8888: not supported, BGRX_8888: not supported, BGRA_1010102: not supported, RGBA_1010102: not supported, BGRA_8888: not supported, RGBA_F16: not supported, YVU_420: not supported, YUV_420_BIPLANAR: not supported, P010: not supported Compositor Information Tile Update Mode One-copy Partial Raster Enabled GpuMemoryBuffers Status R_8 Software only R_16 Software only RG_88 Software only RG_1616 Software only BGR_565 Software only RGBA_4444 Software only RGBX_8888 GPU_READ, SCANOUT RGBA_8888 GPU_READ, SCANOUT BGRX_8888 Software only BGRA_1010102 Software only RGBA_1010102 Software only BGRA_8888 Software only RGBA_F16 Software only YVU_420 Software only YUV_420_BIPLANAR GPU_READ, SCANOUT P010 Software only Media Foundation Rendering Capabilities PlayReady Hardware DRM disabled false Direct Composition false Dolby Atmos support false AV1 installed false AV1 activable false AV1 version Not Installed HEVC installed false HEVC activable false Display: Scaled: [0,0 1920x1080] Scale: 1.00 Actual: [0,0 1920x1080] GPU Index GPU0 HEVC - Dolby Vision support false HEVC - HDR10 support false HDCP 2.2 support false HEVC - 4K support false Display(s) Information Info Display[2528732444] bounds=[0,0 1920x1080], workarea=[0,0 1920x1040], scale=1, rotation=0, panel_rotation=0 external. Color space (sRGB/no-alpha) {primaries:BT709, transfer:IEC61966_2_1, matrix:RGB, range:FULL} Buffer format (sRGB/no-alpha) BGRX_8888 Color space (sRGB/alpha) {primaries:BT709, transfer:IEC61966_2_1, matrix:RGB, range:FULL} Buffer format (sRGB/alpha) BGRA_8888 Color space (WCG/no-alpha) {primaries:BT709, transfer:IEC61966_2_1, matrix:RGB, range:FULL} Buffer format (WCG/no-alpha) BGRX_8888 Color space (WCG/alpha) {primaries:BT709, transfer:IEC61966_2_1, matrix:RGB, range:FULL} Buffer format (WCG/alpha) BGRA_8888 Color space (HDR/no-alpha) {primaries:BT709, transfer:IEC61966_2_1, matrix:RGB, range:FULL} Buffer format (HDR/no-alpha) BGRX_8888 Color space (HDR/alpha) {primaries:BT709, transfer:IEC61966_2_1, matrix:RGB, range:FULL} Buffer format (HDR/alpha) BGRA_8888 SDR white level in nits 80 Bits per color component 8 Bits per pixel 24 Refresh Rate in Hz 60 Video Acceleration Information Decoding (VideoDecoder) Decode h264 baseline 64x64 to 1920x1088 pixels Decode h264 main 64x64 to 1920x1088 pixels Decode h264 high 64x64 to 1920x1088 pixels Decoding (Legacy VideoDecodeAccelerator) Decode h264 baseline 64x64 to 1920x1088 pixels Decode h264 main 64x64 to 1920x1088 pixels Decode h264 high 64x64 to 1920x1088 pixels Encoding Vulkan Information Device Performance Information Diagnostics Log Messages [8580:8300:1208/130404.864:ERROR:gl_surface_egl.cc(807)] : EGL Driver message (Error) eglCreateContext: Requested GLES version (3.0) is greater than max supported (2, 0). [8580:8300:1208/130404.864:ERROR:gl_context_egl.cc(297)] : eglCreateContext failed with error EGL_BAD_ATTRIBUTE
champnic commented 2 years ago

Thanks for the added info! I've included this in the bug we have on our backlog.

champnic commented 2 years ago

Hey @delemojo - it looks like because of some known bugs with the graphics driver you are using, Direct Composition has been disabled, meaning we need to use software rendering. Using software rendering comes with limitations in WebGL.

If you want to, you can try the following additional browser args: --ignore-gpu-blocklist --disable-gpu-driver-bug-workarounds

We don't recommend this approach for a production app, as it will ignore changes and limitations due to graphics driver bugs and workarounds.

sauravyad500 commented 2 years ago

How can I disable D3d workarounds? Is there some argument for it too?

champnic commented 2 years ago

The browser args I posted above will disable the workarounds. You can set them using the AdditionalBrowserArguments parameter during WebView2 initialization: https://docs.microsoft.com/en-us/dotnet/api/microsoft.web.webview2.core.corewebview2environmentoptions.additionalbrowserarguments?view=webview2-dotnet-1.0.1185.39