• passes: 6
  • failures: 0
  • duration: 0.08s
  • 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 ArrayBuffer10ms ‣

      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 size10ms ‣

      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_BUFFER10ms ‣

      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/bindBufferRange11ms ‣

      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);
  • webgl context lost tests