[v3 1/2] d3dx9: Use pass update version for detecting updated FXLC parameter.
Matteo Bruni
mbruni at codeweavers.com
Mon May 22 06:24:12 CDT 2017
From: Paul Gofman <gofmanp at gmail.com>
Signed-off-by: Paul Gofman <gofmanp at gmail.com>
Signed-off-by: Matteo Bruni <mbruni at codeweavers.com>
---
v3: Add a comment in the code.
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 511ed32d36..e9b139e823 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);
--
2.13.0
More information about the wine-patches
mailing list