[Mesa-dev] [PATCH v2 72/78] i965/gs/gen6: Refactor ir_emit_vertex and ir_end_primitive for gen6

Jason Ekstrand jason at jlekstrand.net
Fri Jul 24 16:19:26 PDT 2015


This patch needs to go *before* patch 71 so things continue to build.

On Thu, Jul 23, 2015 at 3:17 AM, Eduardo Lima Mitev <elima at igalia.com> wrote:
> From: Samuel Iglesias Gonsalvez <siglesias at igalia.com>
>
> So the implementation is independent of GLSL IR and the visit methods of the
> gen6 GS visitor. This way we will be able to reuse that implementation directly
> from the NIR vec4 backend.
>
> Signed-off-by: Samuel Iglesias Gonsalvez <siglesias at igalia.com>
> ---
>  src/mesa/drivers/dri/i965/gen6_gs_visitor.cpp | 13 ++++++++++++-
>  src/mesa/drivers/dri/i965/gen6_gs_visitor.h   |  2 ++
>  2 files changed, 14 insertions(+), 1 deletion(-)
>
> diff --git a/src/mesa/drivers/dri/i965/gen6_gs_visitor.cpp b/src/mesa/drivers/dri/i965/gen6_gs_visitor.cpp
> index 782687a..68e443d 100644
> --- a/src/mesa/drivers/dri/i965/gen6_gs_visitor.cpp
> +++ b/src/mesa/drivers/dri/i965/gen6_gs_visitor.cpp
> @@ -147,7 +147,12 @@ gen6_gs_visitor::emit_prolog()
>  }
>
>  void
> -gen6_gs_visitor::visit(ir_emit_vertex *)
> +gen6_gs_visitor::visit(ir_emit_vertex *ir)
> +{
> +   gs_emit_vertex(ir->stream_id());
> +}
> +void
> +gen6_gs_visitor::gs_emit_vertex(int stream_id)
>  {
>     this->current_annotation = "gen6 emit vertex";
>     /* Honor max_vertex layout indication in geometry shader by ignoring any
> @@ -224,6 +229,12 @@ gen6_gs_visitor::visit(ir_emit_vertex *)
>  void
>  gen6_gs_visitor::visit(ir_end_primitive *)
>  {
> +   gs_end_primitive();
> +}
> +
> +void
> +gen6_gs_visitor::gs_end_primitive()
> +{
>     this->current_annotation = "gen6 end primitive";
>     /* Calling EndPrimitive() is optional for point output. In this case we set
>      * the PrimEnd flag when we process EmitVertex().
> diff --git a/src/mesa/drivers/dri/i965/gen6_gs_visitor.h b/src/mesa/drivers/dri/i965/gen6_gs_visitor.h
> index 862d0ea..4cf9489 100644
> --- a/src/mesa/drivers/dri/i965/gen6_gs_visitor.h
> +++ b/src/mesa/drivers/dri/i965/gen6_gs_visitor.h
> @@ -51,6 +51,8 @@ protected:
>     virtual void emit_thread_end();
>     virtual void visit(ir_emit_vertex *);
>     virtual void visit(ir_end_primitive *);
> +   virtual void gs_emit_vertex(int stream_id);
> +   virtual void gs_end_primitive();
>     virtual void emit_urb_write_header(int mrf);
>     virtual void emit_urb_write_opcode(bool complete,
>                                        int base_mrf,
> --
> 2.1.4
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list