- dsound and d3d works better when x11drv locks/unlocks are correct
- more traces

diff --git a/dlls/d3d8/utils.c b/dlls/d3d8/utils.c
index 6aaa709..bc32551 100644
--- a/dlls/d3d8/utils.c
+++ b/dlls/d3d8/utils.c
@@ -691,6 +691,8 @@
         TRACE("Alpha?(%d), Stage:%d Op(%d), a1(%ld), a2(%ld), a3(%ld)\n", isAlpha, Stage, op, arg1, arg2, arg3);
         if (op == D3DTOP_DISABLE) return;
 
+	ENTER_GL();
+
         /* Note: Operations usually involve two ars, src0 and src1 and are operations of
            the form (a1 <operation> a2). However, some of the more complex operations
            take 3 parameters. Instead of the (sensible) addition of a3, Microsoft added  
@@ -1005,6 +1007,8 @@
                default:
                    FIXME("Cant have COMBINE4 and COMBINE in efferct together, thisop=%d, otherop=%ld, isAlpha(%d)\n", 
                               op, op2, isAlpha);
+
+		   LEAVE_GL();
                    return;
                }
            }
@@ -1013,6 +1017,8 @@
            if (combineOK == TRUE) {
 	       glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, useext(GL_COMBINE));
 	       checkGLcall("GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, useext(GL_COMBINE)");
+
+	       LEAVE_GL();
 	       return;
            }
         }
@@ -1253,10 +1259,14 @@
         if (Handled) {
 	    glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE4_NV);
 	    checkGLcall("GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE4_NV");
-            return;
+
+	    LEAVE_GL();
+	    return;
         }
 #endif /* GL_NV_texture_env_combine4 */
 
+	LEAVE_GL();
+
         /* After all the extensions, if still unhandled, report fixme */
         FIXME("Unhandled texture operation %d\n", op);
 }