mesa: test against MaxUniformComponents in check_resources()
authorBrian Paul <brianp@vmware.com>
Fri, 11 Mar 2011 17:03:40 +0000 (10:03 -0700)
committerBrian Paul <brianp@vmware.com>
Fri, 11 Mar 2011 17:04:17 +0000 (10:04 -0700)
Since we're compiling/linking GLSL shaders we should check against
the shader uniform limits, not the legacy vertex/fragment program
parameter limits which are usually lower.

src/mesa/program/ir_to_mesa.cpp

index c4704fe..eff0d37 100644 (file)
@@ -2454,7 +2454,7 @@ check_resources(const struct gl_context *ctx,
          fail_link(shader_program, "Too many vertex shader texture samplers");
       }
       if (prog->Parameters->NumParameters >
-          ctx->Const.VertexProgram.MaxParameters) {
+          ctx->Const.VertexProgram.MaxUniformComponents / 4) {
          fail_link(shader_program, "Too many vertex shader constants");
       }
       break;
@@ -2464,7 +2464,7 @@ check_resources(const struct gl_context *ctx,
          fail_link(shader_program, "Too many geometry shader texture samplers");
       }
       if (prog->Parameters->NumParameters >
-          ctx->Const.GeometryProgram.MaxParameters) {
+          ctx->Const.GeometryProgram.MaxUniformComponents / 4) {
          fail_link(shader_program, "Too many geometry shader constants");
       }
       break;
@@ -2474,7 +2474,7 @@ check_resources(const struct gl_context *ctx,
          fail_link(shader_program, "Too many fragment shader texture samplers");
       }
       if (prog->Parameters->NumParameters >
-          ctx->Const.FragmentProgram.MaxParameters) {
+          ctx->Const.FragmentProgram.MaxUniformComponents / 4) {
          fail_link(shader_program, "Too many fragment shader constants");
       }
       break;