#version 450 layout(location = 0) flat in uint SNORM8; layout(location = 1) flat in uint UNORM8; layout(location = 2) flat in uint SNORM16; layout(location = 3) flat in uint UNORM16; layout(location = 4) flat in vec4 FP32; layout(location = 0) out vec4 FP32Out; layout(location = 1) out uint UNORM8Out; layout(location = 2) out uint SNORM8Out; layout(location = 3) out uint UNORM16Out; layout(location = 4) out uint SNORM16Out; void main() { FP32Out = unpackUnorm4x8(UNORM8); FP32Out = unpackSnorm4x8(SNORM8); FP32Out.xy = unpackUnorm2x16(UNORM16); FP32Out.xy = unpackSnorm2x16(SNORM16); UNORM8Out = packUnorm4x8(FP32); SNORM8Out = packSnorm4x8(FP32); UNORM16Out = packUnorm2x16(FP32.xy); SNORM16Out = packSnorm2x16(FP32.zw); }