summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Romanick <ian.d.romanick@intel.com>2017-10-13 16:17:40 -0700
committerIan Romanick <ian.d.romanick@intel.com>2018-03-29 14:16:13 -0700
commitb70a82cf9c7ab02be0487668aa471eef05fc6134 (patch)
tree48a97c48d435132291d10243e3eeda37c606d078
parenta255ec0f4fedefe2c20e5dd4b7a73bae73f98268 (diff)
glsl/spirv: Emit ir_emit_vertex and ir_end_primitiveemit-spirv
-rw-r--r--src/compiler/glsl/spirv_visitor.cpp16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/compiler/glsl/spirv_visitor.cpp b/src/compiler/glsl/spirv_visitor.cpp
index 3773c5aa38e..c229eee3869 100644
--- a/src/compiler/glsl/spirv_visitor.cpp
+++ b/src/compiler/glsl/spirv_visitor.cpp
@@ -915,17 +915,21 @@ spirv_visitor::visit(ir_loop_jump *ir)
}
void
-spirv_visitor::visit(ir_emit_vertex *)
+spirv_visitor::visit(ir_emit_vertex *ir)
{
- printf("can't handle some %s\n", __PRETTY_FUNCTION__);
- success = false;
+ if (ir->stream != NULL)
+ emit_SpvOpEmitStreamVertex(&prog->functions, get_result(ir->stream));
+ else
+ emit_SpvOpEmitVertex(&prog->functions);
}
void
-spirv_visitor::visit(ir_end_primitive *)
+spirv_visitor::visit(ir_end_primitive *ir)
{
- printf("can't handle some %s\n", __PRETTY_FUNCTION__);
- success = false;
+ if (ir->stream != NULL)
+ emit_SpvOpEndStreamPrimitive(&prog->functions, get_result(ir->stream));
+ else
+ emit_SpvOpEndPrimitive(&prog->functions);
}
void