summaryrefslogtreecommitdiffstats
path: root/src/mesa/state_tracker
diff options
context:
space:
mode:
authorBrian <[email protected]>2007-08-23 19:03:42 -0600
committerBrian <[email protected]>2007-08-23 19:03:42 -0600
commite967b246ecdc665d9f974d1e35380cb1cd11d61e (patch)
tree62fa8017c148482090984066532824b8b6b98426 /src/mesa/state_tracker
parent30236573dadd83714220b72b0c04f1bbce69fbd6 (diff)
Vertex shader outputs are now tightly packed into the output slots.
Fix softpipe vertex attribute setup. Also, update vs constants when the projection matrix changes (fixes samples/prim.c)
Diffstat (limited to 'src/mesa/state_tracker')
-rw-r--r--src/mesa/state_tracker/st_atom_vs.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/mesa/state_tracker/st_atom_vs.c b/src/mesa/state_tracker/st_atom_vs.c
index 8a38020afd7..f16fe2ae944 100644
--- a/src/mesa/state_tracker/st_atom_vs.c
+++ b/src/mesa/state_tracker/st_atom_vs.c
@@ -113,8 +113,10 @@ static void update_vs( struct st_context *st )
/* update pipe state */
memset( &vs, 0, sizeof(vs) );
- vs.outputs_written = vp->Base.Base.OutputsWritten;
- vs.inputs_read = vp->Base.Base.InputsRead;
+ vs.inputs_read
+ = tgsi_mesa_translate_vertex_input_mask(vp->Base.Base.InputsRead);
+ vs.outputs_written
+ = tgsi_mesa_translate_vertex_output_mask(vp->Base.Base.OutputsWritten);
vs.tokens = &vp->tokens[0];
if (memcmp(&vs, &st->state.vs, sizeof(vs)) != 0 ||
@@ -129,7 +131,7 @@ static void update_vs( struct st_context *st )
const struct st_tracked_state st_update_vs = {
.dirty = {
- .mesa = _NEW_PROGRAM | _NEW_MODELVIEW,
+ .mesa = _NEW_PROGRAM | _NEW_MODELVIEW | _NEW_PROJECTION, /*XXX MORE*/
.st = ST_NEW_VERTEX_PROGRAM,
},
.update = update_vs