summaryrefslogtreecommitdiff
path: root/src/mesa/state_tracker/st_atom_fs.c
diff options
context:
space:
mode:
authorBrian <brian.paul@tungstengraphics.com>2007-08-16 17:33:49 -0600
committerBrian <brian.paul@tungstengraphics.com>2007-08-16 17:33:49 -0600
commite3bdd66bf69fb12fa02d161989755944077b280d (patch)
tree51e02d74648ad379499ef8d338988e57b4f24f65 /src/mesa/state_tracker/st_atom_fs.c
parentbf55f32c6fd74b8eb0b31dce0ebd8f4c52f57743 (diff)
misc changes to support vertex shaders (disabled by default)
Diffstat (limited to 'src/mesa/state_tracker/st_atom_fs.c')
-rw-r--r--src/mesa/state_tracker/st_atom_fs.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/mesa/state_tracker/st_atom_fs.c b/src/mesa/state_tracker/st_atom_fs.c
index 9731ab6cee..9dddb18498 100644
--- a/src/mesa/state_tracker/st_atom_fs.c
+++ b/src/mesa/state_tracker/st_atom_fs.c
@@ -134,6 +134,9 @@ static void update_vs( struct st_context *st )
struct st_vertex_program *vp = NULL;
struct gl_program_parameter_list *params = NULL;
+ if (st->ctx->VertexProgram._MaintainTnlProgram)
+ _tnl_UpdateFixedFunctionProgram( st->ctx );
+
if (st->ctx->Shader.CurrentProgram &&
st->ctx->Shader.CurrentProgram->LinkStatus &&
st->ctx->Shader.CurrentProgram->VertexProgram) {
@@ -148,11 +151,15 @@ static void update_vs( struct st_context *st )
}
/* XXXX temp */
+#if 1
if (!vp)
return;
-
+#endif
if (vp && params) {
/* load program's constants array */
+
+ _mesa_load_state_parameters(st->ctx, params);
+
vp->constants.nr_constants = params->NumParameters;
memcpy(vp->constants.constant,
params->ParameterValues,
@@ -179,7 +186,7 @@ static void update_vs( struct st_context *st )
const struct st_tracked_state st_update_vs = {
.dirty = {
- .mesa = _NEW_PROGRAM,
+ .mesa = _NEW_PROGRAM | _NEW_MODELVIEW,
.st = ST_NEW_VERTEX_PROGRAM,
},
.update = update_vs