Clear should not be affected by write masks.

diff --git a/dlls/d3d8/device.c b/dlls/d3d8/device.c
index 72b7541..721e466 100644
--- a/dlls/d3d8/device.c
+++ b/dlls/d3d8/device.c
@@ -1363,6 +1363,7 @@
         glClearStencil(Stencil);
         checkGLcall("glClearStencil");
         glMask = glMask | GL_STENCIL_BUFFER_BIT;
+        glStencilMask(0xFFFFFFFF);
     }
 
     if (Flags & D3DCLEAR_ZBUFFER) {
@@ -1419,6 +1420,7 @@
     /* Restore the old values (why..?) */
     if (Flags & D3DCLEAR_STENCIL) {
         glClearStencil(old_stencil_clear_value);
+        glStencilMask(This->StateBlock->renderstate[D3DRS_STENCILWRITEMASK]);
     }    
     if (Flags & D3DCLEAR_ZBUFFER) {
         glDepthMask(old_ztest);