我正在尝试提高我的延迟渲染器的 FPS,所以我偶然发现了 chrome://tracing (这里和这里)。我添加console.time
并console.timeEnd
为我渲染的每一层。你可以在这里看到它们:
http://i.imgur.com/Rh5jfpN.jpg
我的跟踪点是以 开头的最上面的项目node/...
,它们一起运行大约 2 毫秒。gl*
所有的调用都在这两毫秒内完成。我目前的 FPS 大约是 38 FPS,一帧大约 28 毫秒。现在是另一张使用 GPU 进程缩小的图片:
http://i.imgur.com/sM4aAXB.jpg
您仍然可以在那里看到跟踪点,顶部的小条。奇怪的是,Chrome 渲染两帧的速度非常快,然后运行这个神秘的DoSwapBuffers
/Onscreen
任务,停止渲染大约 25 毫秒,加上MakeCurrent
与第二帧重叠的任务(如在两个快速连续帧中),这需要 15 毫秒。
在我看来,Chrome 将所有 WebGL 任务推迟到以后,因此无法进行任何类型的分析。但这只是我的猜测。如何处理这个问题以及如何分析我的 WebGL 代码?