mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 05:18:08 +02:00
nv50/ir/nir: handle user clip planes for each emitted vertex
v9: convert to C++ style comments
handle for tess eval shaders as well
Signed-off-by: Karol Herbst <kherbst@redhat.com>
This commit is contained in:
parent
b866012f7b
commit
4ded1cdef9
1 changed files with 7 additions and 1 deletions
|
|
@ -1561,7 +1561,9 @@ Converter::visit(nir_function *function)
|
|||
bb->cfg.attach(&exit->cfg, Graph::Edge::TREE);
|
||||
setPosition(exit, true);
|
||||
|
||||
if (info->io.genUserClip > 0)
|
||||
if ((prog->getType() == Program::TYPE_VERTEX ||
|
||||
prog->getType() == Program::TYPE_TESSELLATION_EVAL)
|
||||
&& info->io.genUserClip > 0)
|
||||
handleUserClipPlanes();
|
||||
|
||||
// TODO: for non main function this needs to be a OP_RETURN
|
||||
|
|
@ -1889,6 +1891,7 @@ Converter::visit(nir_intrinsic_instr *insn)
|
|||
}
|
||||
break;
|
||||
}
|
||||
case Program::TYPE_GEOMETRY:
|
||||
case Program::TYPE_VERTEX: {
|
||||
if (info->io.genUserClip > 0 && idx == clipVertexOutput) {
|
||||
mkMov(clipVtx[i], src);
|
||||
|
|
@ -2187,6 +2190,9 @@ Converter::visit(nir_intrinsic_instr *insn)
|
|||
break;
|
||||
}
|
||||
case nir_intrinsic_emit_vertex:
|
||||
if (info->io.genUserClip > 0)
|
||||
handleUserClipPlanes();
|
||||
// fallthrough
|
||||
case nir_intrinsic_end_primitive: {
|
||||
uint32_t idx = nir_intrinsic_stream_id(insn);
|
||||
mkOp1(getOperation(op), TYPE_U32, NULL, mkImm(idx))->fixed = 1;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue