From 174ea70bf3301fd837518e376a2f5b097fac5503 Mon Sep 17 00:00:00 2001 From: Paul Gofman Date: Mon, 22 May 2017 13:24:12 +0200 Subject: [PATCH] d3dx9: Use pass update version for detecting updated FXLC parameter. Signed-off-by: Paul Gofman Signed-off-by: Matteo Bruni Signed-off-by: Alexandre Julliard --- dlls/d3dx9_36/effect.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dlls/d3dx9_36/effect.c b/dlls/d3dx9_36/effect.c index 511ed32d36d..e9b139e8237 100644 --- a/dlls/d3dx9_36/effect.c +++ b/dlls/d3dx9_36/effect.c @@ -1092,7 +1092,10 @@ static HRESULT d3dx9_get_param_value_ptr(struct d3dx_pass *pass, struct d3dx_sta { *out_param = param; *param_value = param->data; - if (update_all || is_param_eval_input_dirty(param->param_eval, ULONG64_MAX)) + /* We check with the update_version of the pass because the + * same preshader might be used by both the vertex and the + * pixel shader (that can happen e.g. for sampler states). */ + if (update_all || is_param_eval_input_dirty(param->param_eval, pass->update_version)) { *param_dirty = TRUE; return d3dx_evaluate_parameter(param->param_eval, param, *param_value);