mesa 概述

技术关键词:mesa、OpenGL、dri、gpu、kmd、xsever

目录

一、mesa概述

二、mesa架构

1.  架构设计

2. 模块划分

三、mesa与linux图形系统中的其他模块的关系

四、mesa的编译

五、链接资源

总结


一、mesa概述

        mesa是OpenGL、OpenGL ES、Vulkan、OpenCL的一个开源实现(Open source implementations of OpenGLOpenGL ESVulkanOpenCL, and more)。对于了解和研究图形渲染与并行计算实现的科研人员和从业者,mesa是一个较好的研究资料。

        mesa是基于linux内核的OS上所使用的OpenGL的标准实现。计算机领域的国产化生态中,国产OS的内核都是基于linux,因此国产GPU的OpenGL的支持都是通过mesa。在计算机核心技术(cpu-os-gpu-safe)国产化的时代大浪潮下,与mesa相关的研究与应用呈现出一定的就业机会。

        本专栏专注于mesa的OpenGL实现,其他方面不做细致分析。

二、mesa架构

1.  架构设计

        随着mesa的版本的迭代,mesa的整个架构和模块设计已经相对完善,本专栏基于较新的22.*的版本,基于gallium架构的实现进行分析。

        gallium架构实现了API、 OS、 HW的分层设计,每层通过稳定接口对接,能够更容易的适配不同的OS和HW,但对初接触者,更复杂了。virt gl 使用gallium架构的整体分层设计如下:

 采用gallium架构的分层设计图(本图来自mesa架构演进

2. 模块划分

        从大的划分看,可以划分为前端和后端:前端包括libGL、libEGL、libgbm、libglapi等,后端为libgallium_dri。具体的模块关系概略图(每个模块的详略图请看后续的内容)如下:

mesa 模块及关系图

三、mesa与linux图形系统中的其他模块的关系

linux的图形显示系统的软件组成可以概括为:xserver、应用层app(如2D\3D应用软件)、mesa、kmd(kernel mode driver)。mesa与其他三部分的关系如下:

 linux 系统软件模块关系图

四、mesa的编译

        mesa库使用了meson和ninja来构建。使用ptyhon3.* 的pip3来安装meson,ninja下载源码构建即可。

五、链接资源

mesa官网

mesa架构演进

ninja官网


总结

        本文从mesa是什么、gallium架构简述了mesa。后续会针对本文图片的内容进行分解,详细分析mesa实现渲染和送显的实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值