[Mesa-dev] [PATCH v2 11/23] glsl: Add support for EmitStreamVertex() and EndStreamPrimitive().

Iago Toral itoral at igalia.com
Thu Jun 19 23:21:47 PDT 2014


On Thu, 2014-06-19 at 15:18 -0700, Ian Romanick wrote:
> On 06/19/2014 03:37 AM, Iago Toral wrote:
> > After having a quick look at ir_to_mesa.cpp and st_glsl_to_tgsi.cpp I
> > have some comments and questions about this:
> > 
> > On Wed, 2014-06-18 at 13:31 -0700, Ian Romanick wrote:
> >> This patch should be split into several patches:
> >>
> >> 1. Modify ir_emit_vertex to have a stream.  This patch also needs to update
> >> ir_to_mesa.cpp and st_glsl_to_tgsi.cpp.
> > 
> > ir_to_mesa.cpp does not currently implement support for emit_vertex and
> > end_primitive at all:
> > 
> > void
> > ir_to_mesa_visitor::visit(ir_emit_vertex *)
> > {
> >    assert(!"Geometry shaders not supported.");
> > }
> > 
> > void
> > ir_to_mesa_visitor::visit(ir_end_primitive *)
> > {
> >    assert(!"Geometry shaders not supported.");
> > }
> 
> But the methods with these signatures have been deleted from
> ir_hierarchical_visitor.  They (and the st_glsl_to_tgsi counterparts)
> need to be updated to be either visit_enter or visit_leave.  That's all. :)

Actually, both ir_to_mesa_visitor and glsl_to_tgsi_visitor inherit from
ir_visitor which is a separate class hierarchy from
ir_hierarchical_visitor and only has visit methods so it is unaffected
by my patch which only alters hierarchical visitors... so I think this
is okay as it is, right?

FWIW, both files are still building fine with my patch and I can
actually run geometry shaders that use EmitVertex() with
LIBGL_ALWAYS_SOFTWARE=1, which goes through the st_glsl_to_tgsi.cpp
path.

Iago



More information about the mesa-dev mailing list