Paul Gofman : d3dx9: Use pass update version for detecting updated FXLC parameter.

Alexandre Julliard julliard at winehq.org
Mon May 22 15:54:04 CDT 2017


Module: wine
Branch: master
Commit: 174ea70bf3301fd837518e376a2f5b097fac5503
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=174ea70bf3301fd837518e376a2f5b097fac5503

Author: Paul Gofman <gofmanp at 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 at gmail.com>
Signed-off-by: Matteo Bruni <mbruni at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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);




More information about the wine-cvs mailing list