i965/nir/gs: Implement EmitVertex and EndPrimitive

Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
This commit is contained in:
Iago Toral Quiroga 2015-06-29 14:08:11 +02:00 committed by Jason Ekstrand
parent 551af29d2d
commit 1836201fde
2 changed files with 23 additions and 0 deletions

View file

@ -65,4 +65,26 @@ vec4_gs_visitor::nir_setup_inputs(nir_shader *shader)
}
}
}
void
vec4_gs_visitor::nir_emit_intrinsic(nir_intrinsic_instr *instr)
{
dst_reg dest;
src_reg src;
switch (instr->intrinsic) {
case nir_intrinsic_emit_vertex: {
int stream_id = instr->const_index[0];
gs_emit_vertex(stream_id);
break;
}
case nir_intrinsic_end_primitive:
gs_end_primitive();
break;
default:
vec4_visitor::nir_emit_intrinsic(instr);
}
}
}

View file

@ -91,6 +91,7 @@ protected:
virtual void visit(ir_end_primitive *);
virtual void gs_emit_vertex(int stream_id);
virtual void gs_end_primitive();
virtual void nir_emit_intrinsic(nir_intrinsic_instr *instr);
protected:
int setup_varying_inputs(int payload_reg, int *attribute_map,