Paul Gofman : d3dx9: Use pass update version for detecting updated FXLC parameter.
Module: wine Branch: master Commit: 174ea70bf3301fd837518e376a2f5b097fac5503 URL: http://source.winehq.org/git/wine.git/?a=commit;h=174ea70bf3301fd837518e376a... Author: Paul Gofman <gofmanp(a)gmail.com> Date: Mon May 22 13:24:12 2017 +0200 d3dx9: Use pass update version for detecting updated FXLC parameter. Signed-off-by: Paul Gofman <gofmanp(a)gmail.com> Signed-off-by: Matteo Bruni <mbruni(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- 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 511ed32..e9b139e 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);
participants (1)
-
Alexandre Julliard