nir/info: Add more information about geometry shaders

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
Jason Ekstrand 2015-10-20 16:35:44 -07:00
parent 3c5d24363a
commit 4eb84a03be
2 changed files with 16 additions and 0 deletions

View file

@ -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: {

View file

@ -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 {