On Wednesday, October 21, 2015 12:44:31 PM Jason Ekstrand wrote: > v2: Add a uses_streams boolean > > --- > src/glsl/nir/glsl_to_nir.cpp | 4 ++++ > src/glsl/nir/nir.h | 12 ++++++++++++ > 2 files changed, 16 insertions(+) > > diff --git a/src/glsl/nir/glsl_to_nir.cpp b/src/glsl/nir/glsl_to_nir.cpp > index c9cdf35..9b50a93 100644 > --- a/src/glsl/nir/glsl_to_nir.cpp > +++ b/src/glsl/nir/glsl_to_nir.cpp > @@ -170,8 +170,12 @@ glsl_to_nir(const struct gl_shader_program *shader_prog, > > switch (stage) { > case MESA_SHADER_GEOMETRY: > + shader->info.gs.vertices_in = shader_prog->Geom.VerticesIn; > + shader->info.gs.output_primitive = sh->Geom.OutputType; > shader->info.gs.vertices_out = sh->Geom.VerticesOut; > shader->info.gs.invocations = sh->Geom.Invocations; > + shader->info.gs.uses_end_primitive = > shader_prog->Geom.UsesEndPrimitive; > + shader->info.gs.uses_streams = shader_prog->Geom.UsesStreams; > break; > > case MESA_SHADER_FRAGMENT: { > diff --git a/src/glsl/nir/nir.h b/src/glsl/nir/nir.h > index 2ab48fb..f65d44c 100644 > --- a/src/glsl/nir/nir.h > +++ b/src/glsl/nir/nir.h > @@ -1495,11 +1495,23 @@ typedef struct nir_shader_info { > > union { > struct { > + /** The number of vertices recieves per input primitive */ > + unsigned vertices_in; > + > + /** The output primitive type (GL enum value) */ > + unsigned output_primitive; > + > /** The maximum number of vertices the geometry shader might write. > */ > unsigned vertices_out; > > /** 1 .. MAX_GEOMETRY_SHADER_INVOCATIONS */ > unsigned invocations; > + > + /** Whether or not this shader uses EndPrimitive */ > + bool uses_end_primitive; > + > + /** Whether or not this shader uses non-zero streams */ > + bool uses_streams; > } gs; > > struct { >
Reviewed-by: Kenneth Graunke <kenn...@whitecape.org>
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev