В настоящее время я пытаюсь изучить программирование с/для Vulkan на основе (вероятно известного) учебника, который можно найти здесь: https://vulkan-tutorial.com/
Я нахожусь в разделе, описывающем, как компилировать шейдеры (эта часть: https://vulkan-tutorial.com/en/Drawing_a_triangle/Graphics_pipeline_basics/Shader_modules)
По сути, я пытаюсь просто скомпилировать данный пример для вершинного шейдера, используя компилятор glsl из VulkanSDK (кстати, я использую Linux.) Код выглядит следующим образом (тот же код, что и в руководстве):
#version 450
layout(location = 0) out vec3 fragColor;
vec2 positions[3] = vec2[](
vec2(0.0, -0.5),
vec2(0.5, 0.5),
vec2(-0.5, 0.5)
);
vec3 colors[3] = vec3[](
vec3(1.0, 0.0, 0.0),
vec3(0.0, 1.0, 0.0),
vec3(0.0, 0.0, 1.0)
);
void main() {
gl_Position = vec4(positions[gl_VertexIndex], 0.0, 1.0);
fragColor = colors[gl_VertexIndex];
}
когда я пытаюсь скомпилировать с помощью этой команды:
glslc shader.vert - o vert.spv
Я получаю эту ошибку:
glslc: error: linking multiple files is not supported yet. Use -c to compile files individually.
Я немного сбит с толку, потому что я ничего не менял в руководстве и ожидал, что оно просто сработает, и в настоящее время я недостаточно понимаю, чтобы решить проблему самостоятельно.
Используйте glslc shader.vert -o vert.spv
вместо glslc shader.vert - o vert.spv
при компиляции шейдера.
Ох, черт… извини, это была чушь. Спасибо!