Fix the draw*primitiveUP calls so they work directly after a draw which uses vertex shaders.
diff --git a/dlls/d3d8/drawprim.c b/dlls/d3d8/drawprim.c index 8195e24..7a673e5 100644 --- a/dlls/d3d8/drawprim.c +++ b/dlls/d3d8/drawprim.c
@@ -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;