
获得徽章 0
- 看了一些文章,概述显卡、帧缓存、显存、GPU、opengl的,听的一头雾水。我猜测可能是这样,显卡是一个硬件设备,里边包含有电风扇,显存,GPU。这个GPU是图形运算器,它从显卡里的显存中取出来元数据,进行加工运算,光栅化,再把结果保存在显卡的显存中。帧缓存是linux中抽象的一个显示设备,叫framebuffer,具体“/dev/fbXX”(XX是数字)。那么硬件层面上显示控制器接下来把显存中的光栅化后的数据传送给显示器。而帧缓存是软件层面上的抽象,linux可以靠内存映射mmap的方式对它进行访问。对于手机android来说,没有独立显卡,所以呢,显存是从内存中划出来的一部分。Opengl是行业标准,各厂商有自己的实现,在android设备上,opengl负责把图元数据传送到这个从内存划出来的显存上,然后通过靠近CPU的GPU来计算它,把计算结果“光栅化”在存储在显存上,然后linux把这个结果传给帧缓存framebuffer。这个android上的显存的内存分配,是靠gralloc完成的。以上猜测对吗?展开评论点赞
- 看了一些文章,概述显卡、帧缓存、显存、GPU、opengl的,听的一头雾水。我猜测可能是这样,显卡是一个硬件设备,里边包含有电风扇,显存,GPU。这个GPU是图形运算器,它从显卡里的显存中取出来元数据,进行加工运算,光栅化,再把结果保存在显卡的显存中。帧缓存是linux中抽象的一个显示设备,叫framebuffer,具体“/dev/fbXX”(XX是数字)。那么硬件层面给上显示控制器接下来把显存中的光栅化后的数据传送给显示器。而帧缓存是软件层面上的抽象,linux可以靠内存映射mmap的方式对它进行访问。对于手机android来说,没有独立显卡,所以呢,显存是从内存中划出来的一部分。Opengl是行业标准,各厂商有自己的实现,在android设备上,opengl负责把图元数据传送到这个从内存划出来的显存上,然后通过靠近CPU的GPU来计算它,把计算结果“光栅化”在存储在显存上,然后linux把这个结果传给帧缓存framebuffer。这个android上的显存的内存分配“allocate”,是靠gralloc完成的。以上猜测对吗?展开评论点赞
- Even the biggest failure, even the worst, most intractable mistake, beats the hell out of never trying.评论点赞