Transform Feedback 引入

Transform Feedback首先是DirectX3D引入的,但在DirectX3D中它不叫TF, 而是叫Stream Output Stage. 它第一次被引入OpenGL是在2006年,但当时是以扩展的形式GL_EXT_transform_feedback引入的,它正式成为OpenGL Required Core Features是在OpenGL 3.0(2008), 在这之后,OpenGL 4.0, 4.2, 4.6又分别引入了一些TF相关的新特性。

Read more »

Talk About

  • OpenGL Extensions有哪些分类?
  • Conformant OpenGL implementation是什么?
  • OpenGL Extensions和OpenGL Versions有什么关系?
  • OpenGL Extensions和conformant OpenGL implementation有什么关系?
Read more »

Installation on the Ubuntu

除了安装 C++ 标准库实现 libstdc++-9, g++-9 这些软件包外,还要安装 g++

dpkg-deb --contents /var/cache/apt/archives/g++_4%3a9.3.0-1ubuntu2_amd64.deb

1
2
3
4
5
6
7
8
9
10
11
12
drwxr-xr-x root/root         0 2020-03-20 21:52 ./
drwxr-xr-x root/root 0 2020-03-20 21:52 ./usr/
drwxr-xr-x root/root 0 2020-03-20 21:52 ./usr/bin/
drwxr-xr-x root/root 0 2020-03-20 21:52 ./usr/share/
drwxr-xr-x root/root 0 2020-03-20 21:52 ./usr/share/doc/
drwxr-xr-x root/root 0 2020-03-20 21:52 ./usr/share/man/
drwxr-xr-x root/root 0 2020-03-20 21:52 ./usr/share/man/man1/
lrwxrwxrwx root/root 0 2020-03-20 21:52 ./usr/bin/g++ -> g++-9
lrwxrwxrwx root/root 0 2020-03-20 21:52 ./usr/bin/x86_64-linux-gnu-g++ -> g++-9
lrwxrwxrwx root/root 0 2020-03-20 21:52 ./usr/share/doc/g++ -> cpp
lrwxrwxrwx root/root 0 2020-03-20 21:52 ./usr/share/man/man1/g++.1.gz -> g++-9.1.gz
lrwxrwxrwx root/root 0 2020-03-20 21:52 ./usr/share/man/man1/x86_64-linux-gnu-g++.1.gz -> g++-9.1.gz

内置宏

编译器会预定义许多宏,尤其在交叉编译时,不同的工具链编译器会定义不同的宏。例如:

  • aarch64
  • __ARM_ARCH_7A
  • __ARM_ARCH_8A
Read more »

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_syncobjtimeline特性

旧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

参考

[0] DRM Maintainer Tools

Gallium Framework

引用 Mesa3D 官方文档的话,Gallium 本质上是一种应用程序接口,用于编写与设备基本无关的图形驱动程序。它提供了多个对象,以简单明了的方式封装了图形硬件的核心服务。据说,Gallium 的设计是借鉴了 DirectX。

Read more »

Shader Object

创建和使用Shader Object的API:

  • GLuint glCreateShader(GLenum shaderType);
  • void glShaderSource(GLuint shader, GLsizei count, const GLchar **string, const GLint *length);
  • void glCompileShader(GLunit shader);
Read more »

Vulkan 是一个低开销、跨平台的二维和三维图形与计算的应用程序接口,由 Khronos 在2015年在 GDC 上首次发布。它旨在提供高效能和更均衡的 CPU 和 GPU 占用,类似于 Direct3D 12 和 AMD Mantle。

在这里主要收集一些与 Vulkan 强相关的一些项目,便于 Vulkan 的学习和使用。

Read more »
0%