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 <davyaxel0@gmail.com>
This commit is contained in:
Axel Davy 2018-09-22 11:09:11 +02:00
parent 8e0526555d
commit 46814e771a
1 changed files with 4 additions and 2 deletions

View File

@ -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;
}
}