summaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers/nine
diff options
context:
space:
mode:
authorAxel Davy <[email protected]>2018-09-22 11:09:11 +0200
committerAxel Davy <[email protected]>2018-09-25 22:05:24 +0200
commit46814e771a8eabc427e7d5bbaa8d5cb4ca57ee03 (patch)
tree0868d36d6a10c884a4bc2673508635a41e933e54 /src/gallium/state_trackers/nine
parent8e0526555d56cf91e6af518d71da176e1a7b19c2 (diff)
st/nine: Do not mark both ff vs and ps updated
Previously if only ff vs or only ff ps was used, the constants for both were marked as updated, while only the constants of the used ff shader were updated. Now that NINE_STATE_FF_VS and NINE_STATE_FF_PS do not intersect anymore, we can correctly mark the correct set of constant as updated. Fixes: https://github.com/iXit/Mesa-3D/issues/319 Signed-off-by: Axel Davy <[email protected]>
Diffstat (limited to 'src/gallium/state_trackers/nine')
-rw-r--r--src/gallium/state_trackers/nine/nine_ff.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/gallium/state_trackers/nine/nine_ff.c b/src/gallium/state_trackers/nine/nine_ff.c
index addea3dde1f..261be276ad8 100644
--- a/src/gallium/state_trackers/nine/nine_ff.c
+++ b/src/gallium/state_trackers/nine/nine_ff.c
@@ -2066,6 +2066,8 @@ nine_ff_update(struct NineDevice9 *device)
context->pipe_data.cb_vs_ff = cb;
context->commit |= NINE_STATE_COMMIT_CONST_VS;
+
+ context->changed.group &= ~NINE_STATE_FF_VS;
}
if (!context->ps) {
@@ -2078,9 +2080,9 @@ nine_ff_update(struct NineDevice9 *device)
context->pipe_data.cb_ps_ff = cb;
context->commit |= NINE_STATE_COMMIT_CONST_PS;
- }
- context->changed.group &= ~NINE_STATE_FF;
+ context->changed.group &= ~NINE_STATE_FF_PS;
+ }
}