OpenGL Compute Shader无法在笔记本电脑上链接

问题描述 投票:0回答:1

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

我目前有一个台式机系统,运行带有GTX 1060的Ubuntu 18.04LTS,在该系统上运行没有问题,但是,在我的笔记本电脑上运行,运行Ubuntu 18.04LTS,GTX 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 shader\n");

        System.out.println("Attaching shader");
        gl.glAttachShader(shaderProg, computeShader);
        printProgramLog(shaderProg);
        System.out.println("Attached shader\n");

        System.out.println("Linking shader");
        gl.glLinkProgram(shaderProg);
        printProgramLog(shaderProg);
        System.out.println("Linked Shader\n");

        gl.glDeleteShader(computeShader);

此输出:

Created shader

Attaching shader
Attached shader

Linking shader
Program Info Log: 
error: linking with uncompiled/unspecialized shader
Linked Shader
java opengl shader jogl compute-shader
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.