Загрузка SPIR-V в OpenGL не удалась

Я использую Ubuntu 16.4 с драйвером NVIDIA 384.111, и у меня есть проблема, аналогичная этой.

Я скомпилировал минимальный вершинный шейдер GLSL (один вход и пустую основную функцию) для SPIR-V так же, как описано в связанном обсуждении. Когда я загружаю и специализирую его, специализация не успешна, и информационный журнал содержит только случайные данные.

Я решил опубликовать этот вопрос, потому что обсуждение, упомянутое в связанном комментарии, больше не существует и прошло более года. Я не смог найти других ссылок на эту проблему здесь или на форумах разработчиков NVIDIA.

Есть ли какая-либо ошибка, которая может законно привести к повреждению информационного журнала, или это ошибка драйвера? Почему-то кажется маловероятным, что этот вопрос присутствует уже более года, и никто не обсуждал его.

Мой GLSL-шейдер выглядит так:

#version 330  
layout(location = 0) in  vec3 vPosition; 

void main() {
}

Я использовал следующую команду для компиляции кода в SPIR-V:

./glslangValidator -G quad.vert -o quad.vert.spv

Следующий код загружает шейдер:

glShaderBinary(1, &shader, GL_SHADER_BINARY_FORMAT_SPIR_V_ARB, shader_source.data(), (GLsizei)shader_source.size());
glSpecializeShader(shader, "main", 0, nullptr, nullptr);

0 ответов

Другие вопросы по тегам