Internal linking error on Windows Phone 8.1 (Lumia 925)

I’m using a fully-up-to-date Nokia Lumia 925.

When I visit the Hello World site using either IE or UCBrowser I get:

RuntimeError: Program failed to link. Link log: Internal linking error

Visiting WebGL Report with each browser gives similar results:

Is this a bug with Cesium, or a limitation of the mobile device?


Patrick of Kevin can correct me if I’m wrong, but I’m fairly certain this is a limitation of your device. It’s returning a Max Vertex Image Texture Units of 0, which is legal according to the spec but makes it impossible to use textures inside of shaders which is a requirement for Cesium. The surprising things is that the Lumia 925 is using a Adreno 225 GPU, which while old by mobile standards, should technically be able to run Cesium (though I could be wrong). I’m guessing the guessing it’s actually the Windows Phone OS or driver is what is limiting support. Are you running the latest version of the OS?

This page seems to confirm the possibility that the chipset, as used in your phone, is limited to 0 image texture units:

I don’t think Windows phones have Chrome, but in Android Chrome I’m getting different results between the website and chrome://gpu, the website states OpenGL ES 2.0 while Chrome states OpenGL ES 3.0.

Chrome://gpu is reporting the capabilities of the underlying hardware. weblglreport is reporting whatever the browser wants to tell us. In this case I believe Chrome is trying to imply that their WebGL implementation is backed by OpenGL ES 2.0 while Firefox just reports “WebGL 1.0”.

The Max Vertex Image Texture Units of 0 applies only to the vertex shader, not the fragment shader, so Cesium should still run. It is possible that a Cesium shader - most likely the globe shader - is too complicated to compile. If Chrome is available, it would be worth a try. IE and Chrome worked last time I tested on the Dell Venue Pro tablet.