#version 450
#pragma shader_stage(vertex)

layout (location = 0) out vec2 outUv;
layout (location = 1) out flat uint outPass;

layout( push_constant ) uniform PushBlock {
  uint pass;
  uint draw;
  uint aux;
} PushConstant;

void main() {
	outUv = vec2((gl_VertexIndex << 1) & 2, gl_VertexIndex & 2);
	outPass = PushConstant.pass;
	gl_Position = vec4(outUv * 2.0f + -1.0f, 0.0f, 1.0f);
}