-1
上需要用户输入/输出的位置我在我的电脑上安装了最新的Vulkan SDK,每当我想通过glslValidator.exe为我的着色器生成SPIR-V文件时,返回以下错误SPIR-V在Vulkan 1.0.51.1 +
ERROR: Shader.vert:17: 'location' : SPIR-V requires location for user input/output
ERROR: 1 compilation errors. No code generated.
ERROR: Linking vertex stage: Missing entry point: Each stage requires one entry point
SPIR-V is not generated for failed compile or link
我发现自从更新1.0.51.1有一些可能会导致更改我的旧着色器失败
要求输入/输出在GL_KHR_vulkan_glsl(内部问题上的用户位置783)。
什么是解决此问题的正确/新方法?
顶点着色器
#version 450
#extension GL_ARB_separate_shader_objects : enable
layout(binding = 0)uniform UniformBufferObject {
mat4 model;
mat4 view;
mat4 proj;
} ubo;
layout(location = 0)in vec3 inPosition;
layout(location = 1)in vec3 inNormals;
layout(location = 2)in vec2 inTexCoord;
layout(location = 0)out vec3 fragColor;
layout(location = 1)out vec2 fragTexCoord;
out vec4 Normal;
out gl_PerVertex{
vec4 gl_Position;
};
void main()
{
gl_Position = ubo.proj * ubo.view * ubo.model * vec4 (inPosition, 1.0);
//fragColor = inColor;
fragTexCoord = inTexCoord;
Normal = ubo.proj * ubo.view * ubo.model * vec4 (inNormals, 1.0);
}
我没有改变任何我的着色器,他们曾经从LunarG的SDK版本1.0.48.0工作,我更新了我的帖子,你可以看到我的顶点着色器,它非常简单直接 – BulBul
带“out vec4 Normal;“缺少位置限定符。 – Ekzuzy
它解决了这个问题,以及我用于良好的旧的OpenGL着色器,最初它允许在vulkan,无论如何感谢您的帮助 – BulBul