我偶然发现了一个基本的 OpenGL 驱动程序错误,我不确定在哪里报告它们。
以下是驱动程序如何识别自己以及我们如何创建 RC:
OpenGL vendor: X.Org
OpenGL renderer: AMD CARRIZO (DRM 3.26.0, 4.18.0-13-generic, LLVM 7.0.0)
OpenGL version: 4.4 (Compatibility Profile) Mesa 18.2.2
v - using GL version 2.0 (core)
它的扩展列表中有 ARB_gpu_shader5,但没有 EXT_gpu_shader4。
此着色器无法编译
#version 120
#extension GL_EXT_gpu_shader4: enable
...
uniform usampler2D u_stencilTexture;
出现此错误:
interaction VFWARNING:CompileShader(glprogs/interaction.fs): FAILED
0:2(12): warning: extension `GL_EXT_gpu_shader4' unsupported in fragment shader
0:27(20): error: syntax error, unexpected NEW_IDENTIFIER, expecting '{'
所以我的问题是:如何获得带有 usampler 扩展的 120 版着色器,以在看似支持 Opengl-4.4 的 GPU/驱动程序上构建?
最好以跨平台、跨供应商的方式。
请注意,相同的着色器可以在 Linux 和 Windows 上的各种设备/驱动程序上正常编译。