• passes: 9
  • failures: 0
  • duration: 0.12s
  • buffer tests

    • test bufferData with typedarray14ms ‣

      const {gl} = createContext();
      const tracker = new MemInfoTracker(gl, 'buffer');
      const buf1 = gl.createBuffer();
      tracker.addObjects(1);
      gl.bindBuffer(gl.ARRAY_BUFFER, buf1);
      const data1 = new Float32Array(25);
      gl.bufferData(gl.ARRAY_BUFFER, data1, gl.STATIC_DRAW);
      tracker.addMemory(data1.byteLength);
      const data1a = new Uint16Array(37);
      gl.bufferData(gl.ARRAY_BUFFER, data1a, gl.STATIC_DRAW);
      tracker.addMemory(data1a.byteLength - data1.byteLength);
      const buf2 = gl.createBuffer();
      tracker.addObjects(1);
      gl.bindBuffer(gl.ARRAY_BUFFER, buf2);
      const data2 = new Float32Array(55);
      gl.bufferData(gl.ARRAY_BUFFER, data2, gl.STATIC_DRAW);
      tracker.addMemory(data2.byteLength);
      gl.deleteBuffer(buf1);
      tracker.deleteObjectAndMemory(data1a.byteLength);
      gl.deleteBuffer(buf2);
      tracker.deleteObjectAndMemory(data2.byteLength);
    • test bufferData with ArrayBufferView14ms ‣

      const {gl} = createContext2();
      if (!gl) {
        return;
      }
      const tracker = new MemInfoTracker(gl, 'buffer');
      const buf1 = gl.createBuffer();
      tracker.addObjects(1);
      gl.bindBuffer(gl.ARRAY_BUFFER, buf1);
      const data1 = new Float32Array(25);
      const length1 = 15;
      const size1 = length1 * data1.BYTES_PER_ELEMENT;
      gl.bufferData(gl.ARRAY_BUFFER, data1, gl.STATIC_DRAW, 0, length1);
      tracker.addMemory(size1);
      const data1a = new Uint16Array(37);
      const length1a = 30;
      const size1a = length1a * data1a.BYTES_PER_ELEMENT;
      gl.bufferData(gl.ARRAY_BUFFER, data1a, gl.STATIC_DRAW, 0, length1a);
      tracker.addMemory(size1a - size1);
      const buf2 = gl.createBuffer();
      tracker.addObjects(1);
      gl.bindBuffer(gl.ARRAY_BUFFER, buf2);
      const data2 = new Float32Array(55);
      const length2 = 41;
      const size2 = length2 * data2.BYTES_PER_ELEMENT;
      gl.bufferData(gl.ARRAY_BUFFER, data2, gl.STATIC_DRAW, 0, length2);
      tracker.addMemory(size2);
      gl.deleteBuffer(buf1);
      tracker.deleteObjectAndMemory(size1a);
      gl.deleteBuffer(buf2);
      tracker.deleteObjectAndMemory(size2);
    • test bufferData with ArrayBuffer11ms ‣

      const {gl} = createContext2();
      if (!gl) {
        return;
      }
      const tracker = new MemInfoTracker(gl, 'buffer');
      const buf1 = gl.createBuffer();
      tracker.addObjects(1);
      gl.bindBuffer(gl.ARRAY_BUFFER, buf1);
      const data1 = new Float32Array(25);
      gl.bufferData(gl.ARRAY_BUFFER, data1.buffer, gl.STATIC_DRAW);
      tracker.addMemory(data1.byteLength);
      const data1a = new Uint16Array(37);
      gl.bufferData(gl.ARRAY_BUFFER, data1a.buffer, gl.STATIC_DRAW);
      tracker.addMemory(data1a.byteLength - data1.byteLength);
      const buf2 = gl.createBuffer();
      tracker.addObjects(1);
      gl.bindBuffer(gl.ARRAY_BUFFER, buf2);
      const data2 = new Float32Array(55);
      gl.bufferData(gl.ARRAY_BUFFER, data2.buffer, gl.STATIC_DRAW);
      tracker.addMemory(data2.byteLength);
      gl.deleteBuffer(buf1);
      tracker.deleteObjectAndMemory(data1a.byteLength);
      gl.deleteBuffer(buf2);
      tracker.deleteObjectAndMemory(data2.byteLength);
    • test bufferData with size12ms ‣

      const {gl} = createContext();
      const tracker = new MemInfoTracker(gl, 'buffer');
      const buf1 = gl.createBuffer();
      tracker.addObjects(1);
      gl.bindBuffer(gl.ARRAY_BUFFER, buf1);
      const size1 = 26;
      gl.bufferData(gl.ARRAY_BUFFER, size1, gl.STATIC_DRAW);
      tracker.addMemory(size1);
      const size1a = 38;
      gl.bufferData(gl.ARRAY_BUFFER, size1a, gl.STATIC_DRAW);
      tracker.addMemory(size1a - size1);
      const buf2 = gl.createBuffer();
      tracker.addObjects(1);
      gl.bindBuffer(gl.ARRAY_BUFFER, buf2);
      const size2 = 55;
      gl.bufferData(gl.ARRAY_BUFFER, size2, gl.STATIC_DRAW);
      tracker.addMemory(size2);
      gl.deleteBuffer(buf1);
      tracker.deleteObjectAndMemory(size1a);
      gl.deleteBuffer(buf2);
      tracker.deleteObjectAndMemory(size2);
    • test ELEMENT_ARRAY_BUFFER12ms ‣

      const {gl} = createContext2();
      if (!gl) {
        return;
      }
      const tracker = new MemInfoTracker(gl, 'buffer');
      const va1 = gl.createVertexArray();
      gl.bindVertexArray(va1);
      const buf1 = gl.createBuffer();
      tracker.addObjects(1);
      gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, buf1);
      const size1 = 26;
      gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, size1, gl.STATIC_DRAW);
      tracker.addMemory(size1);
      const va2 = gl.createVertexArray();
      gl.bindVertexArray(va2);
      const buf2 = gl.createBuffer();
      tracker.addObjects(1);
      gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, buf2);
      const size2 = 55;
      gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, size2, gl.STATIC_DRAW);
      tracker.addMemory(size2);
      gl.bindVertexArray(va1);
      const size1a = 5;
      gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, size1a, gl.STATIC_DRAW);
      tracker.addMemory(size1a - size1);
      gl.deleteBuffer(buf1);
      tracker.deleteObjectAndMemory(size1a);
      gl.deleteBuffer(buf2);
      tracker.deleteObjectAndMemory(size2);
    • test bindBufferBase/bindBufferRange10ms ‣

      const {gl} = createContext2();
      if (!gl) {
        return;
      }
      const tracker = new MemInfoTracker(gl, 'buffer');
      const buf1 = gl.createBuffer();
      tracker.addObjects(1);
      gl.bindBufferBase(gl.UNIFORM_BUFFER, 0, buf1);
      const data1 = new Float32Array(25);
      gl.bufferData(gl.UNIFORM_BUFFER, data1, gl.STATIC_DRAW);
      tracker.addMemory(data1.byteLength);
      const data1a = new Uint16Array(37);
      gl.bufferData(gl.UNIFORM_BUFFER, data1a, gl.STATIC_DRAW);
      tracker.addMemory(data1a.byteLength - data1.byteLength);
      const buf2 = gl.createBuffer();
      tracker.addObjects(1);
      const data2 = new Float32Array(55);
      gl.bindBufferRange(gl.TRANSFORM_FEEDBACK_BUFFER, 0, buf2, 0, data2.byteLength);
      gl.bufferData(gl.TRANSFORM_FEEDBACK_BUFFER, data2, gl.STATIC_DRAW);
      tracker.addMemory(data2.byteLength);
      gl.deleteBuffer(buf1);
      tracker.deleteObjectAndMemory(data1a.byteLength);
      gl.deleteBuffer(buf2);
      tracker.deleteObjectAndMemory(data2.byteLength);
  • renderbuffer tests

    • test renderbufferStorage8ms ‣

      const {gl} = createContext();
      const tracker = new MemInfoTracker(gl, 'renderbuffer');
      const rb1 = gl.createRenderbuffer();
      tracker.addObjects(1);
      gl.bindRenderbuffer(gl.RENDERBUFFER, rb1);
      let size1a;
      {
        const width = 17;
        const height = 49;
        gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGB565, width, height);
        size1a = width * height * 2;
        tracker.addMemory(size1a);
      }
      let size1b;
      {
        const width = 37;
        const height = 9;
        gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_COMPONENT16, width, height);
        size1b = width * height * 2;
        tracker.addMemory(size1b - size1a);
      }
      const rb2 = gl.createRenderbuffer();
      tracker.addObjects(1);
      gl.bindRenderbuffer(gl.RENDERBUFFER, rb2);
      let size2;
      {
        const width = 71;
        const height = 94;
        gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, width, height);
        size2 = width * height * 2;
        tracker.addMemory(size2);
      }
      gl.deleteRenderbuffer(rb1);
      tracker.deleteObjectAndMemory(size1b);
      gl.deleteRenderbuffer(rb2);
      tracker.deleteObjectAndMemory(size2);
    • test renderbufferStorage STENCIL_INDEX89ms ‣

      const {gl} = createContext();
      const tracker = new MemInfoTracker(gl, 'renderbuffer');
      const rb1 = gl.createRenderbuffer();
      tracker.addObjects(1);
      gl.bindRenderbuffer(gl.RENDERBUFFER, rb1);
      let size1a;
      {
        const width = 17;
        const height = 49;
        gl.renderbufferStorage(gl.RENDERBUFFER, gl.STENCIL_INDEX8, width, height);
        size1a = width * height;
        tracker.addMemory(size1a);
      }
      gl.deleteRenderbuffer(rb1);
      tracker.deleteObjectAndMemory(size1a);
    • test renderbufferStorageMultisample11ms ‣

      const {gl} = createContext2();
      if (!gl) {
        return;
      }
      const tracker = new MemInfoTracker(gl, 'renderbuffer');
      const rb1 = gl.createRenderbuffer();
      tracker.addObjects(1);
      gl.bindRenderbuffer(gl.RENDERBUFFER, rb1);
      let size1a;
      {
        const width = 17;
        const height = 49;
        gl.renderbufferStorageMultisample(gl.RENDERBUFFER, 2, gl.RGB565, width, height);
        size1a = width * height * 2 * 2;
        tracker.addMemory(size1a);
      }
      let size1b;
      {
        const width = 37;
        const height = 9;
        gl.renderbufferStorageMultisample(gl.RENDERBUFFER, 4, gl.DEPTH_COMPONENT16, width, height);
        size1b = width * height * 2 * 4;
        tracker.addMemory(size1b - size1a);
      }
      const rb2 = gl.createRenderbuffer();
      tracker.addObjects(1);
      gl.bindRenderbuffer(gl.RENDERBUFFER, rb2);
      let size2;
      {
        const width = 71;
        const height = 94;
        gl.renderbufferStorageMultisample(gl.RENDERBUFFER, 2, gl.RGBA4, width, height);
        size2 = width * height * 2 * 2;
        tracker.addMemory(size2);
      }
      gl.deleteRenderbuffer(rb1);
      tracker.deleteObjectAndMemory(size1b);
      gl.deleteRenderbuffer(rb2);
      tracker.deleteObjectAndMemory(size2);