Chromium硬件加速渲染的GPU数据上传机制分析
在Chromium中,WebGL端、Render端和Browser端通过命令缓冲区将GPU命令发送给GPU进程执行。GPU命令携带的简单参数也通过命令缓冲区发送给GPU进程,但复杂参数,例如纹理数据,有可能太大,以致于命令缓冲区无法容纳,因此要通过其它机制传递给GPU进程。本文接下来就主要以纹理数据上传为例,分析WebGL端、Render端和Browser端将GPU命令数据传递给GPU进程的机制。
WebGL端、Render端和Browser端将GPU命令附携带的大数据传递给GPU进程的基本思路通过其它的共享缓冲区进行传递。也就是先将GPU命令携带的大数据写入到共享缓冲区中,然后再将GPU命令携带的大数据参数修改为前面已经写入了数据的共享缓冲区的ID。GPU进程通过这个ID就可以找到对应的共享缓冲区,进而得到真正的GPU命令数据,最后就可以执行对应的OpenGL函数。
有些操作系统对能创建的共享内存的大小有限制。当一个GPU命令携带的数据的大小超过这个限制的时候,那么就不能通过一块共享缓冲区一次性将数据传递给GPU进程。这时候就需要对数据进行分块传输。有些GPU命令的数据本身就支持分块传输,这种情况的处理就比较简单。例如,对于纹理上传命令gles2::cmds::TexImage2D,可以通过gles2::
您可能关注的文档
最近下载
- 变频器技术考试题及答案.docx VIP
- 重症患者的肠内营养护理.pptx VIP
- 输液泵操作评分标准.doc VIP
- 青少年焦虑症护理查房.pptx VIP
- 试析《三国演义》在日本动漫中的传播与接受.pdf VIP
- 从吉川英治《三国志》看《三国演义》在日本的传播与接受The Spread and Reception of the Romance of the “Three Kingdoms” in Japan from the “Three Kingdoms” by Yoshikawa Eiji-来源:现代语言学(第2022002期)-汉斯出版社.pdf VIP
- 与总承包单位协调配合措施方案.docx VIP
- 《清静经》全文及译文.pdf VIP
- 与总承包单位协调配合措施方案.docx VIP
- 线线角、线面角、面面角专题.pdf VIP
原创力文档

文档评论(0)