From: Peter Castelein castelei@yahoo.com
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=57747 --- dlls/wined3d/stateblock.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c index 5803f166955..23bfdb00c01 100644 --- a/dlls/wined3d/stateblock.c +++ b/dlls/wined3d/stateblock.c @@ -1921,6 +1921,9 @@ void CDECL wined3d_stateblock_multiply_transform(struct wined3d_stateblock *stat multiply_matrix(mat, mat, matrix); stateblock->changed.transform[d3dts >> 5] |= 1u << (d3dts & 0x1f); stateblock->changed.transforms = 1; + + if (d3dts == WINED3D_TS_VIEW || d3dts >= WINED3D_TS_WORLD) + stateblock->changed.modelview_matrices = 1; }
HRESULT CDECL wined3d_stateblock_set_clip_plane(struct wined3d_stateblock *stateblock,
Thanks for catching this! We should also invalidate the other bits. In fact, the easiest thing would be to call wined3d_stateblock_set_transform() from wined3d_stateblock_multiply_transform().