Я пытаюсь использовать фрагментный шейдер на устройстве Galaxy Tab 10.1, и он просто вылетает при моем вызове glCompileShader.
Я использую OpenGL ES 2.
Исходный код шейдера немного длинен (70 строк ... не так много), но я знаю, что он не слишком длинный, потому что если я просто изменю последнюю строку, чтобы вернуть постоянный цвет
void main(void)
{
float r, g, b;
... // Code to compute values for r,g,b
gl_FragColor=vec4(r,g,b,1.0); line to be replaced
}
от
gl_FragColor=vec4(0.0, 1.0, 1.0, 1.0);
шейдер работает отлично.
Кроме того, немодифицированная версия шейдера отлично работает на Samsung Galaxy S.
Если бы это приводило к некоторой ошибке компиляции, я бы знал, что не так, но просто сбой во время компиляции: это сбивает с толку.
Спасибо за вашу помощь.
Изменить .:
При замене строки весь оставшийся код шейдера оптимизируется и, вероятно, удаляется компилятором. Таким образом, сбой, вероятно, вызван другой строкой кода, скомпилированной ... Но сбой ... Кто-нибудь испытывал это раньше?