mesa: Copy linked program data for GS.
The documentation for gl_shader_program.Geom and gl_geometry_program says that the former is copied to the latter at link time, but this wasn't happening. This patch causes _mesa_ir_link_shader() to perform the copy, and updates comment accordingly. Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
@@ -2320,7 +2320,10 @@ struct gl_shader_program
|
||||
/** Post-link gl_FragDepth layout for ARB_conservative_depth. */
|
||||
enum gl_frag_depth_layout FragDepthLayout;
|
||||
|
||||
/** Geometry shader state - copied into gl_geometry_program at link time */
|
||||
/**
|
||||
* Geometry shader state - copied into gl_geometry_program by
|
||||
* _mesa_copy_linked_program_data().
|
||||
*/
|
||||
struct {
|
||||
GLint VerticesIn;
|
||||
GLint VerticesOut;
|
||||
|
||||
@@ -1859,6 +1859,14 @@ _mesa_copy_linked_program_data(gl_shader_type type,
|
||||
dst_vp->UsesClipDistance = src->Vert.UsesClipDistance;
|
||||
}
|
||||
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 = src->Geom.VerticesOut;
|
||||
dst_gp->InputType = src->Geom.InputType;
|
||||
dst_gp->OutputType = src->Geom.OutputType;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user