mesa: Use correct data for MAX_{VERTEX,GEOMETRY}_VARYING_COMPONENTS_ARB queries
Previously gl_constants::MaxVaryingComponents was used. Now gl_constants::VertexProgram::MaxOutputs and gl_constants::GeometryProgram::MaxOutputs are used. This means that st_extensions.c had to be updated to set these fields instead of MaxVaryingComponents. It was previously the only place that set MaxVaryingComponents. I believe that the structure is allocated by calloc, so the value should be initialized to zero in non-Gallium drivers before and after my change. Right now nobody enables GL_ARB_geometry_shader4, so it's pretty much dead code anyway. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Brian Paul <brianp@vmware.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com> Reviewed-by: Paul Berry <stereotype441@gmail.com> Cc: Zack Rusin <zackr@vmware.com>
This commit is contained in:
@@ -256,7 +256,10 @@ void st_init_limits(struct st_context *st)
|
||||
c->MaxVarying = screen->get_shader_param(screen, PIPE_SHADER_FRAGMENT,
|
||||
PIPE_SHADER_CAP_MAX_INPUTS);
|
||||
c->MaxVarying = MIN2(c->MaxVarying, MAX_VARYING);
|
||||
c->MaxVaryingComponents = c->MaxVarying * 4;
|
||||
c->FragmentProgram.MaxInputComponents = c->MaxVarying * 4;
|
||||
c->VertexProgram.MaxOutputComponents = c->MaxVarying * 4;
|
||||
c->GeometryProgram.MaxInputComponents = c->MaxVarying * 4;
|
||||
c->GeometryProgram.MaxOutputComponents = c->MaxVarying * 4;
|
||||
|
||||
c->MinProgramTexelOffset = screen->get_param(screen, PIPE_CAP_MIN_TEXEL_OFFSET);
|
||||
c->MaxProgramTexelOffset = screen->get_param(screen, PIPE_CAP_MAX_TEXEL_OFFSET);
|
||||
|
Reference in New Issue
Block a user