Paul Gofman : d3dx9: Fix register index for the scalar op case in parse_preshader().
Alexandre Julliard
julliard at winehq.org
Fri Apr 28 12:44:30 CDT 2017
Module: wine
Branch: master
Commit: 905421351f0cafec94fa1c0be28de23f7ea65214
URL: http://source.winehq.org/git/wine.git/?a=commit;h=905421351f0cafec94fa1c0be28de23f7ea65214
Author: Paul Gofman <gofmanp at gmail.com>
Date: Fri Apr 28 00:10:15 2017 +0200
d3dx9: Fix register index for the scalar op case in parse_preshader().
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/preshader.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/dlls/d3dx9_36/preshader.c b/dlls/d3dx9_36/preshader.c
index 896aca5..0f23488 100644
--- a/dlls/d3dx9_36/preshader.c
+++ b/dlls/d3dx9_36/preshader.c
@@ -758,9 +758,12 @@ static HRESULT parse_preshader(struct d3dx_preshader *pres, unsigned int *ptr, u
if (pres->ins[i].inputs[j].index_reg.table == PRES_REGTAB_COUNT)
{
+ unsigned int last_component_index = pres->ins[i].scalar_op && !j ? 0
+ : pres->ins[i].component_count - 1;
+
table = pres->ins[i].inputs[j].reg.table;
reg_idx = get_reg_offset(table, pres->ins[i].inputs[j].reg.offset
- + pres->ins[i].component_count - 1);
+ + last_component_index);
}
else
{
More information about the wine-cvs
mailing list