<!--Copyright (c) 2019 The Khronos Group Inc.Use of this source code is governed by an MIT-style license that can befound in the LICENSE.txt file.--><!DOCTYPE html><html><head><metacharset="utf-8"><title>WebGL buffer deletion behavior test.</title><linkrel="stylesheet"href="../../resources/js-test-style.css"/><scriptsrc="../../js/js-test-pre.js"></script><scriptsrc="../../js/webgl-test-utils.js"></script></head><body><divid="description"></div><divid="console"></div><script>"use strict";description("Test buffer deletion behavior.");// This is a regression test for https://crbug.com/822976varwtu=WebGLTestUtils;vargl=wtu.create3DContext(undefined,undefined,2);wtu.glErrorShouldBe(gl,gl.NO_ERROR,"Should be no errors from setup.");functionrunTexImageTest(gl){debug("");varbuffer=gl.createBuffer();gl.bindBuffer(gl.PIXEL_UNPACK_BUFFER,buffer);gl.bufferData(gl.PIXEL_UNPACK_BUFFER,4,gl.DYNAMIC_DRAW);gl.bindBufferBase(gl.UNIFORM_BUFFER,0,buffer);gl.deleteBuffer(buffer);// Indexed uniform buffer bindings should not prevent a buffer from being// deleted. Therefore, PIXEL_UNPACK_BUFFER binding should also be 0.wtu.glErrorShouldBe(gl,gl.NO_ERROR,"no error");vartex=gl.createTexture();gl.bindTexture(gl.TEXTURE_2D,tex);vardata=newUint8Array(1024);gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA8,16,16,0,gl.RGBA,gl.UNSIGNED_BYTE,data);wtu.glErrorShouldBe(gl,gl.NO_ERROR,"texImage2D should succeed");// Clean up bindings just in case an implementation gets it wrong.gl.bindBuffer(gl.PIXEL_UNPACK_BUFFER,null);gl.bindBufferBase(gl.UNIFORM_BUFFER,0,null);}functionrunReadPixelsTest(gl){debug("");varbuffer=gl.createBuffer();gl.bindBuffer(gl.PIXEL_PACK_BUFFER,buffer);gl.bufferData(gl.PIXEL_PACK_BUFFER,4,gl.DYNAMIC_DRAW);gl.bindBufferBase(gl.UNIFORM_BUFFER,0,buffer);gl.deleteBuffer(buffer);// Indexed transform feedback buffer bindings should not prevent a buffer// from being deleted. Therefore, PIXEL_PACK_BUFFER binding should also be 0.wtu.glErrorShouldBe(gl,gl.NO_ERROR,"no error");varbuffer=newUint8Array(1024);gl.readPixels(0,0,16,16,gl.RGBA,gl.UNSIGNED_BYTE,buffer);wtu.glErrorShouldBe(gl,gl.NO_ERROR,"readPixels should succeed");// Clean up bindings just in case an implementation gets it wrong.gl.bindBuffer(gl.PIXEL_PACK_BUFFER,null);gl.bindBufferBase(gl.UNIFORM_BUFFER,0,null);}runTexImageTest(gl);runReadPixelsTest(gl);debug("");varsuccessfullyParsed=true;</script><scriptsrc="../../js/js-test-post.js"></script></body></html>