Add a size parameter to _mesa_add_unnamed_constant() and
_mesa_add_named_constant() to indicate vector size (1, 2, 3 or 4). Always 4 for now...
This commit is contained in:
@@ -404,7 +404,7 @@ static struct ureg register_const4f( struct tnl_program *p,
|
|||||||
values[1] = s1;
|
values[1] = s1;
|
||||||
values[2] = s2;
|
values[2] = s2;
|
||||||
values[3] = s3;
|
values[3] = s3;
|
||||||
idx = _mesa_add_unnamed_constant( p->program->Base.Parameters, values );
|
idx = _mesa_add_unnamed_constant( p->program->Base.Parameters, values, 4 );
|
||||||
return make_ureg(PROGRAM_STATE_VAR, idx);
|
return make_ureg(PROGRAM_STATE_VAR, idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -432,7 +432,7 @@ static struct prog_src_register search_or_add_const4f( struct brw_wm_compile *c,
|
|||||||
return src_reg(PROGRAM_STATE_VAR, idx);
|
return src_reg(PROGRAM_STATE_VAR, idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
idx = _mesa_add_unnamed_constant( paramList, values );
|
idx = _mesa_add_unnamed_constant( paramList, values, 4 );
|
||||||
|
|
||||||
return src_reg(PROGRAM_STATE_VAR, idx);
|
return src_reg(PROGRAM_STATE_VAR, idx);
|
||||||
}
|
}
|
||||||
|
@@ -575,7 +575,7 @@ static struct ureg register_const4f( struct texenv_fragment_program *p,
|
|||||||
values[1] = s1;
|
values[1] = s1;
|
||||||
values[2] = s2;
|
values[2] = s2;
|
||||||
values[3] = s3;
|
values[3] = s3;
|
||||||
idx = _mesa_add_unnamed_constant( p->program->Base.Parameters, values );
|
idx = _mesa_add_unnamed_constant( p->program->Base.Parameters, values, 4 );
|
||||||
return make_ureg(PROGRAM_STATE_VAR, idx);
|
return make_ureg(PROGRAM_STATE_VAR, idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1810,7 +1810,7 @@ parse_param_elements (GLcontext * ctx, const GLubyte ** inst,
|
|||||||
parse_constant (inst, const_values, Program, use);
|
parse_constant (inst, const_values, Program, use);
|
||||||
idx = _mesa_add_named_constant(Program->Base.Parameters,
|
idx = _mesa_add_named_constant(Program->Base.Parameters,
|
||||||
(char *) param_var->name,
|
(char *) param_var->name,
|
||||||
const_values);
|
const_values, 4);
|
||||||
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++;
|
||||||
|
@@ -1041,7 +1041,7 @@ Parse_VectorSrc(struct parse_state *parseState,
|
|||||||
GLuint paramIndex;
|
GLuint paramIndex;
|
||||||
if (!Parse_ScalarConstant(parseState, values))
|
if (!Parse_ScalarConstant(parseState, values))
|
||||||
RETURN_ERROR;
|
RETURN_ERROR;
|
||||||
paramIndex = _mesa_add_unnamed_constant(parseState->parameters, values);
|
paramIndex = _mesa_add_unnamed_constant(parseState->parameters, values, 4);
|
||||||
srcReg->File = PROGRAM_NAMED_PARAM;
|
srcReg->File = PROGRAM_NAMED_PARAM;
|
||||||
srcReg->Index = paramIndex;
|
srcReg->Index = paramIndex;
|
||||||
}
|
}
|
||||||
@@ -1052,7 +1052,7 @@ Parse_VectorSrc(struct parse_state *parseState,
|
|||||||
(void) Parse_String(parseState, "{");
|
(void) Parse_String(parseState, "{");
|
||||||
if (!Parse_VectorConstant(parseState, values))
|
if (!Parse_VectorConstant(parseState, values))
|
||||||
RETURN_ERROR;
|
RETURN_ERROR;
|
||||||
paramIndex = _mesa_add_unnamed_constant(parseState->parameters, values);
|
paramIndex = _mesa_add_unnamed_constant(parseState->parameters, values, 4);
|
||||||
srcReg->File = PROGRAM_NAMED_PARAM;
|
srcReg->File = PROGRAM_NAMED_PARAM;
|
||||||
srcReg->Index = paramIndex;
|
srcReg->Index = paramIndex;
|
||||||
}
|
}
|
||||||
@@ -1142,7 +1142,7 @@ Parse_ScalarSrcReg(struct parse_state *parseState,
|
|||||||
(void) Parse_String(parseState, "{");
|
(void) Parse_String(parseState, "{");
|
||||||
if (!Parse_VectorConstant(parseState, values))
|
if (!Parse_VectorConstant(parseState, values))
|
||||||
RETURN_ERROR;
|
RETURN_ERROR;
|
||||||
paramIndex = _mesa_add_unnamed_constant(parseState->parameters, values);
|
paramIndex = _mesa_add_unnamed_constant(parseState->parameters, values, 4);
|
||||||
srcReg->File = PROGRAM_NAMED_PARAM;
|
srcReg->File = PROGRAM_NAMED_PARAM;
|
||||||
srcReg->Index = paramIndex;
|
srcReg->Index = paramIndex;
|
||||||
}
|
}
|
||||||
@@ -1166,7 +1166,7 @@ Parse_ScalarSrcReg(struct parse_state *parseState,
|
|||||||
GLuint paramIndex;
|
GLuint paramIndex;
|
||||||
if (!Parse_ScalarConstant(parseState, values))
|
if (!Parse_ScalarConstant(parseState, values))
|
||||||
RETURN_ERROR;
|
RETURN_ERROR;
|
||||||
paramIndex = _mesa_add_unnamed_constant(parseState->parameters, values);
|
paramIndex = _mesa_add_unnamed_constant(parseState->parameters, values, 4);
|
||||||
srcReg->Index = paramIndex;
|
srcReg->Index = paramIndex;
|
||||||
srcReg->File = PROGRAM_NAMED_PARAM;
|
srcReg->File = PROGRAM_NAMED_PARAM;
|
||||||
needSuffix = GL_FALSE;
|
needSuffix = GL_FALSE;
|
||||||
|
@@ -437,9 +437,11 @@ _mesa_add_named_parameter(struct gl_program_parameter_list *paramList,
|
|||||||
*/
|
*/
|
||||||
GLint
|
GLint
|
||||||
_mesa_add_named_constant(struct gl_program_parameter_list *paramList,
|
_mesa_add_named_constant(struct gl_program_parameter_list *paramList,
|
||||||
const char *name, const GLfloat values[4])
|
const char *name, const GLfloat values[4],
|
||||||
|
GLuint size)
|
||||||
{
|
{
|
||||||
GLuint pos, swizzle;
|
GLuint pos, swizzle;
|
||||||
|
ASSERT(size == 4); /* XXX future feature */
|
||||||
/* check if we already have this constant */
|
/* check if we already have this constant */
|
||||||
if (_mesa_lookup_parameter_constant(paramList, values, 4, &pos, &swizzle)) {
|
if (_mesa_lookup_parameter_constant(paramList, values, 4, &pos, &swizzle)) {
|
||||||
return pos;
|
return pos;
|
||||||
@@ -459,9 +461,10 @@ _mesa_add_named_constant(struct gl_program_parameter_list *paramList,
|
|||||||
*/
|
*/
|
||||||
GLint
|
GLint
|
||||||
_mesa_add_unnamed_constant(struct gl_program_parameter_list *paramList,
|
_mesa_add_unnamed_constant(struct gl_program_parameter_list *paramList,
|
||||||
const GLfloat values[4])
|
const GLfloat values[4], GLuint size)
|
||||||
{
|
{
|
||||||
GLuint pos, swizzle;
|
GLuint pos, swizzle;
|
||||||
|
ASSERT(size == 4); /* XXX future feature */
|
||||||
/* check if we already have this constant */
|
/* check if we already have this constant */
|
||||||
if (_mesa_lookup_parameter_constant(paramList, values, 4, &pos, &swizzle)) {
|
if (_mesa_lookup_parameter_constant(paramList, values, 4, &pos, &swizzle)) {
|
||||||
return pos;
|
return pos;
|
||||||
|
@@ -238,11 +238,12 @@ _mesa_add_named_parameter(struct gl_program_parameter_list *paramList,
|
|||||||
|
|
||||||
extern GLint
|
extern GLint
|
||||||
_mesa_add_named_constant(struct gl_program_parameter_list *paramList,
|
_mesa_add_named_constant(struct gl_program_parameter_list *paramList,
|
||||||
const char *name, const GLfloat values[4]);
|
const char *name, const GLfloat values[4],
|
||||||
|
GLuint size);
|
||||||
|
|
||||||
extern GLint
|
extern GLint
|
||||||
_mesa_add_unnamed_constant(struct gl_program_parameter_list *paramList,
|
_mesa_add_unnamed_constant(struct gl_program_parameter_list *paramList,
|
||||||
const GLfloat values[4]);
|
const GLfloat values[4], GLuint size);
|
||||||
|
|
||||||
extern GLint
|
extern GLint
|
||||||
_mesa_add_state_reference(struct gl_program_parameter_list *paramList,
|
_mesa_add_state_reference(struct gl_program_parameter_list *paramList,
|
||||||
|
@@ -172,7 +172,7 @@ _mesa_append_fog_code(GLcontext *ctx, struct gl_fragment_program *fprog)
|
|||||||
fogVals[1] = 1.0 / SQRTF(log(2.0));
|
fogVals[1] = 1.0 / SQRTF(log(2.0));
|
||||||
fogVals[2] = 0.0;
|
fogVals[2] = 0.0;
|
||||||
fogVals[3] = 0.0;
|
fogVals[3] = 0.0;
|
||||||
fogConsts = _mesa_add_unnamed_constant(fprog->Base.Parameters, fogVals);
|
fogConsts = _mesa_add_unnamed_constant(fprog->Base.Parameters, fogVals, 4);
|
||||||
|
|
||||||
/* Scan program to find where result.color is written */
|
/* Scan program to find where result.color is written */
|
||||||
inst = newInst;
|
inst = newInst;
|
||||||
|
@@ -33,7 +33,7 @@
|
|||||||
#include "glheader.h"
|
#include "glheader.h"
|
||||||
#include "macros.h"
|
#include "macros.h"
|
||||||
#include "enums.h"
|
#include "enums.h"
|
||||||
#include "t_context.h"
|
#include "t_context.h" /* NOTE: very light dependency on this */
|
||||||
#include "t_vp_build.h"
|
#include "t_vp_build.h"
|
||||||
|
|
||||||
#include "shader/program.h"
|
#include "shader/program.h"
|
||||||
@@ -386,7 +386,7 @@ static struct ureg register_const4f( struct tnl_program *p,
|
|||||||
values[1] = s1;
|
values[1] = s1;
|
||||||
values[2] = s2;
|
values[2] = s2;
|
||||||
values[3] = s3;
|
values[3] = s3;
|
||||||
idx = _mesa_add_unnamed_constant( p->program->Base.Parameters, values );
|
idx = _mesa_add_unnamed_constant( p->program->Base.Parameters, values, 4 );
|
||||||
return make_ureg(PROGRAM_STATE_VAR, idx);
|
return make_ureg(PROGRAM_STATE_VAR, idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user