のユーザーイン/アウトの場所がSPIR-Vに必要です。glslValidator.exeを使用してシェイダー用のSPIR-Vファイルを生成したいときはいつでも最新のVulkan SDKをインストールしました。次のエラーにVIRKAN 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ノーマル;ロケーション修飾子がありません。 – Ekzuzy
それは問題を解決しました、よく私は古い古いOpenGLシェーダに使用されていましたが、当初はvulkanで許可されていました – BulBul