diff options
author | Bryan Cain <[email protected]> | 2013-02-15 09:26:35 -0600 |
---|---|---|
committer | Paul Berry <[email protected]> | 2013-08-01 20:20:16 -0700 |
commit | ae6eba3e32a142665d2ae6e15c9122d3201c0b5d (patch) | |
tree | 924e3137d87fb4f2cd8878dd5d87399ae8b9e026 /src/mesa/drivers | |
parent | c6be77ee6fe27233f42e98e50002c4b0bdc02913 (diff) |
glsl: add ir_emit_vertex and ir_end_primitive instruction types
These correspond to the EmitVertex and EndPrimitive functions in GLSL.
v2 (Paul Berry <[email protected]>): Add stub implementations of
new pure visitor functions to i965's vec4_visitor and fs_visitor
classes.
v3 (Paul Berry <[email protected]>): Rename classes to be more
consistent with the names used in the GL spec.
Reviewed-by: Ian Romanick <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/mesa/drivers')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_fs.h | 2 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | 12 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_vec4.h | 2 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp | 12 |
4 files changed, 28 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs.h b/src/mesa/drivers/dri/i965/brw_fs.h index 0645fb75a78..370ab6c3386 100644 --- a/src/mesa/drivers/dri/i965/brw_fs.h +++ b/src/mesa/drivers/dri/i965/brw_fs.h @@ -238,6 +238,8 @@ public: void visit(ir_call *ir); void visit(ir_function *ir); void visit(ir_function_signature *ir); + void visit(ir_emit_vertex *); + void visit(ir_end_primitive *); void swizzle_result(ir_texture *ir, fs_reg orig_val, int sampler); diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp index 15d1c6a6985..ee7728cb6ec 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp @@ -1991,6 +1991,18 @@ fs_visitor::visit(ir_function_signature *ir) (void)ir; } +void +fs_visitor::visit(ir_emit_vertex *) +{ + assert(!"not reached"); +} + +void +fs_visitor::visit(ir_end_primitive *) +{ + assert(!"not reached"); +} + fs_inst * fs_visitor::emit(fs_inst inst) { diff --git a/src/mesa/drivers/dri/i965/brw_vec4.h b/src/mesa/drivers/dri/i965/brw_vec4.h index 407d8b60485..3313a635f38 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4.h +++ b/src/mesa/drivers/dri/i965/brw_vec4.h @@ -283,6 +283,8 @@ public: virtual void visit(ir_discard *); virtual void visit(ir_texture *); virtual void visit(ir_if *); + virtual void visit(ir_emit_vertex *); + virtual void visit(ir_end_primitive *); /*@}*/ src_reg result; diff --git a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp index 525485048cf..8d4a5d42dfc 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp +++ b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp @@ -2582,6 +2582,18 @@ vec4_visitor::visit(ir_if *ir) } void +vec4_visitor::visit(ir_emit_vertex *) +{ + assert(!"not reached"); +} + +void +vec4_visitor::visit(ir_end_primitive *) +{ + assert(!"not reached"); +} + +void vec4_visitor::emit_ndc_computation() { /* Get the position */ |