New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 763376 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jun 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocked on:
issue 852537



Sign in to add a comment

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.

 
Components: Blink>WebGL
Labels: Needs-Triage-M60 Needs-Bisect

Comment 2 by kbr@chromium.org, Sep 8 2017

Cc: sugoi@chromium.org capn@chromium.org vmi...@chromium.org
Components: Internals>GPU>Internals
Summary: WebGL fails to run on Microsoft Hyper-V Video (was: webgl error)
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.

Comment 3 by kbr@chromium.org, Sep 8 2017

Labels: -Needs-Bisect -Needs-Triage-M60
Very unlikely to be a regression, BTW.

Cc: krajshree@chromium.org
Labels: Needs-Milestone Needs-Feedback
Reporter@ - Could you please respond to comment #2.

Thanks...!!
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.
Project Member

Comment 6 by sheriffbot@chromium.org, Sep 15 2017

Labels: -Needs-Feedback
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

Comment 7 by kbr@chromium.org, 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.

this is all the information that we managed to get. If this is not enough, indicate what specific information you need.
photo_2017-09-26_15-35-49.jpg
123 KB View Download
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:

Comment 10 by kbr@chromium.org, Sep 27 2017

Components: Internals>GPU>SwiftShader
Owner: capn@chromium.org
Status: Assigned (was: Unconfirmed)
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?

Comment 11 by capn@chromium.org, 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.

Comment 12 by capn@chromium.org, Jun 11 2018

Cc: zmo@chromium.org
Status: Fixed (was: Assigned)
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.

Comment 13 by zmo@chromium.org, 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.

Comment 14 by capn@chromium.org, Jun 12 2018

Attached the about:gpu from the Cloudtop VM.
cloudtop-about-gpu.txt
19.7 KB View Download

Comment 15 by zmo@chromium.org, 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?

Comment 16 by capn@chromium.org, 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.

Comment 17 by zmo@chromium.org, Jun 12 2018

Can you try ToT?

Comment 18 by capn@chromium.org, Jun 13 2018

ToT build had the same issues with the Aquarium demo (again fixed by using --disable-gpu). about:gpu attached.
cloudtop-chromium-tot-about-gpu.txt
19.5 KB View Download

Comment 19 by zmo@chromium.org, 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.

Comment 20 by zmo@chromium.org, Jun 13 2018

Blockedon: 852537

Sign in to add a comment