[dx99] Mafia Demo patch for bug #1670

Jason Edmeades us at the-edmeades.demon.co.uk
Mon Jan 5 15:26:21 CST 2004


Sorry - been too busy for wine recently, but have just started to get 
those urges again... Started with a reported d3d8 bug, #1670 which 
occurs when you crash into a lamp post. The application did a draw with 
a vertex shader followed by a call to the odd drawprimitiveUP, and I 
forgot to check a flag which meant we tried to use multiple streams 
which were not set up and hence trapped.

Changelog

Fix the draw*primitiveUP calls so they work directly after a draw which 
uses vertex shaders.

Jason
-------------- next part --------------
cvs server: Diffing dlls/d3d8
Index: dlls/d3d8/drawprim.c
===================================================================
RCS file: /home/wine/wine/dlls/d3d8/drawprim.c,v
retrieving revision 1.14
diff -u -r1.14 drawprim.c
--- dlls/d3d8/drawprim.c	17 Nov 2003 20:04:44 -0000	1.14
+++ dlls/d3d8/drawprim.c	5 Jan 2004 21:22:54 -0000
@@ -354,7 +354,7 @@
        For the non-created vertex shaders, the VertexShader var holds the real 
           FVF and only stream 0 matters
        For the created vertex shaders, there is an FVF per stream              */
-    if (This->UpdateStateBlock->VertexShader > VS_HIGHESTFIXEDFXF) {
+    if (!This->StateBlock->streamIsUP && (This->UpdateStateBlock->VertexShader > VS_HIGHESTFIXEDFXF)) {
         LoopThroughTo = MAX_STREAMS;
     } else {
         LoopThroughTo = 1;


More information about the wine-patches mailing list