Название: QT4.7 & QGLFormat::CoreProfile & shaders Отправлено: saraksh от Декабрь 18, 2010, 20:50 QT 4.7 на Linux, nvidia GTX 460 с поддержкой OpenGl 4.1 и родным нвидивским драйвером.
Если QGLFormat ставлю format.setProfile(QGLFormat::CoreProfile) и версию OpenGl выше 3.1 (например format.setVersion(3.2), или format.setVersion(4.1)) шедеры не компилятся. Если ставлю CompatibilityProfile, или версию 3.1 и ниже, то компилятся. Например такой вертех шейдер - проще некуда: "in vec4 vrtx;\n" "void main(void)\n" "{\n" "gl_Position = vrtx;\n" "gl_PointSize = 2;\n" "}\n")};. Подскажите пожалуйста куда копать, чтобы заставить работать с CoreProfile и версией 4.1 С уважением, S. Название: Re: QT4.7 & QGLFormat::CoreProfile & shaders Отправлено: saraksh от Декабрь 23, 2010, 01:13 В добавок к вышеизложенному:
format().hasOpenGL() - выдает true context()->isValid() - выдает true А shader->hasOpenGLShaders(QGLShader::Vertex, context) - выдает false Ну как так может быть, что и формат ок, и контекст валидный, и драйвер с поддержкой Opengl 4.1, а шедеры (даже Vertex!!) не поддерживаются???!!! Я уже обгуглился, а ответа не нашел :-((( Название: Re: QT4.7 & QGLFormat::CoreProfile & shaders Отправлено: alexman от Декабрь 23, 2010, 09:24 QGLShader, QGLShaderProgram
Название: Re: QT4.7 & QGLFormat::CoreProfile & shaders Отправлено: saraksh от Декабрь 23, 2010, 15:00 QGLShader, QGLShaderProgram QGLShader и отказывается компилится, или Вы что-то другое имели в виду? Название: Re: QT4.7 & QGLFormat::CoreProfile & shaders Отправлено: xop от Декабрь 24, 2010, 14:11 Эмм, а есть возможность посмотреть какие ошибки компиляции выдает драйвер? Еще не факт, что Qt-шная обертка безбажная, может имеет смысл попробовать заюзать например glew и компилять командами GL.
Еще возможно имеет смысл попробовать в шейдере первой строчкой указывать версию. Например #version 400. Или #version 330. Или 140 (она как раз соответствует OpenGL 3.1). Вообще это хорошим тоном считается :) Название: Re: QT4.7 & QGLFormat::CoreProfile & shaders Отправлено: saraksh от Декабрь 25, 2010, 15:29 Так и делаю:
"#version 410 core\n" "in vec4 vrtx;\n" "uniform mat4 matrix;\n" "void main(void)\n" "{\n" "gl_Position = matrix * vrtx;\n" "gl_PointSize = 4.0;\n" "}\n" Если явно задавать QGLFormat 4.1 и CoreProfile, то shader->hasOpenGLShaders ругается, что поддержки шедеров нету. Никаких. Название: Re: QT4.7 & QGLFormat::CoreProfile & shaders Отправлено: xop от Декабрь 27, 2010, 15:44 Ну, тут только смотреть в сорцы Qt. Или работать напрямую с командами GL.
|