From: Karol Herbst Date: Sat, 30 Jun 2018 02:58:30 +0000 (+0200) Subject: nv50/ir: handle clipvertex for geom and tess shaders as well X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c7726fbfa5f3370baada02f2c6c58f7689809631;p=mesa.git nv50/ir: handle clipvertex for geom and tess shaders as well this will be needed for compatibility profiles v2: handle tess shaders Reviewed-by: Ilia Mirkin Signed-off-by: Karol Herbst --- diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp index c92acc996c4..2f9bcc1f34b 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp @@ -3613,6 +3613,9 @@ Converter::handleInstruction(const struct tgsi_full_instruction *insn) info->out[info->io.viewportId].slot[0] * 4); mkStore(OP_EXPORT, TYPE_U32, vpSym, NULL, viewport); } + /* handle user clip planes for each emitted vertex */ + if (info->io.genUserClip > 0) + handleUserClipPlanes(); /* fallthrough */ case TGSI_OPCODE_ENDPRIM: { @@ -3787,7 +3790,9 @@ Converter::handleInstruction(const struct tgsi_full_instruction *insn) setPosition(epilogue, true); if (prog->getType() == Program::TYPE_FRAGMENT) exportOutputs(); - if (info->io.genUserClip > 0) + if ((prog->getType() == Program::TYPE_VERTEX || + prog->getType() == Program::TYPE_TESSELLATION_EVAL + ) && info->io.genUserClip > 0) handleUserClipPlanes(); mkOp(OP_EXIT, TYPE_NONE, NULL)->terminator = 1; }