Use generic program limits instead of NV-specific ones to init program constants.
Previously, this limited us to 12 temp regs for vertex programs. Many vertex shaders could exceed that. This forces us to stop using t_vb_arbprogram.c for now because of its particular register indexing scheme. Need to increase bits allocated for register indexing, etc.
This commit is contained in:
@@ -805,10 +805,10 @@ _mesa_init_constants(GLcontext *ctx)
|
||||
ctx->Const.VertexProgram.MaxTexInstructions = 0;
|
||||
ctx->Const.VertexProgram.MaxTexIndirections = 0;
|
||||
ctx->Const.VertexProgram.MaxAttribs = MAX_NV_VERTEX_PROGRAM_INPUTS;
|
||||
ctx->Const.VertexProgram.MaxTemps = MAX_NV_VERTEX_PROGRAM_TEMPS;
|
||||
ctx->Const.VertexProgram.MaxTemps = MAX_PROGRAM_TEMPS;
|
||||
ctx->Const.VertexProgram.MaxParameters = MAX_NV_VERTEX_PROGRAM_PARAMS;
|
||||
ctx->Const.VertexProgram.MaxLocalParams = MAX_PROGRAM_LOCAL_PARAMS;
|
||||
ctx->Const.VertexProgram.MaxEnvParams = MAX_NV_VERTEX_PROGRAM_PARAMS;
|
||||
ctx->Const.VertexProgram.MaxEnvParams = MAX_PROGRAM_ENV_PARAMS;
|
||||
ctx->Const.VertexProgram.MaxAddressRegs = MAX_VERTEX_PROGRAM_ADDRESS_REGS;
|
||||
ctx->Const.VertexProgram.MaxUniformComponents = 4 * MAX_UNIFORMS;
|
||||
init_natives(&ctx->Const.VertexProgram);
|
||||
@@ -820,10 +820,10 @@ _mesa_init_constants(GLcontext *ctx)
|
||||
ctx->Const.FragmentProgram.MaxTexInstructions = MAX_FRAGMENT_PROGRAM_TEX_INSTRUCTIONS;
|
||||
ctx->Const.FragmentProgram.MaxTexIndirections = MAX_FRAGMENT_PROGRAM_TEX_INDIRECTIONS;
|
||||
ctx->Const.FragmentProgram.MaxAttribs = MAX_NV_FRAGMENT_PROGRAM_INPUTS;
|
||||
ctx->Const.FragmentProgram.MaxTemps = MAX_NV_FRAGMENT_PROGRAM_TEMPS;
|
||||
ctx->Const.FragmentProgram.MaxTemps = MAX_PROGRAM_TEMPS;
|
||||
ctx->Const.FragmentProgram.MaxParameters = MAX_NV_FRAGMENT_PROGRAM_PARAMS;
|
||||
ctx->Const.FragmentProgram.MaxLocalParams = MAX_PROGRAM_LOCAL_PARAMS;
|
||||
ctx->Const.FragmentProgram.MaxEnvParams = MAX_NV_FRAGMENT_PROGRAM_PARAMS;
|
||||
ctx->Const.FragmentProgram.MaxEnvParams = MAX_PROGRAM_ENV_PARAMS;
|
||||
ctx->Const.FragmentProgram.MaxAddressRegs = MAX_FRAGMENT_PROGRAM_ADDRESS_REGS;
|
||||
ctx->Const.FragmentProgram.MaxUniformComponents = 4 * MAX_UNIFORMS;
|
||||
init_natives(&ctx->Const.FragmentProgram);
|
||||
|
||||
@@ -1477,8 +1477,11 @@ validate_vertex_program( GLcontext *ctx, struct tnl_pipeline_stage *stage )
|
||||
struct arb_vp_machine *m = ARB_VP_MACHINE(stage);
|
||||
struct gl_vertex_program *program = ctx->VertexProgram._Current;
|
||||
|
||||
/* don't use this module since it only handles 12 temp regs */
|
||||
/* Need to allocate more bits for register indexes, etc. */
|
||||
#define FORCE_OLD 1
|
||||
#if FORCE_OLD
|
||||
if (0 &&program) {
|
||||
if (0) {
|
||||
#else
|
||||
if (program) {
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user