uint64_t в glsl не поддерживается с Nvidia / AMD? - PullRequest
0 голосов
/ 26 января 2019

Я использую GTX 1050 на ноутбуке, последний драйвер NVidia 417 и использую OpenGL, довольный спецификацией

Language/Generator: C/C++
Specification: gl
APIs: gl=4.5
Profile: core
Extensions:
    GL_ARB_bindless_texture,
    GL_ARB_gpu_shader_int64
Loader: True
Local files: False
Omit khrplatform: False
Reproducible: False

, он компилируется, но когда glsl работает, он не работает.Я пробовал все дополнения для радости, все еще компилировать, но без шейдера.

Это с Nuklear GUI, где в части создания находится этот шейдер:

static const GLchar *fragment_shader =
        NK_SHADER_VERSION
        NK_SHADER_BINDLESS
        NK_SHADER_64BIT
        "precision mediump float;\n"
        "uniform uint64_t Texture;\n"
        "in vec2 Frag_UV;\n"
        "in vec4 Frag_Color;\n"
        "out vec4 Out_Color;\n"
        "void main(){\n"
        "   sampler2D smp = sampler2D(Texture);\n"
        "   Out_Color = Frag_Color * texture(smp, Frag_UV.st);\n"
        "}\n";

с определением:

#define NK_SHADER_VERSION "#version 450 core\n"
#define NK_SHADER_BINDLESS "#extension GL_ARB_bindless_texture : require\n"
#define NK_SHADER_64BIT "#extension GL_ARB_gpu_shader_int64 : require\n"

вывод ошибки 'GL_ARB_gpu_shader_int64' не поддерживается

Не знаю почему?это было проверено на AMD та же ошибка.

...