engine-toolkit icon indicating copy to clipboard operation
engine-toolkit copied to clipboard

The Stats component needs to hook into the drawElementsInstanced, drawArraysInstanced, drawElementsInstancedANGLE, and drawArraysInstancedANGLE methods.

Open jtabibito opened this issue 1 year ago • 0 comments

When I try to draw a mesh using GPU Instancing, the stats show 0 draw calls and 0 triangles. Here is my solution. `

if (gl instanceof WebGL2RenderingContext) {
  this.realDrawElementsInstanced = gl.drawElementsInstanced;
  this.realDrawArraysInstanced = gl.drawArraysInstanced;

  gl.drawElementsInstanced = this.hookedDrawElementsInstanced.bind(this);
  gl.drawArraysInstanced = this.hookedDrawArraysInstanced.bind(this);
} else {
  const ext = gl.getExtension("ANGLE_instanced_arrays");
  if (ext) {
    this.realDrawElementsInstanced = ext.drawElementsInstancedANGLE;
    this.realDrawArraysInstanced = ext.drawArraysInstancedANGLE;

    ext.drawElementsInstancedANGLE = this.hookedDrawElementsInstanced.bind(this);
    ext.drawArraysInstancedANGLE = this.hookedDrawArraysInstanced.bind(this);
  }
}

`

jtabibito avatar Mar 06 '24 08:03 jtabibito