InstancedBufferGeometry: second material cannot read attributes on Intel GPU

Description of the problem

I created an InstancedBufferGeometry based on an ExtrudeBufferGeometry, and I wanted to assign different ShaderMaterial for the face and the side.

It worked on the discrete GPU on MacBook, but on MacBooks with only the integrated Intel GPU (or force use the intel GPU using gfxcardstatus), the side material failed to read values from the InstancedBufferAttribute.

Live example: jsfiddle
In this example, both the face and the side shares the same ShaderMaterial and they should all be red.

  • On discrete GPU it looks correct:

Screen Shot 2019-04-25 at 11 06 26 AM

  • But on intel GPU, the side cannot read the offset and color InstancedBufferAttribute:

Screen Shot 2019-04-25 at 11 05 58 AM

Three.js version
  • Dev
  • r104
Browser
  • All of them
  • Chrome
  • Firefox
  • Safari
OS
  • All of them
  • Windows
  • macOS
  • Linux
  • Android
  • iOS
Hardware Requirements (graphics card, VR Device, …)

Intel HD Graphics 630, Intel Iris Pro, Intel Iris Plus Graphics 650

Author: Fantashit

1 thought on “InstancedBufferGeometry: second material cannot read attributes on Intel GPU

Comments are closed.