mesa: bump MAX_VARYING to 32

We're starting to get apps utilizing more than 16 varyings and
most current hardware supports 32 anyway.

Tested with r600g.
swrast, softpipe and llvmpipe still advertise 16 varyings.

This fixes a WebGL crash after launching this demo:
https://developer.mozilla.org/en-US/demos/detail/falling-cubes

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=54402

NOTE: This is a candidate for the stable branches.

Acked-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
Marek Olšák 2012-10-26 17:37:07 +02:00
parent 00e6819e99
commit b3921e1f53
5 changed files with 39 additions and 7 deletions

View File

@ -73,7 +73,7 @@ struct ureg_tokens {
#define UREG_MAX_INPUT PIPE_MAX_ATTRIBS
#define UREG_MAX_SYSTEM_VALUE PIPE_MAX_ATTRIBS
#define UREG_MAX_OUTPUT PIPE_MAX_ATTRIBS
#define UREG_MAX_OUTPUT PIPE_MAX_SHADER_OUTPUTS
#define UREG_MAX_CONSTANT_RANGE 32
#define UREG_MAX_IMMEDIATE 256
#define UREG_MAX_ADDR 2

View File

@ -59,7 +59,7 @@ extern "C" {
#define PIPE_MAX_CONSTANT_BUFFERS 32
#define PIPE_MAX_SAMPLERS 16
#define PIPE_MAX_SHADER_INPUTS 32
#define PIPE_MAX_SHADER_OUTPUTS 32
#define PIPE_MAX_SHADER_OUTPUTS 48 /* 32 GENERICs + POS, PSIZE, FOG, etc. */
#define PIPE_MAX_SHADER_SAMPLER_VIEWS 32
#define PIPE_MAX_SHADER_RESOURCES 32
#define PIPE_MAX_TEXTURE_LEVELS 16
@ -145,7 +145,7 @@ struct pipe_rasterizer_state
unsigned line_stipple_factor:8; /**< [1..256] actually */
unsigned line_stipple_pattern:16;
unsigned sprite_coord_enable:PIPE_MAX_SHADER_OUTPUTS;
unsigned sprite_coord_enable; /* bitfield referring to 32 GENERIC inputs */
float line_width;
float point_size; /**< used when no per-vertex size */

View File

@ -187,7 +187,7 @@
#define MAX_PROGRAM_CALL_DEPTH 8
#define MAX_PROGRAM_TEMPS 256
#define MAX_PROGRAM_ADDRESS_REGS 2
#define MAX_VARYING 16 /**< number of float[4] vectors */
#define MAX_VARYING 32 /**< number of float[4] vectors */
#define MAX_SAMPLERS MAX_TEXTURE_IMAGE_UNITS
#define MAX_PROGRAM_INPUTS 32
#define MAX_PROGRAM_OUTPUTS 64

View File

@ -614,7 +614,7 @@ _mesa_init_constants(struct gl_context *ctx)
ctx->Const.MaxVertexTextureImageUnits = MAX_VERTEX_TEXTURE_IMAGE_UNITS;
ctx->Const.MaxCombinedTextureImageUnits = MAX_COMBINED_TEXTURE_IMAGE_UNITS;
ctx->Const.MaxVarying = MAX_VARYING;
ctx->Const.MaxVarying = 16; /* old limit not to break tnl and swrast */
ctx->Const.MaxGeometryTextureImageUnits = MAX_GEOMETRY_TEXTURE_IMAGE_UNITS;
ctx->Const.MaxVertexVaryingComponents = MAX_VERTEX_VARYING_COMPONENTS;
ctx->Const.MaxGeometryVaryingComponents = MAX_GEOMETRY_VARYING_COMPONENTS;

View File

@ -158,7 +158,23 @@ arb_input_attrib_string(GLint index, GLenum progType)
"fragment.varying[12]",
"fragment.varying[13]",
"fragment.varying[14]",
"fragment.varying[15]" /* MAX_VARYING = 16 */
"fragment.varying[15]",
"fragment.varying[16]",
"fragment.varying[17]",
"fragment.varying[18]",
"fragment.varying[19]",
"fragment.varying[20]",
"fragment.varying[21]",
"fragment.varying[22]",
"fragment.varying[23]",
"fragment.varying[24]",
"fragment.varying[25]",
"fragment.varying[26]",
"fragment.varying[27]",
"fragment.varying[28]",
"fragment.varying[29]",
"fragment.varying[30]",
"fragment.varying[31]", /* MAX_VARYING = 32 */
};
/* sanity checks */
@ -262,7 +278,23 @@ arb_output_attrib_string(GLint index, GLenum progType)
"result.varying[12]",
"result.varying[13]",
"result.varying[14]",
"result.varying[15]" /* MAX_VARYING = 16 */
"result.varying[15]",
"result.varying[16]",
"result.varying[17]",
"result.varying[18]",
"result.varying[19]",
"result.varying[20]",
"result.varying[21]",
"result.varying[22]",
"result.varying[23]",
"result.varying[24]",
"result.varying[25]",
"result.varying[26]",
"result.varying[27]",
"result.varying[28]",
"result.varying[29]",
"result.varying[30]",
"result.varying[31]", /* MAX_VARYING = 32 */
};
static const char *const fragResults[] = {
"result.depth", /* FRAG_RESULT_DEPTH */