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