diff -urN wine-2.18-orig/dlls/d3d11/device.c wine-2.18/dlls/d3d11/device.c
--- wine-2.18-orig/dlls/d3d11/device.c	2017-09-30 03:30:17 +0900
+++ wine-2.18/dlls/d3d11/device.c	2017-10-17 16:53:15 +0900
@@ -718,6 +718,7 @@
     if (desc->RenderTarget[0].BlendEnable)
     {
         const D3D11_RENDER_TARGET_BLEND_DESC *d = &desc->RenderTarget[0];
+        DWORD color;
 
         wined3d_device_set_render_state(device->wined3d_device, WINED3D_RS_SRCBLEND, d->SrcBlend);
         wined3d_device_set_render_state(device->wined3d_device, WINED3D_RS_DESTBLEND, d->DestBlend);
@@ -727,12 +728,11 @@
         wined3d_device_set_render_state(device->wined3d_device, WINED3D_RS_DESTBLENDALPHA, d->DestBlendAlpha);
         wined3d_device_set_render_state(device->wined3d_device, WINED3D_RS_BLENDOPALPHA, d->BlendOpAlpha);
 
-        if (memcmp(blend_factor, default_blend_factor, sizeof(default_blend_factor))
-                && (d->SrcBlend == D3D11_BLEND_BLEND_FACTOR || d->SrcBlend == D3D11_BLEND_INV_BLEND_FACTOR
-                || d->DestBlend == D3D11_BLEND_BLEND_FACTOR || d->DestBlend == D3D11_BLEND_INV_BLEND_FACTOR
-                || d->SrcBlendAlpha == D3D11_BLEND_BLEND_FACTOR || d->SrcBlendAlpha == D3D11_BLEND_INV_BLEND_FACTOR
-                || d->DestBlendAlpha == D3D11_BLEND_BLEND_FACTOR || d->DestBlendAlpha == D3D11_BLEND_INV_BLEND_FACTOR))
-            FIXME("Ignoring blend factor %s.\n", debug_float4(blend_factor));
+        color = (int)(min(max(blend_factor[0], 0.0f), 1.0f) * 255.0f + 0.5f) << 16
+              | (int)(min(max(blend_factor[1], 0.0f), 1.0f) * 255.0f + 0.5f) << 8
+              | (int)(min(max(blend_factor[2], 0.0f), 1.0f) * 255.0f + 0.5f) << 0
+              | (int)(min(max(blend_factor[3], 0.0f), 1.0f) * 255.0f + 0.5f) << 24;
+        wined3d_device_set_render_state(device->wined3d_device, WINED3D_RS_BLENDFACTOR, color);
     }
     wined3d_device_set_render_state(device->wined3d_device,
             WINED3D_RS_COLORWRITEENABLE, desc->RenderTarget[0].RenderTargetWriteMask);
