5281d9997e
Metal is picky about interface matching. If the types don't match exactly, down to the number of vector components, Metal fails pipline compilation. To support pipelines where the number of components consumed by the fragment shader is less than that produced by the vertex shader, we have to fix up the fragment shader to accept all the components produced.
15 lines
306 B
GLSL
15 lines
306 B
GLSL
#version 450
|
|
|
|
#extension GL_AMD_gpu_shader_int16 : require
|
|
|
|
layout(location = 0) in int16_t a;
|
|
layout(location = 1) in ivec2 b;
|
|
layout(location = 2) in uint16_t c[2];
|
|
layout(location = 4) in uvec4 d[2];
|
|
|
|
void main()
|
|
{
|
|
gl_Position = vec4(float(int(a)), float(b.x), float(uint(c[1])), float(d[0].w));
|
|
}
|
|
|