Adreno 300 series GPU black texture flickering

When loading the website on an Android phone with a Adreno 300 series, get a weird black glitch in diffuse textures causing black flickering. I am using MeshPhongMaterial for the meshes with point lights.

The same is reproduced in the threejs examples from the website, which i am giving links for instead of a jsfiddle.
https://threejs.org/examples/?q=texture#webgl_materials_texture_filters
https://threejs.org/examples/?q=texture#webgl_materials_texture_manualmipmap

Screenshots –
motog3
oneplusx_2

From my application –
car_1
car_2

In my project, the floor outside which is a Plane Geometry does not have this issue. Only the mesh I have loaded using the SEA3d loader.
car_3

Strangely there was no issue when viewing the anisotropy example too.

It is a major issue because a lot of phones use Adreno 300 series GPU’s.

Three.js version
  • Dev
  • r81
Browser
  • [] All of them
  • Chrome
  • Firefox
  • Internet Explorer
OS
  • [] All of them
  • Windows
  • Linux
  • Android
  • IOS
Hardware Requirements (graphics card, VR Device, …)

Tested with the following android devices. Work fine on other GPU series.
Oneplus X – Adreno 330
Moto G3 – Adreno 306
Moto G2 – Adreno 305

Author: Fantashit

2 thoughts on “Adreno 300 series GPU black texture flickering

  1. @mrdoob it’s hard to know. As you remember we filed ~4 driver bugs with Qualcomm against the Adreno 330 last year – the GPU in the Nexus 5. We were told that that device was not going to receive the Android N update, so no graphics driver updates, and the bugs were closed as “won’t fix”.

    I don’t remember exactly which of the WebGL conformance tests in https://github.com/KhronosGroup/WebGL/tree/master/sdk/tests/conformance/glsl/bugs were created for these cases.

    If this is a serious issue then I recommend iteratively simplifying the shader and figuring out what part of it is executing incorrectly on the Adreno 300 series GPUs. This would only be in order to figure out a workaround — there is no point in filing a driver bug about it since the driver will never be updated. We will gladly add a reduced test case to the WebGL conformance suite if you can come up with one and if it doesn’t already exist.

Comments are closed.