[Mesa-dev] [PATCH 33/34] nv50/ir/nir: handle user clip planes for each emitted vertex

Ilia Mirkin imirkin at alum.mit.edu
Tue Mar 12 00:09:22 UTC 2019


On Mon, Mar 11, 2019 at 8:05 PM Karol Herbst <kherbst at redhat.com> wrote:
>
> v9: convert to C++ style comments
> Signed-off-by: Karol Herbst <kherbst at redhat.com>
> ---
>  src/gallium/drivers/nouveau/codegen/nv50_ir_from_nir.cpp | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_nir.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_nir.cpp
> index 627848a457f..fdc6eaf759a 100644
> --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_nir.cpp
> +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_nir.cpp
> @@ -1561,7 +1561,7 @@ 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 && info->io.genUserClip > 0)

What about TES? Did you mean && !TYPE_GEOMETRY perhaps?

>        handleUserClipPlanes();
>
>     // TODO: for non main function this needs to be a OP_RETURN
> @@ -1889,6 +1889,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 +2188,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;
> --
> 2.20.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list