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

Eduardo Lima Mitev elima at igalia.com
Mon Jul 27 14:29:34 PDT 2015


On 07/25/2015 01:19 AM, Jason Ekstrand wrote:
> This patch needs to go *before* patch 71 so things continue to build.
> 

Both patches build for me in the current order, and also build fine
changing order as you propose. Are you sure it is patch 71 and 72 the
ones conflicting?

> 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