Index: trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/dx/VBoxDX.cpp
===================================================================
--- trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/dx/VBoxDX.cpp	(revision 105566)
+++ trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/dx/VBoxDX.cpp	(revision 105575)
@@ -1195,23 +1195,47 @@
     uint8 lineStippleFactor     = 0; /** @todo */
     uint16 lineStipplePattern   = 0; /** @todo */
-    /** @todo uint32 forcedSampleCount = p->ForcedSampleCount; SVGA3dCmdDXDefineRasterizerState_v2 */
-
-    vgpu10DefineRasterizerState(pDevice,
-                                pRasterizerState->uRasterizerId,
-                                fillMode,
-                                cullMode,
-                                frontCounterClockwise,
-                                provokingVertexLast,
-                                depthBias,
-                                depthBiasClamp,
-                                slopeScaledDepthBias,
-                                depthClipEnable,
-                                scissorEnable,
-                                multisampleEnable,
-                                antialiasedLineEnable,
-                                lineWidth,
-                                lineStippleEnable,
-                                lineStippleFactor,
-                                lineStipplePattern);
+    uint32 forcedSampleCount    = p->ForcedSampleCount;
+
+    if (pDevice->pAdapter->fVBoxCaps & VBSVGA3D_CAP_RASTERIZER_STATE_V2)
+    {
+        vgpu10DefineRasterizerState_v2(pDevice,
+                                       pRasterizerState->uRasterizerId,
+                                       fillMode,
+                                       cullMode,
+                                       frontCounterClockwise,
+                                       provokingVertexLast,
+                                       depthBias,
+                                       depthBiasClamp,
+                                       slopeScaledDepthBias,
+                                       depthClipEnable,
+                                       scissorEnable,
+                                       multisampleEnable,
+                                       antialiasedLineEnable,
+                                       lineWidth,
+                                       lineStippleEnable,
+                                       lineStippleFactor,
+                                       lineStipplePattern,
+                                       forcedSampleCount);
+    }
+    else
+    {
+        vgpu10DefineRasterizerState(pDevice,
+                                    pRasterizerState->uRasterizerId,
+                                    fillMode,
+                                    cullMode,
+                                    frontCounterClockwise,
+                                    provokingVertexLast,
+                                    depthBias,
+                                    depthBiasClamp,
+                                    slopeScaledDepthBias,
+                                    depthClipEnable,
+                                    scissorEnable,
+                                    multisampleEnable,
+                                    antialiasedLineEnable,
+                                    lineWidth,
+                                    lineStippleEnable,
+                                    lineStippleFactor,
+                                    lineStipplePattern);
+    }
 }
 
Index: trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/dx/VBoxDXCmd.cpp
===================================================================
--- trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/dx/VBoxDXCmd.cpp	(revision 105566)
+++ trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/dx/VBoxDXCmd.cpp	(revision 105575)
@@ -192,4 +192,52 @@
 
 
+int vgpu10DefineRasterizerState_v2(PVBOXDX_DEVICE pDevice,
+                                   SVGA3dRasterizerStateId rasterizerId,
+                                   uint8 fillMode,
+                                   SVGA3dCullMode cullMode,
+                                   uint8 frontCounterClockwise,
+                                   uint8 provokingVertexLast,
+                                   int32 depthBias,
+                                   float depthBiasClamp,
+                                   float slopeScaledDepthBias,
+                                   uint8 depthClipEnable,
+                                   uint8 scissorEnable,
+                                   SVGA3dMultisampleRastEnable multisampleEnable,
+                                   uint8 antialiasedLineEnable,
+                                   float lineWidth,
+                                   uint8 lineStippleEnable,
+                                   uint8 lineStippleFactor,
+                                   uint16 lineStipplePattern,
+                                   uint32 forcedSampleCount)
+{
+    void *pvCmd = vboxDXCommandBufferReserve(pDevice, SVGA_3D_CMD_DX_DEFINE_RASTERIZER_STATE_V2,
+                                             sizeof(SVGA3dCmdDXDefineRasterizerState_v2));
+    if (!pvCmd)
+        return VERR_NO_MEMORY;
+
+    SVGA3dCmdDXDefineRasterizerState_v2 *cmd = (SVGA3dCmdDXDefineRasterizerState_v2 *)pvCmd;
+    SET_CMD_FIELD(rasterizerId);
+    SET_CMD_FIELD(fillMode);
+    SET_CMD_FIELD(cullMode);
+    SET_CMD_FIELD(frontCounterClockwise);
+    SET_CMD_FIELD(provokingVertexLast);
+    SET_CMD_FIELD(depthBias);
+    SET_CMD_FIELD(depthBiasClamp);
+    SET_CMD_FIELD(slopeScaledDepthBias);
+    SET_CMD_FIELD(depthClipEnable);
+    SET_CMD_FIELD(scissorEnable);
+    SET_CMD_FIELD(multisampleEnable);
+    SET_CMD_FIELD(antialiasedLineEnable);
+    SET_CMD_FIELD(lineWidth);
+    SET_CMD_FIELD(lineStippleEnable);
+    SET_CMD_FIELD(lineStippleFactor);
+    SET_CMD_FIELD(lineStipplePattern);
+    SET_CMD_FIELD(forcedSampleCount);
+
+    vboxDXCommandBufferCommit(pDevice);
+    return VINF_SUCCESS;
+}
+
+
 int vgpu10DestroyRasterizerState(PVBOXDX_DEVICE pDevice,
                                  SVGA3dRasterizerStateId rasterizerId)
Index: trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/dx/VBoxDXCmd.h
===================================================================
--- trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/dx/VBoxDXCmd.h	(revision 105566)
+++ trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/dx/VBoxDXCmd.h	(revision 105575)
@@ -76,4 +76,22 @@
                                 uint8 lineStippleFactor,
                                 uint16 lineStipplePattern);
+int vgpu10DefineRasterizerState_v2(PVBOXDX_DEVICE pDevice,
+                                   SVGA3dRasterizerStateId rasterizerId,
+                                   uint8 fillMode,
+                                   SVGA3dCullMode cullMode,
+                                   uint8 frontCounterClockwise,
+                                   uint8 provokingVertexLast,
+                                   int32 depthBias,
+                                   float depthBiasClamp,
+                                   float slopeScaledDepthBias,
+                                   uint8 depthClipEnable,
+                                   uint8 scissorEnable,
+                                   SVGA3dMultisampleRastEnable multisampleEnable,
+                                   uint8 antialiasedLineEnable,
+                                   float lineWidth,
+                                   uint8 lineStippleEnable,
+                                   uint8 lineStippleFactor,
+                                   uint16 lineStipplePattern,
+                                   uint32 forcedSampleCount);
 int vgpu10DestroyRasterizerState(PVBOXDX_DEVICE pDevice,
                                  SVGA3dRasterizerStateId rasterizerId);
Index: trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/gallium/SvgaRender.cpp
===================================================================
--- trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/gallium/SvgaRender.cpp	(revision 105566)
+++ trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/gallium/SvgaRender.cpp	(revision 105575)
@@ -1236,4 +1236,13 @@
 {
     SVGA3dCmdDXDefineRasterizerState *pCmd = (SVGA3dCmdDXDefineRasterizerState *)&pHeader[1];
+    DEBUG_VERIFYCMD_RETURN();
+    return SvgaCOTNotifyId(pSvga, pSvgaContext, SVGA_COTABLE_RASTERIZERSTATE, pCmd->rasterizerId);
+}
+
+
+/* SVGA_3D_CMD_DX_DEFINE_RASTERIZER_STATE_V2 1288 */
+static NTSTATUS procCmdDXDefineRasterizerState_v2(PVBOXWDDM_EXT_VMSVGA pSvga, PVMSVGACONTEXT pSvgaContext, SVGA3dCmdHeader *pHeader)
+{
+    SVGA3dCmdDXDefineRasterizerState_v2 *pCmd = (SVGA3dCmdDXDefineRasterizerState_v2 *)&pHeader[1];
     DEBUG_VERIFYCMD_RETURN();
     return SvgaCOTNotifyId(pSvga, pSvgaContext, SVGA_COTABLE_RASTERIZERSTATE, pCmd->rasterizerId);
@@ -2198,4 +2207,29 @@
     { procCmdSurfaceStretchBltNonMSToMS },          // SVGA_3D_CMD_SURFACE_STRETCHBLT_NON_MS_TO_MS
     { procCmdDXBindShaderIface },                   // SVGA_3D_CMD_DX_BIND_SHADER_IFACE
+    { procCmdInvalid },                             // SVGA_3D_CMD_UPDATE_GB_SCREENTARGET_MOVE = 1278,
+    { procCmdInvalid },                             // 1279,
+    { procCmdInvalid },                             // 1280,
+    { procCmdInvalid },                             // SVGA_3D_CMD_DX_PRED_STAGING_COPY = 1281,
+    { procCmdInvalid },                             // SVGA_3D_CMD_DX_STAGING_COPY = 1282,
+    { procCmdInvalid },                             // SVGA_3D_CMD_DX_PRED_STAGING_COPY_REGION = 1283,
+    { procCmdInvalid },                             // SVGA_3D_CMD_DX_SET_VERTEX_BUFFERS_V2 = 1284,
+    { procCmdInvalid },                             // SVGA_3D_CMD_DX_SET_INDEX_BUFFER_V2 = 1285,
+    { procCmdInvalid },                             // SVGA_3D_CMD_DX_SET_VERTEX_BUFFERS_OFFSET_AND_SIZE = 1286,
+    { procCmdInvalid },                             // SVGA_3D_CMD_DX_SET_INDEX_BUFFER_OFFSET_AND_SIZE = 1287,
+    { procCmdDXDefineRasterizerState_v2 },          // SVGA_3D_CMD_DX_DEFINE_RASTERIZER_STATE_V2
+    { procCmdInvalid },                             // SVGA_3D_CMD_DX_PRED_STAGING_CONVERT_REGION = 1289,
+    { procCmdInvalid },                             // SVGA_3D_CMD_DX_PRED_STAGING_CONVERT = 1290,
+    { procCmdInvalid },                             // SVGA_3D_CMD_DX_STAGING_BUFFER_COPY = 1291,
+    { procCmdInvalid },                             // 1292,
+    { procCmdInvalid },                             // 1293,
+    { procCmdInvalid },                             // 1294,
+    { procCmdInvalid },                             // 1295,
+    { procCmdInvalid },                             // 1296,
+    { procCmdInvalid },                             // 1297,
+    { procCmdInvalid },                             // 1298,
+    { procCmdInvalid },                             // 1299,
+    { procCmdInvalid },                             // 1300,
+    { procCmdInvalid },                             // 1301,
+    { procCmdInvalid },                             // 1302,
 
     /* VirtualBox commands */
