linux - ARB组件如何组装

标签 linux opengl assembly gpu

我刚刚阅读了这份文档:this documentation

我只是向下滚动然后停在具有以下代码的示例程序#1:

!!ARBvp1.0
ATTRIB pos = vertex.position;
PARAM mat[4] = { state.matrix.mvp };
# Transform by concatenation of the
# MODELVIEW and PROJECTION matrices.
DP4 result.position.x, mat[0], pos;
DP4 result.position.y, mat[1], pos;
DP4 result.position.z, mat[2], pos;
DP4 result.position.w, mat[3], pos;
# Pass the primary color through w/o lighting.
MOV result.color, vertex.color;
END

然后我才意识到“把这段代码放在哪里?”。 所以我搜索了“How to assemble ARB assembly?”或“如何使用 ARB 程序集?”。绝对找不到任何东西
最后我在这里有问题:

  1. ARB 汇编的文件扩展名是什么?
  2. 如何将这段代码组装成可执行文件?

我还使用了 Linux Mint 18.3 Cinnamon 64 位

最佳答案

  1. Which file extension is for ARB assembly?

没有,随便用。

  1. How to assemble this code and make into executable file?

你不知道。

ARB“汇编”语言用于 OpenGL 着色器,它们不是您在这里暗示的那种意义上的任何可执行文件。这些是 shaders它们在渲染管道的上下文中在 GPU 上运行,而不是可以直接执行的单个程序。

通常,您需要一个支持 GL_ARB_vertex_program 的 OpenGL 实现或 GL_ARB_fragment_program GL 扩展(从来不是任何 OpenGL 核心版本的一部分),然后驱动程序将为正在使用的特定 GPU 创建一个二进制文件。

ARB 组件着色器已经完全过时(至少从最终用户的角度来看,nvidia 有时仍然使用自己的扩展方言作为内部中间表示,但这并没有真正改变大局),并且已被替换通过OpenGL Shading Language (GLSL) (自 2004 年 2.0 版以来,它核心 OpenGL 的一部分!)。

关于linux - ARB组件如何组装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55210766/

相关文章:

linux - 未找到 Ubuntu Xenial upstart 服务

c - 接受失败并返回 EFAULT

c++ - 如何在相机类中添加胶卷

c - printf 在内部是如何工作的?

c - C Windows 代码中的 Asm bswap

linux - Debian 11 (bullseye) 上的 "The repository does not have a Release file"错误,即使存储库有 Release 文件

linux - 如何格式化我的 grep 输出以在行尾显示行号以及命中数?

macos - Carbon 窗口(OS Lion、Mono)上的 OpenGL 3.2 上下文

memory - 确定可用的视频内存

linux - 端口映射 I/O 地址空间的位置