mesa: set gs shader_info metadata directly
authorTimothy Arceri <timothy.arceri@collabora.com>
Wed, 19 Oct 2016 00:53:33 +0000 (11:53 +1100)
committerTimothy Arceri <timothy.arceri@collabora.com>
Wed, 26 Oct 2016 03:29:36 +0000 (14:29 +1100)
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
src/compiler/shader_info.c
src/mesa/main/shaderapi.c

index fc4484a..22ea3a6 100644 (file)
@@ -40,16 +40,6 @@ copy_shader_info(const struct gl_shader_program *shader_prog,
    info->uses_texture_gather = sh->Program->UsesGather;
 
    switch (sh->Stage) {
-   case MESA_SHADER_GEOMETRY:
-      info->gs.vertices_in = shader_prog->Geom.VerticesIn;
-      info->gs.output_primitive = sh->info.Geom.OutputType;
-      info->gs.input_primitive = sh->info.Geom.InputType;
-      info->gs.vertices_out = sh->info.Geom.VerticesOut;
-      info->gs.invocations = sh->info.Geom.Invocations;
-      info->gs.uses_end_primitive = shader_prog->Geom.UsesEndPrimitive;
-      info->gs.uses_streams = shader_prog->Geom.UsesStreams;
-      break;
-
    case MESA_SHADER_FRAGMENT: {
       struct gl_fragment_program *fp =
          (struct gl_fragment_program *)sh->Program;
index abfeeff..b681534 100644 (file)
@@ -2184,17 +2184,15 @@ _mesa_copy_linked_program_data(const struct gl_shader_program *src,
       break;
    }
    case MESA_SHADER_GEOMETRY: {
-      struct gl_geometry_program *dst_gp = (struct gl_geometry_program *) dst;
-
-      dst_gp->VerticesIn = src->Geom.VerticesIn;
-      dst_gp->VerticesOut = dst_sh->info.Geom.VerticesOut;
-      dst_gp->Invocations = dst_sh->info.Geom.Invocations;
-      dst_gp->InputType = dst_sh->info.Geom.InputType;
-      dst_gp->OutputType = dst_sh->info.Geom.OutputType;
+      dst->info.gs.vertices_in = src->Geom.VerticesIn;
+      dst->info.gs.vertices_out = dst_sh->info.Geom.VerticesOut;
+      dst->info.gs.invocations = dst_sh->info.Geom.Invocations;
+      dst->info.gs.input_primitive = dst_sh->info.Geom.InputType;
+      dst->info.gs.output_primitive = dst_sh->info.Geom.OutputType;
       dst->ClipDistanceArraySize = src->Geom.ClipDistanceArraySize;
       dst->CullDistanceArraySize = src->Geom.CullDistanceArraySize;
-      dst_gp->UsesEndPrimitive = src->Geom.UsesEndPrimitive;
-      dst_gp->UsesStreams = src->Geom.UsesStreams;
+      dst->info.gs.uses_end_primitive = src->Geom.UsesEndPrimitive;
+      dst->info.gs.uses_streams = src->Geom.UsesStreams;
       break;
    }
    case MESA_SHADER_FRAGMENT: {