WebGL fails to run on Microsoft Hyper-V Video
Reported by
4elentan...@gmail.com,
Sep 8 2017
|
||||||||
Issue description
Chrome Version : 60.0.3112.90
have tested this issue:
IE: verstion(10.0.9200.22228) OK
OS: Windows Server 2012 Standard
Display Adapter: Microsoft Hyper-V Video
What steps will reproduce the problem?
(1) open any html file
(2) open Console
(3)(1) execute in Console this code "document.body.appendChild(canvas = document.createElement('canvas')); canvas.getContext('webgl')"
(3)(2) execute "canvas.getContext('webgl').getError()"
What is the expected result?
(3)(1) no error
(3)(2) 0
What happens instead?
(3)(1)[.Offscreen-For-WebGL-0000006F1C1615E0]GL ERROR :GL_INVALID_OPERATION : glReadPixels
(3)(2) 1282
this happens when I connect to a virtual machine with the above characteristics. In consequence, objects on the canvas change color to green.
,
Sep 8 2017
Clarifying description. Submitter, please describe more clearly your VM configuration. If we can identify it in Chrome we'll blacklist GPU functionality and fall back to SwiftShader.
,
Sep 8 2017
Very unlikely to be a regression, BTW.
,
Sep 15 2017
Reporter@ - Could you please respond to comment #2. Thanks...!!
,
Sep 15 2017
Unfortunately, now there is no way to provide additional information about the virtual machine. I will try to get additional information on September 18, and I'll answer you right away.
,
Sep 15 2017
Thank you for providing more feedback. Adding requester "krajshree@chromium.org" to the cc list and removing "Needs-Feedback" label. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Sep 15 2017
When you get back on the VM, please also provide the contents of about:gpu; plaintext (simply copy/pasting here) is fine. Thanks.
,
Sep 27 2017
this is all the information that we managed to get. If this is not enough, indicate what specific information you need.
,
Sep 27 2017
chrome://gpu Graphics Feature Status Canvas: Software only, hardware acceleration unavailable CheckerImaging: Disabled 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: Enabled 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 WebGL: Hardware accelerated but at reduced performance WebGL2: Unavailable Driver Bug Workarounds clear_uniforms_before_first_program_use decode_encode_srgb_for_generatemipmap disable_accelerated_vpx_decode disable_direct_composition disable_discard_framebuffer disable_dxgi_zero_copy_video disable_framebuffer_cmaa exit_on_context_lost scalarize_vec_and_mat_constructor_args Problems Detected Drivers older than 2009-01 on Windows are possibly unreliable: 72979, 89802, 315205 Disabled Features: flash_stage3d, gpu_compositing, panel_fitting, flash3d, gpu_rasterization, accelerated_2d_canvas, accelerated_video_decode, webgl2, accelerated_webgl, flash_stage3d_baseline, accelerated_video_encode GPU access is blocked if users don't have proper graphics driver installed after Windows installation: 248178 Disabled Features: flash_stage3d, gpu_compositing, panel_fitting, flash3d, gpu_rasterization, accelerated_2d_canvas, accelerated_video_decode, webgl2, accelerated_webgl, flash_stage3d_baseline, accelerated_video_encode GPU rasterization should only be enabled on NVIDIA and Intel DX11+, and AMD RX-R2 GPUs for now.: 643850 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 Always rewrite vec/mat constructors to be consistent: 398694 Applied Workarounds: scalarize_vec_and_mat_constructor_args Framebuffer discarding can hurt performance on non-tilers: 570897 Applied Workarounds: disable_discard_framebuffer Direct composition flashes black initially on Win <10: 588588 Applied Workarounds: disable_direct_composition Zero copy DXGI video hangs on shutdown on Win < 8.1: 621190 Applied Workarounds: disable_dxgi_zero_copy_video 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 VPx decoding isn't supported before Windows 10 anniversary update.: 616318 Applied Workarounds: disable_accelerated_vpx_decode Native GpuMemoryBuffers have been disabled, either via about:flags or command line. Disabled Features: native_gpu_memory_buffers Checker-imaging has been disabled via finch trial or the command line. Disabled Features: checker_imaging Version Information Data exported 27.09.2017, 15:39:04 Chrome version Chrome/60.0.3112.90 Operating system Windows NT 6.2.9200 Software rendering list version 13.8 Driver bug list version 10.93 ANGLE commit id 3e6a61fecba9 2D graphics backend Skia/60 d1f2d15b36f6a6a9d199581b998a7ca924a1f1a8- Command Line "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --flag-switches-begin --flag-switches-end Driver Information Initialization time 0 In-process GPU true Passthrough Command Decoder false Supports overlays false Sandboxed false GPU0 VENDOR = 0xa0a7, DEVICE= 0x0377 Optimus false Optimus false AMD switchable false Desktop compositing Aero Glass Driver vendor Google Inc. Driver version 3.3.0.2 Driver date 2017/04/07 Pixel shader version 3.0 Vertex shader version 3.0 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 GL_EXTENSIONS Disabled Extensions GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent Window system binding vendor Window system binding version Window system binding extensions 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 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 RGBA_F16 Software only YVU_420 Software only YUV_420_BIPLANAR Software only UYVY_422 Software only Diagnostics ... loading ... Log Messages GpuProcessHostUIShim: The GPU process exited normally. Everything is okay. [2324:1944:0927/153805.846:ERROR:gles2_cmd_decoder.cc(11775)] : [.Offscreen-For-WebGL-000000F9774D85B0]GL ERROR :GL_INVALID_OPERATION : glReadPixels:
,
Sep 27 2017
It looks like Chromium's falling back to using SwiftShader in this situation and something's wrong with the software compositing path. Nicolas or Alexis, could one of you try to reproduce this on your Windows workstations with the appropriate command line flags?
,
Jun 11 2018
Sorry for the late reply. It looks like this would require the creation of a Windows VM to reproduce this exact issue? I tried to get a free one from Microsoft Azure but ran into a few problems. I'll see if customer support can help out. I'll also try to see if it can be reproduced on a Google Cloud Windows VM. On a Linux Cloud VM (cloudtop) I noticed that GL_RENDERER is reported as "Google SwiftShader (llvmpipe (LLVM 5.0, 256 bits))", which is unexpected, and the 'WebGL Aquarium' demo doesn't run correctly, which makes me suspect it's using Mesa llvmpipe instead of SwiftShader.
,
Jun 11 2018
I was able to create a 'Windows Server 2012 R2 Datacenter' VM on Google Cloud, and it had no issues running the 'WebGL Aquarium' demo with Chrome 68. I also ran the JavaScript snippets mentioned in the initial report in the Console, and the output was correct. The about://gpu info did look a bit strange to me: GL_RENDERER Google SwiftShader (ANGLE (Microsoft Basic Render Driver Direct3D11 vs_5_0 ps_5_0)) GL_VERSION OpenGL ES 2.0 SwiftShader (OpenGL ES 2.0 (ANGLE 2.1.0.702006f4a07e)) I was able to confirm that it was using the SwiftShader DLLs by attaching a debugger. So I think the mention of ANGLE is from an initial attempt to use ANGLE with the WARP renderer, which I think is blacklisted. On the Linux VM I had to run Chrome with --disable-gpu to really use SwiftShader and get the Aquarium demo to run properly. So it looks like Mesa llvmpipe is not blacklisted, but we're incorrectly reporting SwiftShader in the RENDERER string. @zmo is that something that needs to be looked into? I'll close this because the initial issue seems to be fixed.
,
Jun 11 2018
The GL_RENDERER puts the hardware GPU's renderer in (), but since it's ANGLE and Microsoft software renderer, it looks strange, but in general use cases, it makes sense. (Although we no longer need to do that because now we display both the info before and after switching to SwiftShader in about:gpu.) Can you share with me the about:gpu info on Linux VM without --disable-gpu? It might give me some hints why we incorrectly report SwiftShader.
,
Jun 12 2018
Attached the about:gpu from the Cloudtop VM.
,
Jun 12 2018
I think this is falling back to SwiftShader. Is there a reason you say it's not really running with SwiftShader other than the GL_VENDOR/RENDERER strings that still say VMware and llvmpipe?
,
Jun 12 2018
http://webglsamples.org/aquarium/aquarium.html is not rendering correctly (the bowl's glass is missing, the bubbles are squares, and the light rays are not transparent). It looks fine with --disable-gpu. Also, GL_EXTENSIONS does not correspond to SwiftShader's list of extensions. It does when running with --disable-gpu.
,
Jun 12 2018
Can you try ToT?
,
Jun 13 2018
ToT build had the same issues with the Aquarium demo (again fixed by using --disable-gpu). about:gpu attached.
,
Jun 13 2018
I think I see where the problem is. Without --disable-gpu, we launch and initialize with VMware mesa driver, and decide we should fall back to SwiftShader. Now we tear down the old GL bindings and initializations, and re-initialize with SwiftShader. Somehow this tearing-down and re-initializing code doesn't work well, so at least I still see old GL_EXTENSIONS stuck. Let me create a different bug to fix this.
,
Jun 13 2018
|
||||||||
►
Sign in to add a comment |
||||||||
Comment 1 by ligim...@chromium.org
, Sep 8 2017Labels: Needs-Triage-M60 Needs-Bisect