OpenGL 计算着色器无法在笔记本电脑上链接



我正在编写一个程序,该程序大量使用OpenGL中的计算着色器(在Java中使用JOGL(,它在我的台式计算机上运行良好,但不会链接我笔记本电脑上的着色器。

我目前有一个桌面系统,运行带有GTX 1060的Ubuntu 18.04LTS,在那里它运行没有问题,但是当在我的笔记本电脑上运行时,运行Ubuntu 18.04LTSGTX 1650,着色器无法正确链接,并在着色器程序日志中打印"错误:与未编译/未专用着色器链接"。

我认为这可能是驱动程序问题,并尝试切换到专有的nVidia驱动程序,但没有成功。两个平台都在运行相同的Open jdk 8。

注意:图形着色器按预期工作,只有在尝试链接计算着色器时才会发生,即使在使用相同的方法读取源时也是如此,所以我相信这没有问题。

将着色器链接到程序时出现问题:

int computeShader = gl.glCreateShader(GL4.GL_COMPUTE_SHADER); //Create compute shader
gl.glShaderSource(computeShader, computeShaderSrc.length, computeShaderSrc, null);
gl.glCompileShader(computeShader);
int shaderProg = gl.glCreateProgram(); //Create shader program and attach compute shader
printProgramLog(shaderProg);
System.out.println("Created shadern");
System.out.println("Attaching shader");
gl.glAttachShader(shaderProg, computeShader);
printProgramLog(shaderProg);
System.out.println("Attached shadern");
System.out.println("Linking shader");
gl.glLinkProgram(shaderProg);
printProgramLog(shaderProg);
System.out.println("Linked Shadern");
gl.glDeleteShader(computeShader);

该输出:

Created shader
Attaching shader
Attached shader
Linking shader
Program Info Log: 
error: linking with uncompiled/unspecialized shader
Linked Shader

请参阅注释,着色器编译中的问题在设备之间不一致。

最新更新