mesa: fix parameter counting in ARB vertex/fragment program parsing
Duplicated unnamed constants were getting counted more than once.
This commit is contained in:
@@ -1840,7 +1840,6 @@ parse_param_elements (GLcontext * ctx, const GLubyte ** inst,
|
|||||||
if (param_var->param_binding_begin == ~0U)
|
if (param_var->param_binding_begin == ~0U)
|
||||||
param_var->param_binding_begin = idx;
|
param_var->param_binding_begin = idx;
|
||||||
param_var->param_binding_length++;
|
param_var->param_binding_length++;
|
||||||
Program->Base.NumParameters++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -1849,7 +1848,6 @@ parse_param_elements (GLcontext * ctx, const GLubyte ** inst,
|
|||||||
if (param_var->param_binding_begin == ~0U)
|
if (param_var->param_binding_begin == ~0U)
|
||||||
param_var->param_binding_begin = idx;
|
param_var->param_binding_begin = idx;
|
||||||
param_var->param_binding_length++;
|
param_var->param_binding_length++;
|
||||||
Program->Base.NumParameters++;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -1860,7 +1858,6 @@ parse_param_elements (GLcontext * ctx, const GLubyte ** inst,
|
|||||||
if (param_var->param_binding_begin == ~0U)
|
if (param_var->param_binding_begin == ~0U)
|
||||||
param_var->param_binding_begin = idx;
|
param_var->param_binding_begin = idx;
|
||||||
param_var->param_binding_length++;
|
param_var->param_binding_length++;
|
||||||
Program->Base.NumParameters++;
|
|
||||||
|
|
||||||
/* Check if there is more: 0 -> we're done, else its an integer */
|
/* Check if there is more: 0 -> we're done, else its an integer */
|
||||||
if (**inst) {
|
if (**inst) {
|
||||||
@@ -1896,7 +1893,6 @@ parse_param_elements (GLcontext * ctx, const GLubyte ** inst,
|
|||||||
idx = _mesa_add_state_reference(Program->Base.Parameters,
|
idx = _mesa_add_state_reference(Program->Base.Parameters,
|
||||||
state_tokens);
|
state_tokens);
|
||||||
param_var->param_binding_length++;
|
param_var->param_binding_length++;
|
||||||
Program->Base.NumParameters++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -1918,7 +1914,6 @@ parse_param_elements (GLcontext * ctx, const GLubyte ** inst,
|
|||||||
* instruction register type appropriately.
|
* instruction register type appropriately.
|
||||||
*/
|
*/
|
||||||
param_var->param_binding_length++;
|
param_var->param_binding_length++;
|
||||||
Program->Base.NumParameters++;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@@ -1927,6 +1922,8 @@ parse_param_elements (GLcontext * ctx, const GLubyte ** inst,
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Program->Base.NumParameters = Program->Base.Parameters->NumParameters;
|
||||||
|
|
||||||
/* Make sure we haven't blown past our parameter limits */
|
/* Make sure we haven't blown past our parameter limits */
|
||||||
if (((Program->Base.Target == GL_VERTEX_PROGRAM_ARB) &&
|
if (((Program->Base.Target == GL_VERTEX_PROGRAM_ARB) &&
|
||||||
(Program->Base.NumParameters >
|
(Program->Base.NumParameters >
|
||||||
|
Reference in New Issue
Block a user