[1/13] WineD3D Do not print the fixed / unfixed vertices warning with shaders

Stefan Dösinger stefan at codeweavers.com
Tue Feb 20 15:42:34 CST 2007


-------------- next part --------------
From e05a92de60b40da9ee2f6f88ba7528955309328d Mon Sep 17 00:00:00 2001
From: Stefan Doesinger <stefan at codeweavers.com>
Date: Mon, 19 Feb 2007 00:49:56 +0100
Subject: [PATCH] WineD3D Do not print the fixed / unfixed vertices warning with shaders

Mixing vertices from Vertex buffers with vbos and VBs without vbos is
only bad with the fixed function pipeline, because that could lead to
colors or transformed vertices unfixed in drawStridedFast. When vertex
shaders are used no conversion is needed. If a user pointer source is
used(no vertex buffer) then no warning is needed either because the
declaration used with UPs must reference only one stream which is never
fixed up
---
 dlls/wined3d/drawprim.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/dlls/wined3d/drawprim.c b/dlls/wined3d/drawprim.c
index 9162c01..0a2ec8e 100644
--- a/dlls/wined3d/drawprim.c
+++ b/dlls/wined3d/drawprim.c
@@ -178,7 +178,6 @@ void primitiveDeclarationConvertToStridedData(
             TRACE("Stream is up %d, %p\n", element->Stream, This->stateBlock->streamSource[element->Stream]);
             streamVBO = 0;
             data    = (BYTE *)This->stateBlock->streamSource[element->Stream];
-            if(fixup && *fixup) FIXME("Missing fixed and unfixed vertices, expect graphics glitches\n");
         } else {
             TRACE("Stream isn't up %d, %p\n", element->Stream, This->stateBlock->streamSource[element->Stream]);
             if(!isPreLoaded[element->Stream]) {
@@ -189,7 +188,10 @@ void primitiveDeclarationConvertToStridedData(
             data    = IWineD3DVertexBufferImpl_GetMemory(This->stateBlock->streamSource[element->Stream], 0, &streamVBO);
             if(fixup) {
                 if( streamVBO != 0) *fixup = TRUE;
-                else if(*fixup) FIXME("Missing fixed and unfixed vertices, expect graphics glitches\n");
+                else if(*fixup && This->stateBlock->vertexShader == NULL) {
+                    /* This may be bad with the fixed function pipeline */
+                    FIXME("Missing fixed and unfixed vertices, expect graphics glitches\n");
+                }
             }
         }
         stride  = This->stateBlock->streamStride[element->Stream];
-- 
1.4.4.3



More information about the wine-patches mailing list