Index: /trunk/src/VBox/Additions/WINNT/Graphics/Display/wddm/VBoxDispD3D.cpp
===================================================================
--- /trunk/src/VBox/Additions/WINNT/Graphics/Display/wddm/VBoxDispD3D.cpp	(revision 29965)
+++ /trunk/src/VBox/Additions/WINNT/Graphics/Display/wddm/VBoxDispD3D.cpp	(revision 29966)
@@ -1068,12 +1068,39 @@
         {
             Assert(pData->DataSize >= sizeof (D3DCAPS9));
+//            AssertBreakpoint();
             if (pData->DataSize >= sizeof (D3DCAPS9))
             {
                 if (pAdapter->pD3D9If)
                 {
-                    hr = pAdapter->pD3D9If->GetDeviceCaps(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, (D3DCAPS9*)pData->pData);
+                    D3DCAPS9* pCaps = (D3DCAPS9*)pData->pData;
+                    hr = pAdapter->pD3D9If->GetDeviceCaps(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, pCaps);
                     Assert(hr == S_OK);
                     if (hr == S_OK)
+                    {
+                        pCaps->Caps2 |= D3DCAPS2_CANSHARERESOURCE | 0x00080000 /*D3DCAPS2_CANRENDERWINDOWED*/;
+                        pCaps->DevCaps |= D3DDEVCAPS_FLOATTLVERTEX /* <- must be set according to the docs */
+                                /*| D3DDEVCAPS_HWVERTEXBUFFER | D3DDEVCAPS_HWINDEXBUFFER |  D3DDEVCAPS_SUBVOLUMELOCK */;
+                        pCaps->PrimitiveMiscCaps |= D3DPMISCCAPS_INDEPENDENTWRITEMASKS
+                                | D3DPMISCCAPS_FOGINFVF
+                                | D3DPMISCCAPS_SEPARATEALPHABLEND | D3DPMISCCAPS_MRTINDEPENDENTBITDEPTHS;
+                        pCaps->RasterCaps |= D3DPRASTERCAPS_SUBPIXEL | D3DPRASTERCAPS_STIPPLE | D3DPRASTERCAPS_ZBIAS | D3DPRASTERCAPS_COLORPERSPECTIVE /* keep */;
+                        pCaps->TextureCaps |= D3DPTEXTURECAPS_TRANSPARENCY | D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE;
+                        pCaps->TextureAddressCaps |= D3DPTADDRESSCAPS_MIRRORONCE;
+                        pCaps->VolumeTextureAddressCaps |= D3DPTADDRESSCAPS_MIRRORONCE;
+                        pCaps->GuardBandLeft = -8192.;
+                        pCaps->GuardBandTop = -8192.;
+                        pCaps->GuardBandRight = 8192.;
+                        pCaps->GuardBandBottom = 8192.;
+                        pCaps->StencilCaps |= D3DSTENCILCAPS_TWOSIDED;
+                        pCaps->DeclTypes |= D3DDTCAPS_FLOAT16_2 | D3DDTCAPS_FLOAT16_4;
+                        pCaps->VS20Caps.DynamicFlowControlDepth = 24;
+                        pCaps->VS20Caps.NumTemps = D3DVS20_MAX_NUMTEMPS;
+                        pCaps->PS20Caps.DynamicFlowControlDepth = 24;
+                        pCaps->PS20Caps.NumTemps = D3DVS20_MAX_NUMTEMPS;
+                        pCaps->VertexTextureFilterCaps |= D3DPTFILTERCAPS_MINFPOINT | D3DPTFILTERCAPS_MAGFPOINT;
+                        pCaps->MaxVertexShader30InstructionSlots = 512;
+                        pCaps->MaxPixelShader30InstructionSlots = 512;
                         break;
+                    }
 
                     vboxVDbgPrintR((__FUNCTION__": GetDeviceCaps hr(%d)\n", hr));
Index: /trunk/src/VBox/Additions/WINNT/Graphics/Miniport/wddm/VBoxVideoIf.h
===================================================================
--- /trunk/src/VBox/Additions/WINNT/Graphics/Miniport/wddm/VBoxVideoIf.h	(revision 29965)
+++ /trunk/src/VBox/Additions/WINNT/Graphics/Miniport/wddm/VBoxVideoIf.h	(revision 29966)
@@ -154,4 +154,17 @@
         case D3DDDIFMT_P8:
             return 8;
+        case D3DDDIFMT_D16_LOCKABLE:
+        case D3DDDIFMT_D16:
+        case D3DDDIFMT_D15S1:
+            return 16;
+        case D3DDDIFMT_D32:
+        case D3DDDIFMT_D24S8:
+        case D3DDDIFMT_D24X8:
+        case D3DDDIFMT_D24X4S4:
+        case D3DDDIFMT_D24FS8:
+        case D3DDDIFMT_D32_LOCKABLE:
+            return 32;
+        case D3DDDIFMT_S8_LOCKABLE:
+            return 8;
         default:
             AssertBreakpoint();
Index: /trunk/src/VBox/Additions/WINNT/Graphics/Miniport/wddm/VBoxVideoVhwa.cpp
===================================================================
--- /trunk/src/VBox/Additions/WINNT/Graphics/Miniport/wddm/VBoxVideoVhwa.cpp	(revision 29965)
+++ /trunk/src/VBox/Additions/WINNT/Graphics/Miniport/wddm/VBoxVideoVhwa.cpp	(revision 29966)
@@ -561,4 +561,7 @@
         pSurf->SurfDesc.pitch = pInfo->pitch;
         Assert(pSurf->SurfDesc.pitch);
+        /* @todo: make this properly */
+        pSurf->SurfDesc.bpp = (pSurf->SurfDesc.cbSize * 8) / pSurf->SurfDesc.height / pSurf->SurfDesc.pitch;
+        Assert(pSurf->SurfDesc.bpp);
     }
     else
