- first draft of D3DCLIPSTATUS8 handling (not really used for now)
- add a new DEBUG_SINGLE_MODE #define (for debug caps needs)
- better traces for surface dumping
- much better Texture support on Utilities functions and on
  CheckDeviceType
- D3DRS_ZVISIBLE as unsupported (as seen in msdn)

diff --git a/dlls/d3d8/utils.c b/dlls/d3d8/utils.c
index 0843a22..9c4d148 100644
--- a/dlls/d3d8/utils.c
+++ b/dlls/d3d8/utils.c
@@ -376,30 +376,41 @@
 
     switch (fmt) {
     /* color buffer */
-    case D3DFMT_P8:               retVal = 1; break;
     case D3DFMT_R3G3B2:           retVal = 1; break;
-    case D3DFMT_V8U8:             retVal = 2; break;
     case D3DFMT_R5G6B5:           retVal = 2; break;
+    case D3DFMT_R8G8B8:           retVal = 3; break;
+    case D3DFMT_A1R5G5B5:         retVal = 2; break;
     case D3DFMT_X1R5G5B5:         retVal = 2; break;
     case D3DFMT_A4R4G4B4:         retVal = 2; break;
     case D3DFMT_X4R4G4B4:         retVal = 2; break;
-    case D3DFMT_A1R5G5B5:         retVal = 2; break;
-    case D3DFMT_R8G8B8:           retVal = 3; break;
-    case D3DFMT_X8R8G8B8:         retVal = 4; break;
     case D3DFMT_A8R8G8B8:         retVal = 4; break;
+    case D3DFMT_X8R8G8B8:         retVal = 4; break;
+    /* Paletted */
+    case D3DFMT_P8:               retVal = 1; break;
+    case D3DFMT_A8P8:             retVal = 2; break;
     /* depth/stencil buffer */
     case D3DFMT_D16_LOCKABLE:     retVal = 2; break;
     case D3DFMT_D16:              retVal = 2; break;
+    case D3DFMT_D32:              retVal = 4; break;
     case D3DFMT_D15S1:            retVal = 2; break;
     case D3DFMT_D24X4S4:          retVal = 4; break;
     case D3DFMT_D24S8:            retVal = 4; break;
     case D3DFMT_D24X8:            retVal = 4; break;
-    case D3DFMT_D32:              retVal = 4; break;
+    /* Luminance */
+    case D3DFMT_L8:               retVal = 1; break;
+    case D3DFMT_A4L4:             retVal = 1; break;
+    case D3DFMT_A8L8:             retVal = 2; break;
+    /* Bump */
+    case D3DFMT_V8U8:             retVal = 2; break;
+    case D3DFMT_L6V5U5:           retVal = 2; break;
+    case D3DFMT_V16U16:           retVal = 4; break;
+    case D3DFMT_X8L8V8U8:         retVal = 4; break;
     /* Compressed */				  
     case D3DFMT_DXT1:             retVal = 1; break; /* Actually  8 bytes per 16 pixels - Special cased later */
     case D3DFMT_DXT3:             retVal = 1; break; /* Actually 16 bytes per 16 pixels */
     case D3DFMT_DXT5:             retVal = 1; break; /* Actually 16 bytes per 16 pixels */
-
+    /* to see */
+    case D3DFMT_A8:               retVal = 1; break;      
     /* unknown */				  
     case D3DFMT_UNKNOWN:
       /* Guess at the highest value of the above */
@@ -431,16 +442,30 @@
 
     if (retVal == 0) {
         switch (fmt) {
+        /* Paletted */
         case D3DFMT_P8:               retVal = GL_COLOR_INDEX8_EXT; break;
         case D3DFMT_A8P8:             retVal = GL_COLOR_INDEX8_EXT; break;
+	/* Luminance */
+	case D3DFMT_L8:               retVal = GL_LUMINANCE8; break;
+	case D3DFMT_A8L8:             retVal = GL_LUMINANCE8_ALPHA8; break;
+	case D3DFMT_A4L4:             retVal = GL_LUMINANCE4_ALPHA4; break;
+        /* Bump */
         case D3DFMT_V8U8:             retVal = GL_COLOR_INDEX8_EXT; break;
-
-        case D3DFMT_A4R4G4B4:         retVal = GL_RGBA4; break;
-        case D3DFMT_A8R8G8B8:         retVal = GL_RGBA8; break;
-        case D3DFMT_X8R8G8B8:         retVal = GL_RGB8; break;
-        case D3DFMT_R8G8B8:           retVal = GL_RGB8; break;
+	case D3DFMT_V16U16:           retVal = GL_COLOR_INDEX; break;
+        case D3DFMT_L6V5U5:           retVal = GL_COLOR_INDEX8_EXT; break;
+	case D3DFMT_X8L8V8U8:         retVal = GL_COLOR_INDEX; break;
+        /* color buffer */ 
+	case D3DFMT_R3G3B2:           retVal = GL_R3_G3_B2; break;
         case D3DFMT_R5G6B5:           retVal = GL_RGB5; break; /* fixme: internal format 6 for g? */
+        case D3DFMT_R8G8B8:           retVal = GL_RGB8; break;
         case D3DFMT_A1R5G5B5:         retVal = GL_RGB5_A1; break;
+        case D3DFMT_X1R5G5B5:         retVal = GL_RGB5_A1; break;
+        case D3DFMT_A4R4G4B4:         retVal = GL_RGBA4; break;
+        case D3DFMT_X4R4G4B4:         retVal = GL_RGBA4; break;
+        case D3DFMT_A8R8G8B8:         retVal = GL_RGBA8; break;
+        case D3DFMT_X8R8G8B8:         retVal = GL_RGBA8; break;
+        /* to see */
+        case D3DFMT_A8:               retVal = GL_ALPHA8; break;
         default:
             FIXME("Unhandled fmt(%u,%s)\n", fmt, debug_d3dformat(fmt));
             retVal = GL_RGB8;
@@ -466,16 +491,30 @@
 
     if (retVal == 0) {
         switch (fmt) {
+        /* Paletted */
         case D3DFMT_P8:               retVal = GL_COLOR_INDEX; break;
         case D3DFMT_A8P8:             retVal = GL_COLOR_INDEX; break;
+	/* Luminance */
+	case D3DFMT_L8:               retVal = GL_LUMINANCE; break;
+	case D3DFMT_A8L8:             retVal = GL_LUMINANCE_ALPHA; break;
+	case D3DFMT_A4L4:             retVal = GL_LUMINANCE_ALPHA; break;
+        /* Bump */
         case D3DFMT_V8U8:             retVal = GL_COLOR_INDEX; break;
-
+	case D3DFMT_V16U16:           retVal = GL_COLOR_INDEX; break;
+        case D3DFMT_L6V5U5:           retVal = GL_COLOR_INDEX; break;
+	case D3DFMT_X8L8V8U8:         retVal = GL_COLOR_INDEX; break;
+        /* color buffer */
+	case D3DFMT_R3G3B2:           retVal = GL_BGR; break;
+        case D3DFMT_R5G6B5:           retVal = GL_RGB; break;
+        case D3DFMT_R8G8B8:           retVal = GL_RGB; break;
+        case D3DFMT_A1R5G5B5:         retVal = GL_BGRA; break;
+        case D3DFMT_X1R5G5B5:         retVal = GL_BGRA; break;
         case D3DFMT_A4R4G4B4:         retVal = GL_BGRA; break;
+        case D3DFMT_X4R4G4B4:         retVal = GL_BGRA; break;
         case D3DFMT_A8R8G8B8:         retVal = GL_BGRA; break;
         case D3DFMT_X8R8G8B8:         retVal = GL_BGRA; break;
-        case D3DFMT_R8G8B8:           retVal = GL_BGR; break;
-        case D3DFMT_R5G6B5:           retVal = GL_RGB; break;
-        case D3DFMT_A1R5G5B5:         retVal = GL_BGRA; break;
+        /* to see */
+        case D3DFMT_A8:               retVal = GL_ALPHA; break;
         default:
             FIXME("Unhandled fmt(%u,%s)\n", fmt, debug_d3dformat(fmt));
             retVal = GL_BGR;
@@ -502,16 +541,30 @@
 
     if (retVal == 0) {
         switch (fmt) {
+        /* Paletted */
         case D3DFMT_P8:               retVal = GL_UNSIGNED_BYTE; break;
         case D3DFMT_A8P8:             retVal = GL_UNSIGNED_BYTE; break;        
-	case D3DFMT_V8U8:             retVal = GL_UNSIGNED_BYTE; break;
-
-        case D3DFMT_A4R4G4B4:         retVal = GL_UNSIGNED_SHORT_4_4_4_4_REV; break;
-        case D3DFMT_A8R8G8B8:         retVal = GL_UNSIGNED_BYTE; break;
-        case D3DFMT_X8R8G8B8:         retVal = GL_UNSIGNED_BYTE; break;
+	/* Luminance */
+	case D3DFMT_L8:               retVal = GL_UNSIGNED_BYTE; break;
+	case D3DFMT_A8L8:             retVal = GL_UNSIGNED_BYTE; break;
+	case D3DFMT_A4L4:             retVal = GL_UNSIGNED_BYTE; break;
+        /* Bump */
+        case D3DFMT_V8U8:             retVal = GL_UNSIGNED_BYTE; break;
+	case D3DFMT_V16U16:           retVal = GL_UNSIGNED_SHORT; break;
+        case D3DFMT_L6V5U5:           retVal = GL_UNSIGNED_SHORT_5_5_5_1; break;
+	case D3DFMT_X8L8V8U8:         retVal = GL_UNSIGNED_BYTE; break;
+        /* Color buffer */
+	case D3DFMT_R3G3B2:           retVal = GL_UNSIGNED_BYTE_2_3_3_REV; break;
         case D3DFMT_R5G6B5:           retVal = GL_UNSIGNED_SHORT_5_6_5; break;
         case D3DFMT_R8G8B8:           retVal = GL_UNSIGNED_BYTE; break;
         case D3DFMT_A1R5G5B5:         retVal = GL_UNSIGNED_SHORT_1_5_5_5_REV; break;
+        case D3DFMT_X1R5G5B5:         retVal = GL_UNSIGNED_SHORT_1_5_5_5_REV; break;
+        case D3DFMT_A4R4G4B4:         retVal = GL_UNSIGNED_SHORT_4_4_4_4_REV; break;
+        case D3DFMT_X4R4G4B4:         retVal = GL_UNSIGNED_SHORT_4_4_4_4_REV; break;
+        case D3DFMT_A8R8G8B8:         retVal = GL_UNSIGNED_INT_8_8_8_8_REV; break;
+        case D3DFMT_X8R8G8B8:         retVal = GL_UNSIGNED_INT_8_8_8_8_REV; break;
+        /* to see */
+        case D3DFMT_A8:               retVal = GL_ALPHA; break;
         default:
             FIXME("Unhandled fmt(%u,%s)\n", fmt, debug_d3dformat(fmt));
             retVal = GL_UNSIGNED_BYTE;