如果我在运行WebGL的浏览器上运行一个应用程序,我将面临以下问题:" 大鼠,WebGL遇到障碍!" 。 我已经清除了纹理,帧缓冲区,程序,缓冲区,并将画布高度和宽度设置为1。
这就是我正在做的事情:
`
var gl = this.gl;
if(!gl) {
return;
}
//delete program
gl.deleteProgram(this.program);
var numTextureUnits = gl.getParameter(gl.MAX_TEXTURE_IMAGE_UNITS);
for (var unit = 0; unit < numTextureUnits; ++unit) {
gl.activeTexture(gl.TEXTURE0 + unit);
gl.bindTexture(gl.TEXTURE_2D, null);
gl.bindTexture(gl.TEXTURE_CUBE_MAP, null);
}
gl.bindBuffer(gl.ARRAY_BUFFER, null);
gl.bindRenderbuffer(gl.RENDERBUFFER, null);
gl.bindFramebuffer(gl.FRAMEBUFFER, null);
gl.deleteTexture(this.texture);
gl.deleteTexture(this.textures[0]);
gl.deleteTexture(this.textures[1]);
gl.deleteFramebuffer(this.framebuffers[0]);
gl.deleteFramebuffer(this.framebuffers[1]);
gl.bindBuffer(gl.ARRAY_BUFFER, this.vertexBuffer);
gl.bufferData(gl.ARRAY_BUFFER, 1, gl.STATIC_DRAW);
gl.deleteBuffer(this.vertexBuffer);
gl.bindBuffer(gl.ARRAY_BUFFER, this.textureBuffer);
gl.bufferData(gl.ARRAY_BUFFER, 1, gl.STATIC_DRAW);
gl.deleteBuffer(this.textureBuffer);
var buf = gl.createBuffer();
gl.bindBuffer(gl.ARRAY_BUFFER, buf);
var numAttributes = gl.getParameter(gl.MAX_VERTEX_ATTRIBS);
for (var attrib = 0; attrib < numAttributes; ++attrib) {
gl.vertexAttribPointer(attrib, 1, gl.FLOAT, false, 0, 0);
}
gl.canvas.width = 1;
gl.canvas.height = 1;
gl.clear(gl.DEPTH_BUFFER_BIT | gl.COLOR_BUFFER_BIT)`
重现的步骤: 1)打开谷歌浏览器
2)运行应用程序(无法提供链接,因为它尚未托管,道歉!!! :()
3)打开Chrome任务管理器并检查GPU内存,我看到的是,随着我在清除和删除画布并添加新画布和新上下文后不断添加新图像,它会大幅增加。
另一个奇怪的问题/观察是GPU内存一直持续到25 GB,但我的GPU只有2GB的内存