[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
Mon Jul 27 14:33:05 PDT 2015
On Mon, Jul 27, 2015 at 2:29 PM, Eduardo Lima Mitev <elima at igalia.com> wrote:
> 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?
I merely noticed that you implement gs_emit_vertex and
gs_end_primitive in this patch but use them in 71 to implement the NIR
intrinsics. I didn't actually build-test it.
--Jason
>> 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