мой фрагментный шейдер
#version 330
layout(std430, binding = 0) buffer TVertex
{
mediump vec4 vertex[];
};
приводит к
error: unrecognized layout identifier `binding'
Я использую SDL на Ubuntu с
SDL_GL_SetAttribute( SDL_GL_CONTEXT_MAJOR_VERSION, 3 );
SDL_GL_SetAttribute( SDL_GL_CONTEXT_MINOR_VERSION, 3 );
что дает мне
Mesa DRI Intel(R) HD Graphics 4400 (HSW GT2)
4.5 (Core Profile) Mesa 21.2.6
Что я делаю не так?
Установка точки привязки внутри шейдера поддерживается только начиная с версии 4.2, ваш шейдер должен использовать версию 3.3. Смотрите документы
Либо вы измените свою версию на #version 420
.
Или вы устанавливаете точку привязки внутри своего приложения с помощью
GLuint bindingPoint = 0;
glBindBufferBase(GL_SHADER_STORAGE_BUFFER, bindingPoint, bufferObject);