OpenGL Extensions和Version
GNU Compiler Collection - gcc/g++
了解 Linux DRM 子系统
DRM driver features
新DRM驱动的特性
- DRIVER_GEM
使用GEM内存管理器,所有新的驱动都应该支持。
- DRIVER_MODESET
支持Kernel Modesetting Interfaces
- DRIVER_RENDER
支持专门的渲染节点, 即**/dev/dri/renderD**
- DRIVER_ATOMIC
支持所有的Atomic Modesetting用户空间API
- DRIVER_SYNCOBJ
支持drm_syncobj, 用于渲染命令提交的显式同步。
- DRIVER_SYNCOBJ_TIMELINE
支持drm_syncobj的timeline特性
旧DRM驱动的特性
- DRIVER_USE_AGP
- DRIVER_LEGACY
- DRIVER_PCI_DMA
- DRIVER_SG
- DRIVER_HAVE_DMA
- DRIVER_HAVE_IRQ
- DRIVER_KMS_LEGACY_CONTEXT
内核 DRM 子系统是如何维护的
内核 DRM 子系统的代码仓库托管在cgit上,Upstream DRM Subsystem Repository, 这个仓库最主要的两个分支
-
drm-next
这个分支的补丁包括 DRM 核心和所有 GPU 驱动的新特性
-
drm-fixes
参考
Mesa Gallium 驱动框架
Gallium Framework
引用 Mesa3D 官方文档的话,Gallium 本质上是一种应用程序接口,用于编写与设备基本无关的图形驱动程序。它提供了多个对象,以简单明了的方式封装了图形硬件的核心服务。据说,Gallium 的设计是借鉴了 DirectX。
DRM Device
DRM Introduction
Direct Rendering Manager是Linux kernel中负责与GPU接口的子系统,但它不仅仅用在Linux, 它也会用在像OpenBSD的其它一些类UNIX系统。
OpenGL Program Object
Vulkan
Vulkan 是一个低开销、跨平台的二维和三维图形与计算的应用程序接口,由 Khronos 在2015年在 GDC 上首次发布。它旨在提供高效能和更均衡的 CPU 和 GPU 占用,类似于 Direct3D 12 和 AMD Mantle。
在这里主要收集一些与 Vulkan 强相关的一些项目,便于 Vulkan 的学习和使用。
glmark2 Benchmark
Something you should know about glmark2
- glmark2 的命令行参数格式
示例:
1 | glmark2 -b desktop:nframes=1000000:show-fps=true -b build:duration=100 |