Three.js: Example webgl_gpgpu_protoplanet not working on IE

Created on 19 Apr 2017  路  9Comments  路  Source: mrdoob/three.js

Description of the problem

As reported by @elmariachigrande on the forum (here), the webgl_gpgpu_protoplanet example is not working on Edge or Internet Explorer.

I tried opening several times on IE11, it made the browser completely hang each time (no error message, had to use task manager to close it), then it Edge it crashed the tab the first few times, but eventually loaded to show this:

proto-error

I also tried setting the "preferred graphics processor" to both integrated and dedicated, but it doesn't seem to make a difference.

Three.js version
  • [x] Dev
  • [x] r84
Browser
  • [ X ] Internet Explorer 11.0.15063.0IC
  • [ X] Microsoft Edge 40.15063.0.0
OS
  • [ X ] Windows 10
Hardware Requirements (graphics card, VR Device, ...)

NVIDIA GeForce GTX 970M
Intel HD Graphics 530

Bug

All 9 comments

What happens if you set the following line to false. I don't think this extension is needed in the example.

Sry, i have no Windows OS around, so i need you for testing :blush:

No change, unfortunately.

Um, maybe this PR solves the issue: #10674

/ping @yomboprime

Later this day I'll be able to test in a Windows 8, i hope.

I don't have access to a Windows machine, sorry. I can't test the bug.

Can somebody else test in IE 11?

I get the following on IE11:
THREE.WebGLRenderer: WEBGL_depth_texture extension not supported.
THREE.WebGLRenderer: OES_texture_half_float extension not supported.
THREE.WebGLRenderer: OES_texture_half_float_linear extension not supported.
Other browsers are fine, I don't think it matters but I'm using a r9 290.

I think this may be IE trying to unroll the nested x, y loops iterating through the textures and running into timeout or complexity issues.

If I run the example with a low number of particles say 4 16 or 64*, it works in IE11 and Edge, although it takes a long while to load with 64.

When the example fails I get 'internal linking error' reported from gl.linkProgram(). (sometimes the browser just hangs).

It doesn't look like the example is intrinsically faulty, it just hits the limits of MS's shader compiler/linker. Possibly reduce the initial number of particles if IE/Edge is used and limit the maximum/warn for higher numbers.

  • I expect of the failure is timeout related, the speed of the user's machine would influence the maximum number of particles supported.

Can this issue be closed? It's a limitation of Edge/IE WebGL implementation rather than a three.js bug.

/ping @mrdoob @looeee

Was this page helpful?
0 / 5 - 0 ratings