OpenGL Compute Shader не работает на ноутбуке - PullRequest
0 голосов
/ 28 апреля 2020

Я пишу программу, в которой интенсивно используются вычислительные шейдеры в OpenGL (в Java с использованием JOGL), которая отлично работает на моем настольном компьютере, но не связывает шейдеры на моем ноутбуке.

В настоящее время у меня есть настольная система под управлением Ubuntu 18.04LTS с GTX 1060, где она работает без проблем, однако при работе на моем ноутбуке под управлением Ubuntu 18.04LTS, GTX 1650 шейдер не связывается должным образом и печатает сообщение об ошибке: uncompiled / unspecialized shader "в журнале программ шейдеров.

Я подумал, что это могут быть проблемы с драйверами, и попытался переключиться на проприетарные драйверы 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

1 Ответ

0 голосов
/ 28 апреля 2020

См. Комментарии, проблема в компиляции шейдеров, которая была несовместима между устройствами.

...