Open kathy-phet opened 8 years ago
@andrewadare - Mike said you can come to his office to use his machine to check out this bug.
Here is the info when you his report a problem. Note we updated chrome after this. And his is a windows 7 machine, service pack 1. Troubleshooting information (do not edit): Name: Charges And Fields URL: https://phet.colorado.edu/sims/html/charges-and-fields/latest/charges-and-fields_en.html Version: 1.0.0 2016-09-07 17:38:42 UTC Features missing: touch User Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 Language: en-US Window: 1502x861 Pixel Ratio: 1/1 WebGL: WebGL 1.0 (OpenGL ES 2.0 Chromium) GLSL: WebGL GLSL ES 1.0 (OpenGL ES GLSL ES 1.0 Chromium) Vendor: WebKit (WebKit WebGL) Vertex: attribs: 16 varying: 9 uniform: 253 Texture: size: 4096 imageUnits: 16 (vertex: 4, combined: 20) Max viewport: 4096x4096 OES_texture_float: true Dependencies JSON: {"assert":{"sha":"7d27130a","branch":"HEAD"},"axon":{"sha":"1fd91832","branch":"HEAD"},"babel":{"sha":"e093d6b6","branch":"master"},"brand":{"sha":"f0b1f7da","branch":"HEAD"},"charges-and-fields":{"sha":"2076fd03","branch":"HEAD"},"chipper":{"sha":"89c4a103","branch":"HEAD"},"dot":{"sha":"3f60cfcc","branch":"HEAD"},"joist":{"sha":"9c50d3f7","branch":"HEAD"},"kite":{"sha":"3b656b9a","branch":"HEAD"},"phet-core":{"sha":"c48bf320","branch":"HEAD"},"phetcommon":{"sha":"83ea84c8","branch":"HEAD"},"scenery":{"sha":"0ab22ac3","branch":"HEAD"},"scenery-phet":{"sha":"d50f2282","branch":"HEAD"},"sherpa":{"sha":"5ddfccd4","branch":"HEAD"},"sun":{"sha":"4b852127","branch":"HEAD"},"tandem":{"sha":"43ebdfb3","branch":"HEAD"}}
I have a windows 7 machine, checked this and did not see a problem, cannot reproduce.
Also tried in projector mode as shown in issue
Looks like Mike has a 4k display from the report a problem info? Could that be causing some funkiness?
Edit: for the benefit of @oliver-phet and @phet-steele -- CLEARLY this must not be a 4k display. I saw the 4096x4096 and thought that was odd, but is a webgl thing.
Looks like Mike has a 4k display from the report a problem info? Could that be causing some funkiness?
The device in my office has a 4K screen that's never shown this, granted it's Win 10. If anything, it's a Win 7 & 4K problem.
Mike, can you go into chrome settings and try toggling on/off the use of hardware acceleration? Just a hunch.
Just used the sim on Mike Dubson's Windows 7 machine for about 20 minutes. What a strange, awful bug. As noted by @kathy-phet, problems appear after clicking the reset button. Selecting the Voltage checkbox after a reset (with no charges on screen) adds an apparently random number of red and blue potential shapes in apparently random locations.
Try ?webgl=false
edit: AP - also see if a difference in projector mode or not
Window 7 Service Pack 1 was released in 2010. Perhaps also try updating to a more recent version.
We also determined that Mike does not have a 4K display. In the debug output, 4096
is the WebGL texture size: Texture: size: 4096 imageUnits: 16 (vertex: 4, combined: 20)
. His display dimensions are Window: 1502x861
.
With ?webgl=false, the bug goes away. Thanks! Mike
@dubson glad to see!
Can you let us know what graphics card your computer has, or possibly let @oliver-phet take a look? Some graphics cards are known to have issues with webgl and we would like to isolate if that is the problem.
Thanks!
Auto-updates are and have been on, on my PC, and system is up-to-date. -mike
Intel(R) G45/G43 Express Chipset This is the only info I get from Device Manager..Display Adapters on my PC. -mike
Mike, can you please inspect the status of WebGL:
Go to the URL chrome://gpu
Inspect the WebGL item in the Graphics Feature Status list. The status will be one of the following:
If the status is not "Hardware accelerated", then the Problems Detected list (below the the Graphics Feature Status list) may explain why hardware acceleration is unavailable.
Have done this. Status is Hardware accelerated
-mike
Michael Dubson
Associate Chair for Undergraduate Studies
Dept of Physics, University of Colorado Boulder, UCB 390
Boulder, CO 80309
office: 303-492-4938
email: michael.dubson@colorado.edu
From: Oliver Nix notifications@github.com Sent: Thursday, September 8, 2016 12:45:49 PM To: phetsims/charges-and-fields Cc: Michael A Dubson; Mention Subject: Re: [phetsims/charges-and-fields] Nasty bug on Mike Dubson's machine - voltage display as if charges in different location (#106)
Mike, can you please inspect the status of WebGL:
Go to the URL chrome://gpu Inspect the WebGL item in the Graphics Feature Status list. The status will be one of the following:
If the status is not "Hardware accelerated", then the Problems Detected list (below the the Graphics Feature Status list) may explain why hardware acceleration is unavailable.
You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/phetsims/charges-and-fields/issues/106#issuecomment-245699096, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AE2uNlkSFEwMuswt101Ych0THzs9BnC9ks5qoFfdgaJpZM4J4Gbp.
Also, just as a note, how old is your computer? Wikipedia has the following
Chrome on Windows
On all versions of Windows, WebGL is disabled on all graphics drivers older than January 1, 2009.
Self-assigning to look at MD's computer to get hardware info.
Some more relevant graphics info: Windows 7 Intel GMA X4500 and other HD Graphics 8.15.10.2202 Driver date: 8/25/2010
It appears there is a graphics driver update available which may alleviate the problem: http://www.intel.com/content/www/us/en/support/graphics-drivers/graphics-drivers-for-intel-g45-express-chipset.html
This bug may have been reproduced by Sandor:
Look at the screenshot below. Voltage is on. There is no charge at the blue spot. It was there even when there was no charge ont he desk. Sometimes a red spot shows up. Something is wrong with the sim. I am using Chrome.
I asked for Sandor's system details and will post when he replies. @andrewadare @ariel-phet anything else I can get from him?
@oliver-phet please have him run with the ?webgl=false
query parameter, and report if he still sees the issue
https://phet.colorado.edu/sims/html/charges-and-fields/latest/charges-and-fields_en.html?webgl=false
Also ask if the bug happened on "reset" of the sim
@oliver-phet we might want to consider posting something on that webpage like the Plate Tectonics sim
A simple message like "For older hardware, please use this [link]" or such and have the ?webgl=false link listed there
Is the webgl only important to get good performance on iPad?
If so, you could release a maintenance release that only uses webgl on mobile.
More info from Sandor:
This morning I had a problem again with my card reader, so I decided to check Charges and fields too. It can be just a coincidence, buti t turned out to be erratic too. However I have found a pattern.
The error is related to the action of the refreshing button int he bottom right corner. If you start the program from scratch, e.g. by refreshig the browser window, the program runs perfectly. However, if you use the yellow Refresh button, then th error will occur. The more times you do, the more erratic the result.
Howewer, if you push the Refresh button immediately after refreshing the browser window does not matter: the first trial will work fine. I have tried the following pattern: add a red charge on the empty desk; check the Poential box; push the Refresh button If you repeat this sequence, at first it works fine. Second time the error may not be obvious but probably it is there, just the color spot is out of scale. Then the error gets quite obvious. I have tried the '?webgl=false' parameter as you have suggested. The error will not occur. Sandor
Seems like this user has confirmed exactly what we've already established, and nothing other than that (which is good).
Should we make a plan to do performance testing with WebGL disabled on non-mobile devices, then redeploy as @samreid suggested if that's successful?
Have you deduced whether the buggy machines are using ElectricPotentialWebGLNode or ElectricPotentialMobileWebGLNode? Are both of those buggy? Does this bug ever appear on iPads? Now that we have seen the bug on 2 machines, should we dedicate a bit more time to sitting down with Dubson's machine and trying to isolate the issue? What is the probability this issue will occur on other machines?
Lets first see if @oliver-phet can reproduce on one of our old machines so we have a machine we can play with.
@oliver-phet can you check for this on one of our ancient laptops?
I tried Chrome 47 on my ancient Windows Vista Acer laptop, no problem there.
Is @jonathanolson aware of this bug/conversation? Seems like he may have some suggestions too.
I was not aware, but should be able to help.
First (as @samreid noted) it's important to understand whether his computer is using the Canvas, mobile WebGL, or full-featured WebGL by inspecting what the sim says (they are designed to look the same). I see that it's interpolated with bicubic, to me indicating that he is NOT using the full-featured WebGL version. Additionally, since he said ?webgl=false fixes the problem, he is not running the Canvas version.
That would lead me to suspect the sim doesn't have access to all the WebGL features and is thus running in the "mobile WebGL".
This exact behavior did happen during development if the reset did not properly remove (subtract) those charges' contribution.
@ariel-phet, should I look into this? And was the "mobile WebGL" tested on Windows in the test matrix, or just the full-featured WebGL?
Additionally, testing a version that ONLY uses that display output may make reproducing this problem easier.
@jonathanolson I don't think myself or the QA team is aware of a way to just test the "mobile WebGL"
This was immediately reproducible on our Win10 (oldish) testing computer, Galileo. Screen:
Name: Charges And Fields URL: https://phet.colorado.edu/sims/html/charges-and-fields/latest/charges-and-fields_en.html Version: 1.0.0 2016-09-24 19:44:27 UTC Features missing: touch User Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36 Language: en-US Window: 1920x971 Pixel Ratio: 1/1 WebGL: WebGL 1.0 (OpenGL ES 2.0 Chromium) GLSL: WebGL GLSL ES 1.0 (OpenGL ES GLSL ES 1.0 Chromium) Vendor: WebKit (WebKit WebGL) Vertex: attribs: 16 varying: 9 uniform: 253 Texture: size: 16384 imageUnits: 16 (vertex: 4, combined: 20) Max viewport: 16384x16384 OES_texture_float: true Dependencies JSON: {"assert":{"sha":"7d27130a","branch":"HEAD"},"axon":{"sha":"1fd91832","branch":"HEAD"},"babel":{"sha":"54e5f54d","branch":"master"},"brand":{"sha":"f0b1f7da","branch":"HEAD"},"charges-and-fields":{"sha":"2076fd03","branch":"HEAD"},"chipper":{"sha":"89c4a103","branch":"HEAD"},"dot":{"sha":"3f60cfcc","branch":"HEAD"},"joist":{"sha":"9c50d3f7","branch":"HEAD"},"kite":{"sha":"3b656b9a","branch":"HEAD"},"phet-core":{"sha":"c48bf320","branch":"HEAD"},"phetcommon":{"sha":"83ea84c8","branch":"HEAD"},"scenery":{"sha":"0ab22ac3","branch":"HEAD"},"scenery-phet":{"sha":"d50f2282","branch":"HEAD"},"sherpa":{"sha":"5ddfccd4","branch":"HEAD"},"sun":{"sha":"4b852127","branch":"HEAD"},"tandem":{"sha":"43ebdfb3","branch":"HEAD"}}
@andrewadare @jonathanolson You can use Galileo to test, if it helps. It is in F925. Or let me know if I can run any diagnostics that could help.
Also with, ?webgl=false
, I can't seem to reproduce the issue.
BTW, those three above comments from @brroberts1231 was @oliver-phet commenting with Ben's account 😄
@andrewadare @jonathanolson if you use Galileo to test, it will need to be plugged into an outlet at all times.
This exact behavior did happen during development if the reset did not properly remove (subtract) those charges' contribution.
@jonathanolson can you provide some more detail on this comment, such as whether this was hardware-dependent, and whether there is something that can be done in the code to handle the problem (i.e. outside of disabling WebGL via query parameters)? I can do testing on Galileo, but it's clear that you have a better grasp of the details of this, since you and Martin are the main authors of the *WebGLNode files.
is there a query parameter for such a test?
Not currently. I'd love to have query parameters like "forceCanvas", "forceMobileWebGL" or "forceWebGL" that override the selection process in the sim.
would a better solution be to publish a maintenance release that use WebGl or canvas as the fall back, without any Mobile WebGl if that turns out to be the issue?
Mobile WebGL works well at least on iPads and hopefully most mobile devices. If it turns out to be the culprit (and there's no bug in the sim), we could have a release that only enables it for iOS or Android (otherwise fall back to Canvas).
@jonathanolson can you provide some more detail on this comment, such as whether this was hardware-dependent, and whether there is something that can be done in the code to handle the problem (i.e. outside of disabling WebGL via query parameters)? I can do testing on Galileo, but it's clear that you have a better grasp of the details of this, since you and Martin are the main authors of the *WebGLNode files.
Without knowing more, I don't know if it's (a) JS issue, (b) JS issue triggered by hardware difference or (c) hardware-only bug. I can see if I can reproduce it on other platforms after forcing the mobile WebGL view, but otherwise collaborative testing using Galileo sounds like the best route forward.
Added branch with query parameters, unable to immediately reproduce the problem, so hardware is at least partially responsible.
I now have Galileo for testing. Here's the dump from chrome://gpu:
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
WebGL: Hardware accelerated
Driver Bug Workarounds
clear_uniforms_before_first_program_use
disable_d3d11
disable_discard_framebuffer
exit_on_context_lost
force_cube_complete
scalarize_vec_and_mat_constructor_args
texsubimage_faster_than_teximage
Problems Detected
Some drivers are unable to reset the D3D device in the GPU process sandbox
Applied Workarounds: exit_on_context_lost
TexSubImage is faster for full uploads on ANGLE
Applied Workarounds: texsubimage_faster_than_teximage
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
ANGLE crash on glReadPixels from incomplete cube map texture: 518889
Applied Workarounds: force_cube_complete
Framebuffer discarding can hurt performance on non-tilers: 570897
Applied Workarounds: disable_discard_framebuffer
Crashes in D3D11 on specific AMD drivers: 517040
Applied Workarounds: disable_d3d11
Accelerated rasterization has been disabled, either via about:flags or 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 9/28/2016, 11:25:53 AM
Chrome version Chrome/51.0.2704.103
Operating system Windows NT 10.0
Software rendering list version 10.18
Driver bug list version 8.66
ANGLE commit id 1a1b30c37e13
2D graphics backend Skia
Command Line Args Files (x86)\Google\Chrome\Application\chrome.exe" --flag-switches-begin --flag-switches-end
Driver Information
Initialization time 112
In-process GPU false
Sandboxed false
GPU0 VENDOR = 0x1002, DEVICE= 0x68c0
Optimus false
AMD switchable false
Desktop compositing Aero Glass
Diagonal Monitor Size of \\.\DISPLAY1 15.5"
Driver vendor Advanced Micro Devices, Inc.
Driver version 15.201.1151.1008
Driver date 11-4-2015
Pixel shader version 3.0
Vertex shader version 3.0
Max. MSAA samples 8
Machine model name
Machine model version
GL_VENDOR Google Inc.
GL_RENDERER ANGLE (AMD Mobility Radeon HD 5000 Direct3D9Ex vs_3_0 ps_3_0)
GL_VERSION OpenGL ES 2.0 (ANGLE 2.1.0.1a1b30c37e13)
GL_EXTENSIONS GL_OES_element_index_uint GL_OES_packed_depth_stencil GL_OES_get_program_binary GL_OES_rgb8_rgba8 GL_EXT_texture_format_BGRA8888 GL_EXT_read_format_bgra GL_EXT_color_buffer_half_float GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_float GL_OES_texture_float_linear GL_EXT_texture_compression_dxt1 GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_OES_depth32 GL_EXT_texture_storage GL_OES_texture_npot GL_EXT_texture_filter_anisotropic GL_EXT_occlusion_query_boolean GL_NV_fence GL_EXT_robustness GL_EXT_blend_minmax GL_ANGLE_framebuffer_blit GL_ANGLE_framebuffer_multisample GL_ANGLE_instanced_arrays GL_ANGLE_pack_reverse_row_order GL_OES_standard_derivatives GL_EXT_shader_texture_lod GL_EXT_frag_depth GL_ANGLE_texture_usage GL_ANGLE_translated_shader_source GL_EXT_debug_marker GL_OES_EGL_image GL_EXT_unpack_subimage GL_NV_pack_subimage GL_OES_vertex_array_object GL_KHR_debug
Disabled Extensions
Window system binding vendor Google Inc. (adapter LUID: 0000000000007358)
Window system binding version 1.4 (ANGLE 2.1.0.1a1b30c37e13)
Window system binding extensions EGL_EXT_create_context_robustness EGL_ANGLE_d3d_share_handle_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_EXT_device_query 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_flexible_surface_compatibility
Direct rendering Yes
Reset notification strategy 0x8252
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
RGBA_4444 Software only
RGBX_8888 Software only
RGBA_8888 Software only
BGRX_8888 Software only
BGRA_8888 Software only
YUV_420 Software only
YUV_420_BIPLANAR Software only
UYVY_422 Software only
Diagnostics
0
b3DAccelerationEnabled true
b3DAccelerationExists true
bAGPEnabled true
bAGPExistenceValid true
bAGPExists true
bCanRenderWindow true
bDDAccelerationEnabled true
bDriverBeta false
bDriverDebug false
bDriverSigned false
bDriverSignedValid false
bNoHardware false
dwBpp 32
dwDDIVersion 11
dwHeight 1080
dwRefreshRate 60
dwWHQLLevel 0
dwWidth 1920
iAdapter 0
lDriverSize 1479808
lMiniVddSize 0
szAGPStatusEnglish Enabled
szAGPStatusLocalized Enabled
szChipType AMD Radeon Graphics Processor (0x68C0)
szD3DStatusEnglish Enabled
szD3DStatusLocalized Enabled
szDACType Internal DAC(400MHz)
szDDIVersionEnglish 11.2
szDDIVersionLocalized 11.2
szDDStatusEnglish Enabled
szDDStatusLocalized Enabled
szDXVAHDEnglish Not Supported
szDXVAModes ModeMPEG2_A ModeMPEG2_C
szDescription AMD Mobility Radeon HD 5000
szDeviceId 0x68C0
szDeviceIdentifier {D7B71EE2-2B80-11CF-E476-1324BEC2C535}
szDeviceName \\.\DISPLAY1
szDisplayMemoryEnglish 2806 MB
szDisplayMemoryLocalized 2806 MB
szDisplayModeEnglish 1920 x 1080 (32 bit) (60Hz)
szDisplayModeLocalized 1920 x 1080 (32 bit) (60Hz)
szDriverAssemblyVersion 15.201.1151.1008
szDriverAttributes Final Retail
szDriverDateEnglish 11/4/2015 12:00:00 AM
szDriverDateLocalized 11/4/2015 00:00:00
szDriverLanguageEnglish English
szDriverLanguageLocalized English
szDriverModelEnglish WDDM 1.3
szDriverModelLocalized WDDM 1.3
szDriverName aticfx64.dll,aticfx64.dll,aticfx64.dll,amdxc64.dll,aticfx32,aticfx32,aticfx32,amdxc32,atiumd64.dll,atidxx64.dll,atidxx64.dll,atiumdag,atidxx32,atidxx32,atiumdva,atiumd6a.cap,atitmm64.dll
szDriverNodeStrongName oem3.inf:cb0ae414484dce20:ati2mtag_Manhattan:15.201.1151.1008:pci\ven_1002&dev_68c0
szDriverSignDate
szDriverVersion 8.17.0010.1404
szKeyDeviceID Enum\PCI\VEN_1002&DEV_68C0&SUBSYS_04191028&REV_00
szKeyDeviceKey \Registry\Machine\System\CurrentControlSet\Control\Video\{399AC491-A342-4654-BFDA-45D49B0033B5}\0000
szManufacturer Advanced Micro Devices, Inc.
szMiniVdd n/a
szMiniVddDateEnglish n/a
szMiniVddDateLocalized n/a
szMonitorMaxRes
szMonitorName Generic PnP Monitor
szNotesEnglish No problems found.
szNotesLocalized No problems found.
szOverlayEnglish Not Supported
szRankOfInstalledDriver 00D12001
szRegHelpText
szRevision
szRevisionId 0x0000
szSubSysId 0x04191028
szTestResultD3D7English Not run
szTestResultD3D7Localized Not run
szTestResultD3D8English Not run
szTestResultD3D8Localized Not run
szTestResultD3D9English Not run
szTestResultD3D9Localized Not run
szTestResultDDEnglish Not run
szTestResultDDLocalized Not run
szVdd n/a
szVendorId 0x1002
Log Messages
GpuProcessHostUIShim: The GPU process exited normally. Everything is okay.
Some important lines are
szDescription AMD Mobility Radeon HD 5000
and
szDriverVersion 8.17.0010.1404
The Mozilla wiki page for blocked hardware says:
We require AMD driver version 10.6 (June 2010) or newer on Windows up to 7, see bug 623338. Notice that 10.6 is the commercial version number. The actual check is performed on the technical version number, and we require it to be at least 8.741.0.0.
So this GPU driver appears to be blocked by Firefox. Indeed, I cannot reproduce the bug with Firefox on Galileo [edit: tested without webgl=false].
Back to Chrome: I dug around for a while in https://cs.chromium.org/chromium/src/gpu/config/software_rendering_list_json.cc, as recommended at https://www.khronos.org/webgl/wiki/BlacklistsAndWhitelists. I do not see any rules that would apply to this GPU + driver. So it appears not to be blocked, but evidently it should be.
We could consider trying to detect GPU information, and have a blacklist that matches Firefox (if that's technically possible).
For the moment, we are going to take no action since this seems to be an issue with old computers and a few GPU+driver combos.
We are going to take a wait and see approach to see how many other reports we get to phethelp
As my one coworker said in the shop years ago "Someone gets rolled under the wheels of progress every day"
@oliver-phet leaving you assigned for the moment to let us know about any further bug reports
Before moving on, here's a brief summary of a testing session with @jonathanolson.
We can recommend to users that based on our limited tests, the problem doesn't occur on Firefox or IE, so try one of those (or use ?webgl=false).
*Sorry, didn't get the IE version. Galileo died instantly when the plug fell out of the wall :) I could retrieve it, but I doubt it's necessary at this point.
We just received a user report into phethelp about this issue. Any update on a fix for this?
@ariel-phet
On @dubson machine, if you add charges to the play area and then reset, and then add more charges everything gets out of sync in the location and memory of the voltage display. We updated his chrome browser to the latest version and the bug is still there. I cannot reproduce this bug on my machine. See image below (reset was pressed and no charges have been pulled out, but it still is displaying voltage locations).