#version 440 #extension GL_EXT_multiview : require // For HLSL, Shader Model 6.1 or higher is needed to transpile this. // // For OpenGL we'd need layout(num_views = 2) in; but that's not a thing with // Vulkan so will rather rely on QShaderBaker/qsb passing the view count to // SPIRV-Cross which then inserts the num_views line to the OpenGL-targeted GLSL // code. To do this, run qsb with --view-count 2 // // Metal is currently unknown. It probably needs some additional options in the // shader pipeline. Running with --msl 12 succeeds but the generated MSL code is // not multiview-capable. To be investigated. layout(location = 0) in vec4 pos; layout(std140, binding = 0) uniform buf { mat4 mvp[2]; }; void main() { gl_Position = mvp[gl_ViewIndex] * pos; }