]> Chaos Git - misc/patchrepo.git/commitdiff
Update wine patches
authorchaoskagami <chaos.kagami@gmail.com>
Tue, 9 Feb 2016 16:47:43 +0000 (11:47 -0500)
committerchaoskagami <chaos.kagami@gmail.com>
Tue, 9 Feb 2016 16:47:43 +0000 (11:47 -0500)
README.md
wine/nine-staging-1.9.2.patch [moved from wine/wine-1.9.1-nine_for_staging.patch with 85% similarity]
wine/nine-vanilla-1.9.2.patch [moved from wine/wine-1.9.1-nine.patch with 87% similarity]

index 132e2fccd024019d752acc287927027e0d885cf0..2ab89cd280d355f11a8fb0075aa9cc3cbe4d2c1c 100644 (file)
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@ They either fix a bug, fix a build, or change functionality. Point is, I have a
 I make every effort to slap documentation at the head of every patch, so read it.
 
 * aria2/
-    * aria2-1.19.0-leech.patch (works with offsets - 1.19.3)
+    * aria2-1.19.0-leech.patch (works 1.19.3)
         * Adds a --disable-seed option. Does what you expect. Now you too can be a leech with a wonderful 0.0 seed ratio (pfft.) This is custom.
 * wget/
     * wget-no-egd-libressl.patch
@@ -27,17 +27,16 @@ I make every effort to slap documentation at the head of every patch, so read it
         * Adds ECDHE-Camellia-GCM cipher suites to nss.
         * Pale Moon forces internal nss now, so this is of limited utility, but disabling the check with PM allows to build against a patched system-nss.
 * wine/
-    * wine-1.7.54-force-laa-exec.patch (works - 1.9.1)
+    * wine-1.7.54-force-laa-exec.patch (works 1.9.3, w|wo staging)
         * Environment var 'WINE_FORCE_LARGEADDR' can be set to force a binary to run as if the LAA flag is set. Useful for some games that need dll injection to fix otherwise.
-    * wine-1.7.54-mmap-higher-memory.patch (works - 1.9.1)
+    * wine-1.7.54-mmap-higher-memory.patch (works 1.9.3, w|wo staging)
         * Environment var 'WINE_HIGHER_USERSPACE_MMAP' can be set to do allocation mapping starting at a higher location.
-    * wine-1.7.54-opengl-hooking-allow.patch (works - 1.9.1)
+    * wine-1.7.54-opengl-hooking-allow.patch (works 1.9.3, w|wo staging)
         * WINE by default loads glSwapBuffers directly from libGL.so. This makes WINE use RTLD_NEXT so preloads can override glSwapBuffers.
-    * All of the above are compatible with staging, too.
-    * wine-1.9.1-nine.patch
-        * This is the gallium nine state tracker from iXit/wine rebased onto 1.9.1 since NP-Hardass' tools cannot generate patches anymore. Read the patch header.
-    * wine-1.9.1-nine_for_staging.patch
+    * nine-staging-1.9.2.patch (works 1.9.2-1.9.3, vanilla)
+        * This is the gallium nine state tracker from iXit/wine as a patch for vanilla wine.
+    * nine-staging-1.9.2.patch (works 1.9.2-1.9.3, staging)
         * Again, nine state tracker. This is intended to be applied after staging and resolves a few conflicts not occuring otherwise.
 * gmpc/
-    * gmpc-*-fix-annoyance.patch
+    * gmpc-11.8.16-fix-annoyance.patch
         * Disables the annoying dialog when clearing the now playing queue. The average person clears now playing all the time. Seriously a design issue.
similarity index 85%
rename from wine/wine-1.9.1-nine_for_staging.patch
rename to wine/nine-staging-1.9.2.patch
index 55dca1b6748d0ce0a74288a9fdbe7eb32c1bb4ea..08093796daebc1b8b52507ddda238a03ff13ff4b 100644 (file)
@@ -1,19 +1,9 @@
-This is the same as the other patch, except it doesn't have any conflicts
-with staging. The other patch applies a few bits of staging: the dll
-redirection, the staging tab, etc.
+See the header of nine-vanilla-1.9.2.patch for information on this.
+This patch is intended for wine-staging.
 
-A few things that should be noted:
-   There's a tiny possibility of error here. There are two directx replacements:
-   CMST and nine, and neither are set mutually exclusive due to the dialog design.
-   I may fix this to make it a three bullet select-one-of.
-
-Read the header of the other patch for more usage details. This should be
-applied AFTER staging, not before it.
-
-diff -urN wine-1.9.1/configure.ac wine-1.9.1-staging+d3d9/configure.ac
---- wine-1.9.1/configure.ac    2016-01-18 06:51:08.392592452 -0500
-+++ wine-1.9.1-staging+d3d9/configure.ac       2016-01-18 06:33:43.818613768 -0500
-@@ -67,6 +67,8 @@
+--- wine-1.9.2/configure.ac    2016-01-22 09:28:32.000000000 -0500
++++ wine-nine/configure.ac     2016-02-09 10:49:31.854614094 -0500
+@@ -65,6 +65,8 @@
  AC_ARG_WITH(opencl,    AS_HELP_STRING([--without-opencl],[do not use OpenCL]),
              [if test "x$withval" = "xno"; then ac_cv_header_CL_cl_h=no; ac_cv_header_OpenCL_opencl_h=no; fi])
  AC_ARG_WITH(opengl,    AS_HELP_STRING([--without-opengl],[do not use OpenGL]))
@@ -22,7 +12,7 @@ diff -urN wine-1.9.1/configure.ac wine-1.9.1-staging+d3d9/configure.ac
  AC_ARG_WITH(osmesa,     AS_HELP_STRING([--without-osmesa],[do not use the OSMesa library]))
  AC_ARG_WITH(oss,       AS_HELP_STRING([--without-oss],[do not use the OSS sound support]))
  AC_ARG_WITH(pcap,      AS_HELP_STRING([--without-pcap],[do not use the Packet Capture library]),
-@@ -399,6 +401,8 @@
+@@ -381,6 +383,8 @@
  
  AC_SUBST(OPENGL_LIBS,"")
  
@@ -31,9 +21,9 @@ diff -urN wine-1.9.1/configure.ac wine-1.9.1-staging+d3d9/configure.ac
  dnl **** Check for header files ****
  
  AC_SYS_LARGEFILE()
-@@ -1205,6 +1209,195 @@
-     WINE_NOTICE_WITH(va,[test "x$ac_cv_lib_soname_va" = "x" -o "x$ac_cv_lib_soname_va_x11" = "x" -o "x$ac_cv_lib_soname_va_drm" = "x"],
                     [libva ${notice_platform}development files not found, GPU video acceleration won't be supported.])
+@@ -1158,6 +1162,195 @@
+     WINE_WARNING_WITH(opengl,[test -n "$opengl_msg"],[$opengl_msg
OpenGL and Direct3D won't be supported.])
  
 +    dnl Check for d3dadapter
 +    if test "x$with_d3dadapter" != "xno"
@@ -42,7 +32,7 @@ diff -urN wine-1.9.1/configure.ac wine-1.9.1-staging+d3d9/configure.ac
 +         D3D_MODULE_DIR=`pkg-config --variable=moduledir d3d`
 +         CPPFLAGSBAK=$CPPFLAGS
 +         # link against libdl
-+         CPPFLAGS="$CPPFLAGS -ldl"
++         CPPFLAGS="$CPPFLAGS -Wl,--no-as-needed -ldl"
 +       
 +         ac_cv_c_dlopen_d3dadapter=""
 +         AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include <dlfcn.h>
@@ -227,7 +217,7 @@ diff -urN wine-1.9.1/configure.ac wine-1.9.1-staging+d3d9/configure.ac
      CPPFLAGS="$ac_save_CPPFLAGS"
  else
      X_CFLAGS=""
-@@ -2839,6 +3032,7 @@
+@@ -2792,6 +2985,7 @@
  WINE_CONFIG_TEST(dlls/d3d8/tests)
  WINE_CONFIG_DLL(d3d9,,[implib])
  WINE_CONFIG_TEST(dlls/d3d9/tests)
@@ -235,9 +225,8 @@ diff -urN wine-1.9.1/configure.ac wine-1.9.1-staging+d3d9/configure.ac
  WINE_CONFIG_DLL(d3dcompiler_33)
  WINE_CONFIG_DLL(d3dcompiler_34)
  WINE_CONFIG_DLL(d3dcompiler_35)
-diff -urN wine-1.9.1/dlls/d3d9/Makefile.in wine-1.9.1-staging+d3d9/dlls/d3d9/Makefile.in
---- wine-1.9.1/dlls/d3d9/Makefile.in   2016-01-09 04:30:39.000000000 -0500
-+++ wine-1.9.1-staging+d3d9/dlls/d3d9/Makefile.in      2016-01-18 06:33:43.818613768 -0500
+--- wine-1.9.2/dlls/d3d9/Makefile.in   2016-01-22 09:28:32.000000000 -0500
++++ wine-nine/dlls/d3d9/Makefile.in    2016-02-09 10:49:31.948614100 -0500
 @@ -1,6 +1,6 @@
  MODULE    = d3d9.dll
  IMPORTLIB = d3d9
@@ -246,429 +235,8 @@ diff -urN wine-1.9.1/dlls/d3d9/Makefile.in wine-1.9.1-staging+d3d9/dlls/d3d9/Mak
  
  C_SRCS = \
        buffer.c \
-diff -urN wine-1.9.1/dlls/d3d9/tests/d3d9ex.c wine-1.9.1-staging+d3d9/dlls/d3d9/tests/d3d9ex.c
---- wine-1.9.1/dlls/d3d9/tests/d3d9ex.c        2016-01-09 04:30:39.000000000 -0500
-+++ wine-1.9.1-staging+d3d9/dlls/d3d9/tests/d3d9ex.c   2016-01-18 06:33:43.818613768 -0500
-@@ -1490,6 +1490,7 @@
-     HRESULT hr;
-     BOOL ret;
-     struct device_desc desc;
-+    IDirect3DSwapChain9 *swapchain;
-     window = CreateWindowA("static", "d3d9_test", WS_OVERLAPPEDWINDOW,
-             0, 0, 640, 480, NULL, NULL, NULL, NULL);
-@@ -1514,6 +1515,12 @@
-     hr = IDirect3DDevice9Ex_CheckDeviceState(device, NULL);
-     ok(hr == S_PRESENT_OCCLUDED, "Got unexpected hr %#x.\n", hr);
-+    hr = IDirect3DDevice9Ex_GetSwapChain(device, 0, &swapchain);
-+    ok(SUCCEEDED(hr), "Failed to get swapchain, hr %#x.\n", hr);
-+    hr = IDirect3DSwapChain9_Present(swapchain, NULL, NULL, NULL, NULL, 0);
-+    ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr);
-+    IDirect3DSwapChain9_Release(swapchain);
-+
-     ret = SetForegroundWindow(GetDesktopWindow());
-     ok(ret, "Failed to set foreground window.\n");
-     hr = IDirect3DDevice9Ex_TestCooperativeLevel(device);
-@@ -1527,6 +1534,12 @@
-     hr = IDirect3DDevice9Ex_CheckDeviceState(device, NULL);
-     ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr);
-+    hr = IDirect3DDevice9Ex_GetSwapChain(device, 0, &swapchain);
-+    ok(SUCCEEDED(hr), "Failed to get swapchain, hr %#x.\n", hr);
-+    hr = IDirect3DSwapChain9_Present(swapchain, NULL, NULL, NULL, NULL, 0);
-+    ok(hr == S_PRESENT_OCCLUDED, "Got unexpected hr %#x.\n", hr);
-+    IDirect3DSwapChain9_Release(swapchain);
-+
-     ret = SetForegroundWindow(window);
-     ok(ret, "Failed to set foreground window.\n");
-     hr = IDirect3DDevice9Ex_TestCooperativeLevel(device);
-@@ -1540,6 +1553,12 @@
-     hr = IDirect3DDevice9Ex_CheckDeviceState(device, NULL);
-     ok(hr == S_PRESENT_OCCLUDED, "Got unexpected hr %#x.\n", hr);
-+    hr = IDirect3DDevice9Ex_GetSwapChain(device, 0, &swapchain);
-+    ok(SUCCEEDED(hr), "Failed to get swapchain, hr %#x.\n", hr);
-+    hr = IDirect3DSwapChain9_Present(swapchain, NULL, NULL, NULL, NULL, 0);
-+    ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr);
-+    IDirect3DSwapChain9_Release(swapchain);
-+
-     desc.width = 1024;
-     desc.height = 768;
-     hr = reset_device(device, &desc);
-@@ -1569,6 +1588,12 @@
-     hr = IDirect3DDevice9Ex_CheckDeviceState(device, NULL);
-     todo_wine ok(hr == S_PRESENT_MODE_CHANGED, "Got unexpected hr %#x.\n", hr);
-+    hr = IDirect3DDevice9Ex_GetSwapChain(device, 0, &swapchain);
-+    ok(SUCCEEDED(hr), "Failed to get swapchain, hr %#x.\n", hr);
-+    hr = IDirect3DSwapChain9_Present(swapchain, NULL, NULL, NULL, NULL, 0);
-+    ok(hr == S_PRESENT_MODE_CHANGED, "Got unexpected hr %#x.\n", hr);
-+    IDirect3DSwapChain9_Release(swapchain);
-+
-     hr = reset_device(device, &desc);
-     ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr);
-     hr = IDirect3DDevice9Ex_TestCooperativeLevel(device);
-@@ -1582,6 +1607,12 @@
-     hr = IDirect3DDevice9Ex_CheckDeviceState(device, NULL);
-     ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr);
-+    hr = IDirect3DDevice9Ex_GetSwapChain(device, 0, &swapchain);
-+    ok(SUCCEEDED(hr), "Failed to get swapchain, hr %#x.\n", hr);
-+    hr = IDirect3DSwapChain9_Present(swapchain, NULL, NULL, NULL, NULL, 0);
-+    ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr);
-+    IDirect3DSwapChain9_Release(swapchain);
-+
-     ret = SetForegroundWindow(GetDesktopWindow());
-     ok(ret, "Failed to set foreground window.\n");
-     hr = IDirect3DDevice9Ex_TestCooperativeLevel(device);
-diff -urN wine-1.9.1/dlls/d3d9/tests/device.c wine-1.9.1-staging+d3d9/dlls/d3d9/tests/device.c
---- wine-1.9.1/dlls/d3d9/tests/device.c        2016-01-18 06:51:06.822592484 -0500
-+++ wine-1.9.1-staging+d3d9/dlls/d3d9/tests/device.c   2016-01-18 06:33:43.821613767 -0500
-@@ -8306,10 +8306,10 @@
- static void test_vidmem_accounting(void)
- {
--    IDirect3DDevice9 *device;
-+    IDirect3DDevice9 *device, *device2;
-     IDirect3D9 *d3d9;
-     ULONG refcount;
--    HWND window;
-+    HWND window, window2;
-     HRESULT hr = D3D_OK;
-     IDirect3DTexture9 *textures[20];
-     unsigned int i;
-@@ -8317,6 +8317,8 @@
-     window = CreateWindowA("static", "d3d9_test", WS_OVERLAPPEDWINDOW,
-             0, 0, 640, 480, 0, 0, 0, 0);
-+    window2 = CreateWindowA("static", "d3d9_test", WS_OVERLAPPEDWINDOW,
-+            0, 0, 640, 480, 0, 0, 0, 0);
-     d3d9 = Direct3DCreate9(D3D_SDK_VERSION);
-     ok(!!d3d9, "Failed to create a D3D object.\n");
-     if (!(device = create_device(d3d9, window, NULL)))
-@@ -8351,6 +8353,43 @@
-             IDirect3DTexture9_Release(textures[i]);
-     }
-+    /* Multi-device testing */
-+    if (!(device2 = create_device(d3d9, window2, NULL)))
-+    {
-+        skip("Failed to create a D3D device, skipping tests.\n");
-+        refcount = IDirect3DDevice9_Release(device);
-+        ok(!refcount, "Device has %u references left.\n", refcount);
-+        IDirect3D9_Release(d3d9);
-+        DestroyWindow(window2);
-+        DestroyWindow(window);
-+        return;
-+    }
-+
-+     vidmem_start = IDirect3DDevice9_GetAvailableTextureMem(device);
-+     memset(textures, 0, sizeof(textures));
-+     for (i = 0; (i < sizeof(textures) / sizeof(*textures)) && SUCCEEDED(hr); i++)
-+     {
-+         hr = IDirect3DDevice9_CreateTexture(device2, 1024, 1024, 1, D3DUSAGE_RENDERTARGET,
-+                 D3DFMT_X8R8G8B8, D3DPOOL_DEFAULT, &textures[i], NULL);
-+         /* D3DERR_OUTOFVIDEOMEMORY is returned when the card runs out of video memory
-+          * E_FAIL is returned on address space or system memory exhaustion */
-+         ok(SUCCEEDED(hr) || hr == D3DERR_OUTOFVIDEOMEMORY || hr == E_OUTOFMEMORY,
-+                 "Failed to create texture, hr %#x.\n", hr);
-+     }
-+     vidmem_end = IDirect3DDevice9_GetAvailableTextureMem(device);
-+
-+     /* Windows 7 uses device private counters */
-+     ok(vidmem_start > vidmem_end || broken(vidmem_start == vidmem_end), "Expected available texture memory to decrease during texture creation.\n");
-+     diff = vidmem_start - vidmem_end;
-+     ok(diff > 1024 * 1024 * 2 * i || broken(diff == 0), "Expected a video memory difference of at least %u MB, got %u MB.\n",
-+             2 * i, diff / 1024 / 1024);
-+
-+     for (i = 0; i < sizeof(textures) / sizeof(*textures); i++)
-+     {
-+         if (textures[i])
-+             IDirect3DTexture9_Release(textures[i]);
-+     }
-+
-     refcount = IDirect3DDevice9_Release(device);
-     ok(!refcount, "Device has %u references left.\n", refcount);
-     IDirect3D9_Release(d3d9);
-@@ -10076,6 +10115,7 @@
-     HWND window;
-     HRESULT hr;
-     BOOL ret;
-+    IDirect3DSwapChain9 *swapchain;
-     window = CreateWindowA("static", "d3d9_test", WS_OVERLAPPEDWINDOW,
-             0, 0, 640, 480, NULL, NULL, NULL, NULL);
-@@ -10103,6 +10143,12 @@
-     hr = IDirect3DDevice9_Present(device, NULL, NULL, NULL, NULL);
-     ok(hr == D3DERR_DEVICELOST, "Got unexpected hr %#x.\n", hr);
-+    hr = IDirect3DDevice9_GetSwapChain(device, 0, &swapchain);
-+    ok(SUCCEEDED(hr), "Failed to get swapchain, hr %#x.\n", hr);
-+    hr = IDirect3DSwapChain9_Present(swapchain, NULL, NULL, NULL, NULL, 0);
-+    ok(hr == D3DERR_DEVICELOST, "Got unexpected hr %#x.\n", hr);
-+    IDirect3DSwapChain9_Release(swapchain);
-+
-     ret = ShowWindow(window, SW_RESTORE);
-     ok(ret, "Failed to restore window.\n");
-     ret = SetForegroundWindow(window);
-@@ -10112,6 +10158,12 @@
-     hr = IDirect3DDevice9_Present(device, NULL, NULL, NULL, NULL);
-     ok(hr == D3DERR_DEVICELOST, "Got unexpected hr %#x.\n", hr);
-+    hr = IDirect3DDevice9_GetSwapChain(device, 0, &swapchain);
-+    ok(SUCCEEDED(hr), "Failed to get swapchain, hr %#x.\n", hr);
-+    hr = IDirect3DSwapChain9_Present(swapchain, NULL, NULL, NULL, NULL, 0);
-+    ok(hr == D3DERR_DEVICELOST, "Got unexpected hr %#x.\n", hr);
-+    IDirect3DSwapChain9_Release(swapchain);
-+
-     hr = reset_device(device, &device_desc);
-     ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr);
-     hr = IDirect3DDevice9_TestCooperativeLevel(device);
-@@ -10119,6 +10171,12 @@
-     hr = IDirect3DDevice9_Present(device, NULL, NULL, NULL, NULL);
-     ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr);
-+    hr = IDirect3DDevice9_GetSwapChain(device, 0, &swapchain);
-+    ok(SUCCEEDED(hr), "Failed to get swapchain, hr %#x.\n", hr);
-+    hr = IDirect3DSwapChain9_Present(swapchain, NULL, NULL, NULL, NULL, 0);
-+    ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr);
-+    IDirect3DSwapChain9_Release(swapchain);
-+
-     device_desc.flags = 0;
-     hr = reset_device(device, &device_desc);
-     ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr);
-diff -urN wine-1.9.1/dlls/d3d9/tests/visual.c wine-1.9.1-staging+d3d9/dlls/d3d9/tests/visual.c
---- wine-1.9.1/dlls/d3d9/tests/visual.c        2016-01-18 06:51:08.167592457 -0500
-+++ wine-1.9.1-staging+d3d9/dlls/d3d9/tests/visual.c   2016-01-18 06:33:43.826613767 -0500
-@@ -8678,6 +8678,167 @@
-     DestroyWindow(window);
- }
-+static void test_blend_invalid_arg(void)
-+{
-+    IDirect3DSurface9 *backbuffer, *offscreen;
-+    IDirect3DTexture9 *offscreenTexture;
-+    IDirect3DDevice9 *device;
-+    IDirect3D9 *d3d;
-+    D3DCOLOR color;
-+    ULONG refcount;
-+    HWND window;
-+    HRESULT hr;
-+    DWORD rs;
-+
-+    static const struct
-+    {
-+        struct vec3 position;
-+        DWORD diffuse;
-+    }
-+    quad1[] =
-+    {
-+        {{-1.0f, -1.0f, 0.1f}, 0x4000ff00},
-+        {{-1.0f,  0.0f, 0.1f}, 0x4000ff00},
-+        {{ 0.0f, -1.0f, 0.1f}, 0x4000ff00},
-+        {{ 0.0f,  0.0f, 0.1f}, 0x4000ff00},
-+    },
-+    quad2[] =
-+    {
-+        {{ 0.0f,  0.0f, 0.1f}, 0x4000ff00},
-+        {{ 0.0f,  1.0f, 0.1f}, 0x4000ff00},
-+        {{ 1.0f,  0.0f, 0.1f}, 0x4000ff00},
-+        {{ 1.0f,  1.0f, 0.1f}, 0x4000ff00},
-+    },
-+    quad3[] =
-+    {
-+        {{-1.0f,  0.0f, 0.1f}, 0xc00000ff},
-+        {{-1.0f,  1.0f, 0.1f}, 0xc00000ff},
-+        {{ 0.0f,  0.0f, 0.1f}, 0xc00000ff},
-+        {{ 0.0f,  1.0f, 0.1f}, 0xc00000ff},
-+    },
-+    quad4[] =
-+    {
-+        {{ 0.0f, -1.0f, 0.1f}, 0xc00000ff},
-+        {{ 0.0f,  0.0f, 0.1f}, 0xc00000ff},
-+        {{ 1.0f, -1.0f, 0.1f}, 0xc00000ff},
-+        {{ 1.0f,  0.0f, 0.1f}, 0xc00000ff},
-+    };
-+
-+    window = CreateWindowA("static", "d3d9_test", WS_OVERLAPPEDWINDOW | WS_VISIBLE,
-+            0, 0, 640, 480, NULL, NULL, NULL, NULL);
-+    d3d = Direct3DCreate9(D3D_SDK_VERSION);
-+    ok(!!d3d, "Failed to create a D3D object.\n");
-+    if (!(device = create_device(d3d, window, window, TRUE)))
-+    {
-+        skip("Failed to create a D3D device, skipping tests.\n");
-+        goto done;
-+    }
-+    /* Clear the render target with alpha = 0.5 */
-+    hr = IDirect3DDevice9_Clear(device, 0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, 0x80ff0000, 1.0f, 0);
-+    ok(hr == D3D_OK, "Clear failed, hr = %08x\n", hr);
-+
-+    hr = IDirect3DDevice9_CreateTexture(device, 128, 128, 1, D3DUSAGE_RENDERTARGET,
-+            D3DFMT_X8R8G8B8, D3DPOOL_DEFAULT, &offscreenTexture, NULL);
-+    ok(SUCCEEDED(hr), "Failed to create texture, hr %#x.\n", hr);
-+
-+    hr = IDirect3DDevice9_GetBackBuffer(device, 0, 0, D3DBACKBUFFER_TYPE_MONO, &backbuffer);
-+    ok(hr == D3D_OK, "Can't get back buffer, hr = %08x\n", hr);
-+
-+    hr = IDirect3DTexture9_GetSurfaceLevel(offscreenTexture, 0, &offscreen);
-+    ok(hr == D3D_OK, "Can't get offscreen surface, hr = %08x\n", hr);
-+
-+    hr = IDirect3DDevice9_SetFVF(device, D3DFVF_XYZ | D3DFVF_DIFFUSE);
-+    ok(hr == D3D_OK, "IDirect3DDevice9_SetFVF failed, hr = %#08x\n", hr);
-+
-+    hr = IDirect3DDevice9_SetTextureStageState(device, 0, D3DTSS_COLOROP, D3DTOP_SELECTARG1);
-+    ok(hr == D3D_OK, "SetTextureStageState failed, hr = %08x\n", hr);
-+    hr = IDirect3DDevice9_SetTextureStageState(device, 0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
-+    ok(hr == D3D_OK, "SetTextureStageState failed, hr = %08x\n", hr);
-+    hr = IDirect3DDevice9_SetSamplerState(device, 0, D3DSAMP_MINFILTER, D3DTEXF_POINT);
-+    ok(SUCCEEDED(hr), "SetSamplerState D3DSAMP_MINFILTER failed (0x%08x)\n", hr);
-+    hr = IDirect3DDevice9_SetSamplerState(device, 0, D3DSAMP_MAGFILTER, D3DTEXF_POINT);
-+    ok(SUCCEEDED(hr), "SetSamplerState D3DSAMP_MAGFILTER failed (0x%08x)\n", hr);
-+    hr = IDirect3DDevice9_SetRenderState(device, D3DRS_LIGHTING, FALSE);
-+    ok(hr == D3D_OK, "IDirect3DDevice9_SetRenderState returned %08x\n", hr);
-+
-+    hr = IDirect3DDevice9_SetRenderState(device, D3DRS_ALPHABLENDENABLE, TRUE);
-+    ok(hr == D3D_OK, "IDirect3DDevice9_SetRenderState failed, hr = %08x\n", hr);
-+    hr = IDirect3DDevice9_BeginScene(device);
-+    ok(SUCCEEDED(hr), "Failed to begin scene, hr %#x.\n", hr);
-+
-+    /* draw quad to test default renderstate
-+     * expect D3DRS_SRCBLEND == D3DBLEND_ONE
-+     * expect D3DRS_DESTBLEND == D3DBLEND_ZERO */
-+    hr = IDirect3DDevice9_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, quad1, sizeof(quad1[0]));
-+    ok(SUCCEEDED(hr), "Failed to draw, hr %#x.\n", hr);
-+
-+    /* set invalid value and expect D3DBLEND_ZERO instead */
-+    hr = IDirect3DDevice9_SetRenderState(device, D3DRS_SRCBLEND, 0);
-+    ok(SUCCEEDED(hr), "Failed to set render state, hr %#x.\n", hr);
-+    hr = IDirect3DDevice9_GetRenderState(device, D3DRS_SRCBLEND, &rs);
-+    ok(SUCCEEDED(hr), "Failed to get render state, hr %#x.\n", hr);
-+    ok(rs == 0, "Unexpected renderstate %#x.\n", rs);
-+    hr = IDirect3DDevice9_SetRenderState(device, D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
-+    ok(SUCCEEDED(hr), "Failed to set render state, hr %#x.\n", hr);
-+
-+    hr = IDirect3DDevice9_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, quad2, sizeof(quad2[0]));
-+    ok(SUCCEEDED(hr), "Failed to draw, hr %#x.\n", hr);
-+    /* set non default valid values */
-+    hr = IDirect3DDevice9_SetRenderState(device, D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
-+    ok(SUCCEEDED(hr), "Failed to set render state, hr %#x.\n", hr);
-+    hr = IDirect3DDevice9_GetRenderState(device, D3DRS_SRCBLEND, &rs);
-+    ok(SUCCEEDED(hr), "Failed to get render state, hr %#x.\n", hr);
-+    ok(rs == D3DBLEND_SRCALPHA, "Unexpected renderstate %#x.\n", rs);
-+    hr = IDirect3DDevice9_SetRenderState(device, D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
-+    ok(SUCCEEDED(hr), "Failed to set render state, hr %#x.\n", hr);
-+    hr = IDirect3DDevice9_GetRenderState(device, D3DRS_DESTBLEND, &rs);
-+    ok(SUCCEEDED(hr), "Failed to get render state, hr %#x.\n", hr);
-+    ok(rs == D3DBLEND_INVSRCALPHA, "Failed to get render state, hr %#x.\n", hr);
-+
-+    hr = IDirect3DDevice9_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, quad3, sizeof(quad3[0]));
-+    ok(SUCCEEDED(hr), "Failed to draw, hr %#x.\n", hr);
-+
-+    /* set invalid value and expect D3DBLEND_ZERO instead */
-+    hr = IDirect3DDevice9_SetRenderState(device, D3DRS_DESTBLEND, 200);
-+    ok(SUCCEEDED(hr), "Failed to set render state, hr %#x.\n", hr);
-+    hr = IDirect3DDevice9_GetRenderState(device, D3DRS_DESTBLEND, &rs);
-+    ok(SUCCEEDED(hr), "Failed to get render state, hr %#x.\n", hr);
-+    ok(rs == 200, "Failed to get render state, hr %#x.\n", hr);
-+
-+    hr = IDirect3DDevice9_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, quad4, sizeof(quad4[0]));
-+    ok(SUCCEEDED(hr), "Failed to draw, hr %#x.\n", hr);
-+
-+    hr = IDirect3DDevice9_EndScene(device);
-+    ok(SUCCEEDED(hr), "Failed to end scene, hr %#x.\n", hr);
-+
-+    color = getPixelColor(device, 160, 360);
-+    ok(color_match(color, D3DCOLOR_ARGB(0x00, 0x00, 0xff, 0x00), 1),
-+       "D3DRS_SRCBLEND ONE returned color %08x, expected 0x0000FF00\n", color);
-+
-+    color = getPixelColor(device, 480, 120);
-+    ok(color_match(color, D3DCOLOR_ARGB(0x00, 0xbf, 0x00, 0x00), 1),
-+       "invalid D3DRS_SRCBLEND returned color %08x, expected 0x00bf0000\n", color);
-+
-+    color = getPixelColor(device, 160, 120);
-+    ok(color_match(color, D3DCOLOR_ARGB(0x00, 0x3f, 0x00, 0xC0), 1),
-+       "D3DRS_SRCBLEND SRCALPHA returned color %08x, expected 0x003f00C0\n", color);
-+
-+    color = getPixelColor(device, 480, 360);
-+    ok(color_match(color, D3DCOLOR_ARGB(0x00, 0x00, 0x00, 0xC0), 1),
-+       "invalid D3DRS_DESTBLEND returned color %08x, expected 0x000000C0\n", color);
-+
-+    IDirect3DDevice9_Present(device, NULL, NULL, NULL, NULL);
-+
-+    IDirect3DSurface9_Release(backbuffer);
-+    IDirect3DTexture9_Release(offscreenTexture);
-+    IDirect3DSurface9_Release(offscreen);
-+    refcount = IDirect3DDevice9_Release(device);
-+    ok(!refcount, "Device has %u references left.\n", refcount);
-+done:
-+    IDirect3D9_Release(d3d);
-+    DestroyWindow(window);
-+}
-+
- static void fixed_function_decl_test(void)
- {
-     IDirect3DVertexDeclaration9 *dcl_float = NULL, *dcl_short = NULL, *dcl_ubyte = NULL, *dcl_color = NULL;
-@@ -12877,6 +13038,9 @@
-     }
-     testdata[] =
-     {
-+        /* test invalid values, D3DCMP_NEVER for values less than D3DCMP_NEVER,
-+         * D3DCMP_ALWAYS for values greater than D3DCMP_ALWAYS */
-+        {D3DCMP_NEVER-1,      ALPHATEST_FAILED, ALPHATEST_FAILED, ALPHATEST_FAILED},
-         {D3DCMP_NEVER,        ALPHATEST_FAILED, ALPHATEST_FAILED, ALPHATEST_FAILED},
-         {D3DCMP_LESS,         ALPHATEST_PASSED, ALPHATEST_FAILED, ALPHATEST_FAILED},
-         {D3DCMP_EQUAL,        ALPHATEST_FAILED, ALPHATEST_PASSED, ALPHATEST_FAILED},
-@@ -12885,6 +13049,10 @@
-         {D3DCMP_NOTEQUAL,     ALPHATEST_PASSED, ALPHATEST_FAILED, ALPHATEST_PASSED},
-         {D3DCMP_GREATEREQUAL, ALPHATEST_FAILED, ALPHATEST_PASSED, ALPHATEST_PASSED},
-         {D3DCMP_ALWAYS,       ALPHATEST_PASSED, ALPHATEST_PASSED, ALPHATEST_PASSED},
-+        {D3DCMP_ALWAYS+1,     ALPHATEST_PASSED, ALPHATEST_PASSED, ALPHATEST_PASSED},
-+        {D3DCMP_ALWAYS+2,     ALPHATEST_PASSED, ALPHATEST_PASSED, ALPHATEST_PASSED},
-+        {D3DCMP_ALWAYS+3,     ALPHATEST_PASSED, ALPHATEST_PASSED, ALPHATEST_PASSED},
-+        {0xdeadbeef,          ALPHATEST_PASSED, ALPHATEST_PASSED, ALPHATEST_PASSED},
-     };
-     static const struct
-     {
-@@ -18234,6 +18402,27 @@
-                 D3DFOG_LINEAR, D3DFOG_NONE,   0x0000ff00, 0x0000ff00, 0x0000ff00},
-         {D3DFVF_XYZ,    quad,   sizeof(*quad),  &zero,     { 0.0f}, {1.0f},
-                 D3DFOG_EXP,    D3DFOG_NONE,   0x009b6400, 0x009b6400, 0x009b6400},
-+        /* test invalid values, expect a modulo 4 on samplerstate */
-+        {D3DFVF_XYZ,    quad,   sizeof(*quad),  &zero,     { 0.0f}, {1.0f},
-+                D3DFOG_LINEAR+1,    D3DFOG_NONE,   0x0000ff00, 0x009b6400, 0x009b6400},
-+        {D3DFVF_XYZ,    quad,   sizeof(*quad),  &zero,     { 0.0f}, {1.0f},
-+                D3DFOG_LINEAR+2,    D3DFOG_NONE,   0x00c73800, 0x009b6400, 0x009b6400},
-+        {D3DFVF_XYZ,    quad,   sizeof(*quad),  &zero,     { 0.0f}, {1.0f},
-+                D3DFOG_LINEAR+3,    D3DFOG_NONE,   0x00c73800, 0x009b6400, 0x009b6400},
-+        {D3DFVF_XYZ,    quad,   sizeof(*quad),  &zero,     { 0.0f}, {1.0f},
-+                D3DFOG_LINEAR+4,    D3DFOG_NONE,   0x007f7f00, 0x009b6400, 0x009b6400},
-+        {D3DFVF_XYZ,    quad,   sizeof(*quad),  &zero,     { 0.0f}, {1.0f},
-+                D3DFOG_LINEAR+5,    D3DFOG_NONE,   0x0000ff00, 0x009b6400, 0x009b6400},
-+        {D3DFVF_XYZ,    quad,   sizeof(*quad),  &zero,     { 0.0f}, {1.0f},
-+                D3DFOG_LINEAR+6,    D3DFOG_NONE,   0x00c73800, 0x009b6400, 0x009b6400},
-+        {D3DFVF_XYZ,    quad,   sizeof(*quad),  &zero,     { 0.0f}, {1.0f},
-+                D3DFOG_LINEAR+7,    D3DFOG_NONE,   0x00c73800, 0x009b6400, 0x009b6400},
-+        {D3DFVF_XYZ,    quad,   sizeof(*quad),  &zero,     { 0.0f}, {1.0f},
-+                D3DFOG_LINEAR+8,    D3DFOG_NONE,   0x007f7f00, 0x009b6400, 0x009b6400},
-+        {D3DFVF_XYZ,    quad,   sizeof(*quad),  &zero,     { 0.0f}, {1.0f},
-+                D3DFOG_LINEAR+9,    D3DFOG_NONE,   0x0000ff00, 0x009b6400, 0x009b6400},
-+        {D3DFVF_XYZ,    quad,   sizeof(*quad),  &zero,     { 0.0f}, {1.0f},
-+                D3DFOG_LINEAR+10,    D3DFOG_NONE,   0x00c73800, 0x009b6400, 0x009b6400},
-     };
-     D3DCAPS9 caps;
-@@ -21549,6 +21738,7 @@
-     test_depthbias();
-     test_flip();
-     test_uninitialized_varyings();
-+    test_blend_invalid_arg();
-     test_multisample_init();
-     test_texture_blending();
- }
-diff -urN wine-1.9.1/dlls/d3d9-nine/d3d9_main.c wine-1.9.1-staging+d3d9/dlls/d3d9-nine/d3d9_main.c
---- wine-1.9.1/dlls/d3d9-nine/d3d9_main.c      1969-12-31 19:00:00.000000000 -0500
-+++ wine-1.9.1-staging+d3d9/dlls/d3d9-nine/d3d9_main.c 2016-01-18 06:33:43.827613767 -0500
+--- wine-1.9.2/dlls/d3d9-nine/d3d9_main.c      1969-12-31 19:00:00.000000000 -0500
++++ wine-nine/dlls/d3d9-nine/d3d9_main.c       2016-02-09 10:49:31.947614100 -0500
 @@ -0,0 +1,157 @@
 +/*
 + * Direct3D 9
@@ -827,9 +395,8 @@ diff -urN wine-1.9.1/dlls/d3d9-nine/d3d9_main.c wine-1.9.1-staging+d3d9/dlls/d3d
 +{
 +    FIXME("color 0x%08x, name %s stub!\n", color, debugstr_w(name));
 +}
-diff -urN wine-1.9.1/dlls/d3d9-nine/d3d9-nine.spec wine-1.9.1-staging+d3d9/dlls/d3d9-nine/d3d9-nine.spec
---- wine-1.9.1/dlls/d3d9-nine/d3d9-nine.spec   1969-12-31 19:00:00.000000000 -0500
-+++ wine-1.9.1-staging+d3d9/dlls/d3d9-nine/d3d9-nine.spec      2016-01-18 06:33:43.827613767 -0500
+--- wine-1.9.2/dlls/d3d9-nine/d3d9-nine.spec   1969-12-31 19:00:00.000000000 -0500
++++ wine-nine/dlls/d3d9-nine/d3d9-nine.spec    2016-02-09 10:49:31.947614100 -0500
 @@ -0,0 +1,14 @@
 +@ stdcall Direct3DShaderValidatorCreate9()
 +@ stub PSGPError
@@ -845,9 +412,8 @@ diff -urN wine-1.9.1/dlls/d3d9-nine/d3d9-nine.spec wine-1.9.1-staging+d3d9/dlls/
 +@ stdcall DebugSetMute()
 +@ stdcall Direct3DCreate9(long)
 +@ stdcall Direct3DCreate9Ex(long ptr)
-diff -urN wine-1.9.1/dlls/d3d9-nine/d3dadapter9.c wine-1.9.1-staging+d3d9/dlls/d3d9-nine/d3dadapter9.c
---- wine-1.9.1/dlls/d3d9-nine/d3dadapter9.c    1969-12-31 19:00:00.000000000 -0500
-+++ wine-1.9.1-staging+d3d9/dlls/d3d9-nine/d3dadapter9.c       2016-01-18 06:33:43.828613767 -0500
+--- wine-1.9.2/dlls/d3d9-nine/d3dadapter9.c    1969-12-31 19:00:00.000000000 -0500
++++ wine-nine/dlls/d3d9-nine/d3dadapter9.c     2016-02-09 10:49:31.947614100 -0500
 @@ -0,0 +1,865 @@
 +/*
 + * Wine IDirect3D9 interface using ID3DAdapter9
@@ -1714,9 +1280,8 @@ diff -urN wine-1.9.1/dlls/d3d9-nine/d3dadapter9.c wine-1.9.1-staging+d3d9/dlls/d
 +          "\nFor more information visit https://wiki.ixit.cz/d3d9\033[0m\n");
 +    return D3D_OK;
 +}
-diff -urN wine-1.9.1/dlls/d3d9-nine/d3dadapter9.h wine-1.9.1-staging+d3d9/dlls/d3d9-nine/d3dadapter9.h
---- wine-1.9.1/dlls/d3d9-nine/d3dadapter9.h    1969-12-31 19:00:00.000000000 -0500
-+++ wine-1.9.1-staging+d3d9/dlls/d3d9-nine/d3dadapter9.h       2016-01-18 06:33:43.828613767 -0500
+--- wine-1.9.2/dlls/d3d9-nine/d3dadapter9.h    1969-12-31 19:00:00.000000000 -0500
++++ wine-nine/dlls/d3d9-nine/d3dadapter9.h     2016-02-09 10:49:31.947614100 -0500
 @@ -0,0 +1,30 @@
 +/*
 + * D3DAdapter9 interface
@@ -1748,9 +1313,8 @@ diff -urN wine-1.9.1/dlls/d3d9-nine/d3dadapter9.h wine-1.9.1-staging+d3d9/dlls/d
 +HRESULT d3dadapter9_new(Display *gdi_display, boolean ex, IDirect3D9Ex **ppOut);
 +
 +#endif /* __WINE_D3D9ADAPTER_H */
-diff -urN wine-1.9.1/dlls/d3d9-nine/dri3.c wine-1.9.1-staging+d3d9/dlls/d3d9-nine/dri3.c
---- wine-1.9.1/dlls/d3d9-nine/dri3.c   1969-12-31 19:00:00.000000000 -0500
-+++ wine-1.9.1-staging+d3d9/dlls/d3d9-nine/dri3.c      2016-01-18 06:33:43.830613767 -0500
+--- wine-1.9.2/dlls/d3d9-nine/dri3.c   1969-12-31 19:00:00.000000000 -0500
++++ wine-nine/dlls/d3d9-nine/dri3.c    2016-02-09 10:49:31.947614100 -0500
 @@ -0,0 +1,1345 @@
 +/*
 + * Wine DRI3 interface
@@ -3097,9 +2661,8 @@ diff -urN wine-1.9.1/dlls/d3d9-nine/dri3.c wine-1.9.1-staging+d3d9/dlls/d3d9-nin
 +    pthread_mutex_unlock(&present_priv->mutex_present);
 +    return TRUE;
 +}
-diff -urN wine-1.9.1/dlls/d3d9-nine/dri3.h wine-1.9.1-staging+d3d9/dlls/d3d9-nine/dri3.h
---- wine-1.9.1/dlls/d3d9-nine/dri3.h   1969-12-31 19:00:00.000000000 -0500
-+++ wine-1.9.1-staging+d3d9/dlls/d3d9-nine/dri3.h      2016-01-18 06:33:43.830613767 -0500
+--- wine-1.9.2/dlls/d3d9-nine/dri3.h   1969-12-31 19:00:00.000000000 -0500
++++ wine-nine/dlls/d3d9-nine/dri3.h    2016-02-09 10:49:31.948614100 -0500
 @@ -0,0 +1,101 @@
 +/*
 + * Wine X11DRV DRI3 interface
@@ -3202,9 +2765,8 @@ diff -urN wine-1.9.1/dlls/d3d9-nine/dri3.h wine-1.9.1-staging+d3d9/dlls/d3d9-nin
 +PRESENTWaitPixmapReleased(PRESENTPixmapPriv *present_pixmap_priv);
 +
 +#endif /* __WINE_DRI3_H */
-diff -urN wine-1.9.1/dlls/d3d9-nine/libd3d9-nine.def wine-1.9.1-staging+d3d9/dlls/d3d9-nine/libd3d9-nine.def
---- wine-1.9.1/dlls/d3d9-nine/libd3d9-nine.def 1969-12-31 19:00:00.000000000 -0500
-+++ wine-1.9.1-staging+d3d9/dlls/d3d9-nine/libd3d9-nine.def    2016-01-18 06:33:43.830613767 -0500
+--- wine-1.9.2/dlls/d3d9-nine/libd3d9-nine.def 1969-12-31 19:00:00.000000000 -0500
++++ wine-nine/dlls/d3d9-nine/libd3d9-nine.def  2016-02-09 10:49:31.948614100 -0500
 @@ -0,0 +1,16 @@
 +; File generated automatically from ./dlls/d3d9-nine/d3d9-nine.spec; do not edit!
 +
@@ -3222,9 +2784,8 @@ diff -urN wine-1.9.1/dlls/d3d9-nine/libd3d9-nine.def wine-1.9.1-staging+d3d9/dll
 +  DebugSetMute@0 @12
 +  Direct3DCreate9@4 @13
 +  Direct3DCreate9Ex@8 @14
-diff -urN wine-1.9.1/dlls/d3d9-nine/Makefile.in wine-1.9.1-staging+d3d9/dlls/d3d9-nine/Makefile.in
---- wine-1.9.1/dlls/d3d9-nine/Makefile.in      1969-12-31 19:00:00.000000000 -0500
-+++ wine-1.9.1-staging+d3d9/dlls/d3d9-nine/Makefile.in 2016-01-18 06:33:43.830613767 -0500
+--- wine-1.9.2/dlls/d3d9-nine/Makefile.in      1969-12-31 19:00:00.000000000 -0500
++++ wine-nine/dlls/d3d9-nine/Makefile.in       2016-02-09 10:49:31.947614100 -0500
 @@ -0,0 +1,12 @@
 +MODULE    = d3d9-nine.dll
 +IMPORTS   = dxguid uuid advapi32 gdi32 user32
@@ -3238,9 +2799,8 @@ diff -urN wine-1.9.1/dlls/d3d9-nine/Makefile.in wine-1.9.1-staging+d3d9/dlls/d3d
 +        dri3.c
 +
 +RC_SRCS = version.rc
-diff -urN wine-1.9.1/dlls/d3d9-nine/present.c wine-1.9.1-staging+d3d9/dlls/d3d9-nine/present.c
---- wine-1.9.1/dlls/d3d9-nine/present.c        1969-12-31 19:00:00.000000000 -0500
-+++ wine-1.9.1-staging+d3d9/dlls/d3d9-nine/present.c   2016-01-18 06:33:43.831613767 -0500
+--- wine-1.9.2/dlls/d3d9-nine/present.c        1969-12-31 19:00:00.000000000 -0500
++++ wine-nine/dlls/d3d9-nine/present.c 2016-02-09 10:49:31.948614100 -0500
 @@ -0,0 +1,1332 @@
 +/*
 + * Wine ID3DAdapter9 support functions
@@ -4574,9 +4134,8 @@ diff -urN wine-1.9.1/dlls/d3d9-nine/present.c wine-1.9.1-staging+d3d9/dlls/d3d9-
 +
 +    return FALSE;
 +}
-diff -urN wine-1.9.1/dlls/d3d9-nine/present.h wine-1.9.1-staging+d3d9/dlls/d3d9-nine/present.h
---- wine-1.9.1/dlls/d3d9-nine/present.h        1969-12-31 19:00:00.000000000 -0500
-+++ wine-1.9.1-staging+d3d9/dlls/d3d9-nine/present.h   2016-01-18 06:33:43.831613767 -0500
+--- wine-1.9.2/dlls/d3d9-nine/present.h        1969-12-31 19:00:00.000000000 -0500
++++ wine-nine/dlls/d3d9-nine/present.h 2016-02-09 10:49:31.948614100 -0500
 @@ -0,0 +1,36 @@
 +/*
 + * Wine present interface
@@ -4614,9 +4173,8 @@ diff -urN wine-1.9.1/dlls/d3d9-nine/present.h wine-1.9.1-staging+d3d9/dlls/d3d9-
 +BOOL has_d3dadapter(Display *gdi_display);
 +
 +#endif /* __WINE_DRI3_H */
-diff -urN wine-1.9.1/dlls/d3d9-nine/version.rc wine-1.9.1-staging+d3d9/dlls/d3d9-nine/version.rc
---- wine-1.9.1/dlls/d3d9-nine/version.rc       1969-12-31 19:00:00.000000000 -0500
-+++ wine-1.9.1-staging+d3d9/dlls/d3d9-nine/version.rc  2016-01-18 06:33:43.832613767 -0500
+--- wine-1.9.2/dlls/d3d9-nine/version.rc       1969-12-31 19:00:00.000000000 -0500
++++ wine-nine/dlls/d3d9-nine/version.rc        2016-02-09 10:49:31.948614100 -0500
 @@ -0,0 +1,26 @@
 +/*
 + * Copyright 2015 Patrick Rudolph
@@ -4644,9 +4202,8 @@ diff -urN wine-1.9.1/dlls/d3d9-nine/version.rc wine-1.9.1-staging+d3d9/dlls/d3d9
 +#define WINE_PRODUCTVERSION_STR "5.3.1.904"
 +
 +#include "wine/wine_common_ver.rc"
-diff -urN wine-1.9.1/dlls/winex11.drv/init.c wine-1.9.1-staging+d3d9/dlls/winex11.drv/init.c
---- wine-1.9.1/dlls/winex11.drv/init.c 2016-01-18 06:51:03.053592561 -0500
-+++ wine-1.9.1-staging+d3d9/dlls/winex11.drv/init.c    2016-01-18 06:33:43.834613767 -0500
+--- wine-1.9.2/dlls/winex11.drv/init.c 2016-01-22 09:28:32.000000000 -0500
++++ wine-nine/dlls/winex11.drv/init.c  2016-02-09 10:49:32.494614138 -0500
 @@ -365,6 +365,7 @@
                  {
                      struct x11drv_escape_get_drawable *data = out_data;
@@ -4655,10 +4212,9 @@ diff -urN wine-1.9.1/dlls/winex11.drv/init.c wine-1.9.1-staging+d3d9/dlls/winex1
                      return TRUE;
                  }
                  break;
-diff -urN wine-1.9.1/dlls/winex11.drv/x11drv.h wine-1.9.1-staging+d3d9/dlls/winex11.drv/x11drv.h
---- wine-1.9.1/dlls/winex11.drv/x11drv.h       2016-01-18 06:51:08.257592455 -0500
-+++ wine-1.9.1-staging+d3d9/dlls/winex11.drv/x11drv.h  2016-01-18 06:33:43.834613767 -0500
-@@ -293,6 +293,7 @@
+--- wine-1.9.2/dlls/winex11.drv/x11drv.h       2016-01-22 09:28:32.000000000 -0500
++++ wine-nine/dlls/winex11.drv/x11drv.h        2016-02-09 10:49:32.498614138 -0500
+@@ -292,6 +292,7 @@
      Drawable                 drawable;     /* X drawable */
      Drawable                 gl_drawable;  /* GL drawable */
      int                      pixel_format; /* internal GL pixel format */
@@ -4666,9 +4222,8 @@ diff -urN wine-1.9.1/dlls/winex11.drv/x11drv.h wine-1.9.1-staging+d3d9/dlls/wine
  };
  
  struct x11drv_escape_flush_gl_drawable
-diff -urN wine-1.9.1/include/config.h.in wine-1.9.1-staging+d3d9/include/config.h.in
---- wine-1.9.1/include/config.h.in     2016-01-18 06:51:11.000000000 -0500
-+++ wine-1.9.1-staging+d3d9/include/config.h.in        2016-01-18 06:33:43.835613767 -0500
+--- wine-1.9.2/include/config.h.in     2016-01-22 09:28:32.000000000 -0500
++++ wine-nine/include/config.h.in      2016-02-09 10:49:32.552614142 -0500
 @@ -4,6 +4,12 @@
  #define __WINE_CONFIG_H
  #ifndef WINE_CROSSTEST
@@ -4682,9 +4237,9 @@ diff -urN wine-1.9.1/include/config.h.in wine-1.9.1-staging+d3d9/include/config.
  /* Define to a function attribute for Microsoft hotpatch assembly prefix. */
  #undef DECLSPEC_HOTPATCH
  
-@@ -1362,6 +1368,9 @@
- /* Define to the soname of the libcairo library. */
- #undef SONAME_LIBCAIRO
+@@ -1335,6 +1341,9 @@
+ /* Define to the version of this package. */
+ #undef PACKAGE_VERSION
  
 +/* "temporary hack" */
 +#undef SONAME_D3DADAPTER9
@@ -4692,7 +4247,7 @@ diff -urN wine-1.9.1/include/config.h.in wine-1.9.1-staging+d3d9/include/config.
  /* Define to the soname of the libcapi20 library. */
  #undef SONAME_LIBCAPI20
  
-@@ -1374,6 +1383,9 @@
+@@ -1347,6 +1356,9 @@
  /* Define to the soname of the libdbus-1 library. */
  #undef SONAME_LIBDBUS_1
  
@@ -4702,21 +4257,19 @@ diff -urN wine-1.9.1/include/config.h.in wine-1.9.1-staging+d3d9/include/config.
  /* Define to the soname of the libfontconfig library. */
  #undef SONAME_LIBFONTCONFIG
  
-diff -urN wine-1.9.1/programs/winecfg/resource.h wine-1.9.1-staging+d3d9/programs/winecfg/resource.h
---- wine-1.9.1/programs/winecfg/resource.h     2016-01-18 06:51:03.839592545 -0500
-+++ wine-1.9.1-staging+d3d9/programs/winecfg/resource.h        2016-01-18 06:44:19.169600803 -0500
+--- a/programs/winecfg/resource.h      2016-02-09 10:15:54.829473416 -0500
++++ b/programs/winecfg/resource.h      2016-02-09 10:23:50.436506587 -0500
 @@ -218,6 +218,7 @@
  #define IDC_ENABLE_EAX                  9003
  #define IDC_ENABLE_HIDEWINE             9004
  #define IDC_ENABLE_GTK3                 9005
-+#define IDC_ENABLE_NATIVE_D3D9          9006 /* Manually corrected. */
++#define IDC_ENABLE_NATIVE_D3D9          9006
  
  /* About tab */
  #define IDC_ABT_OWNER                8432
-diff -urN wine-1.9.1/programs/winecfg/staging.c wine-1.9.1-staging+d3d9/programs/winecfg/staging.c
---- wine-1.9.1/programs/winecfg/staging.c      2016-01-18 06:51:03.839592545 -0500
-+++ wine-1.9.1-staging+d3d9/programs/winecfg/staging.c 2016-01-18 06:48:46.029595357 -0500
-@@ -34,6 +34,23 @@
+--- a/programs/winecfg/staging.c       2016-02-09 10:15:54.829473416 -0500
++++ b/programs/winecfg/staging.c       2016-02-09 10:26:46.810518889 -0500
+@@ -34,6 +34,22 @@
  WINE_DEFAULT_DEBUG_CHANNEL(winecfg);
  
  /*
@@ -4730,7 +4283,6 @@ diff -urN wine-1.9.1/programs/winecfg/staging.c wine-1.9.1-staging+d3d9/programs
 +    HeapFree(GetProcessHeap(), 0, value);
 +    return ret;
 +}
-+
 +static void nine_set(BOOL status)
 +{
 +    set_reg_key(config_key, keypath("DllRedirects"), "d3d9", status ? "d3d9-nine.dll" : NULL);
@@ -4740,7 +4292,7 @@ diff -urN wine-1.9.1/programs/winecfg/staging.c wine-1.9.1-staging+d3d9/programs
   * Command stream multithreading
   */
  static BOOL csmt_get(void)
-@@ -132,6 +149,7 @@
+@@ -132,6 +148,7 @@
      CheckDlgButton(dialog, IDC_ENABLE_EAX, eax_get() ? BST_CHECKED : BST_UNCHECKED);
      CheckDlgButton(dialog, IDC_ENABLE_HIDEWINE, hidewine_get() ? BST_CHECKED : BST_UNCHECKED);
      CheckDlgButton(dialog, IDC_ENABLE_GTK3, gtk3_get() ? BST_CHECKED : BST_UNCHECKED);
@@ -4748,18 +4300,17 @@ diff -urN wine-1.9.1/programs/winecfg/staging.c wine-1.9.1-staging+d3d9/programs
  
  #ifndef HAVE_VAAPI
      disable(IDC_ENABLE_VAAPI);
-@@ -139,6 +157,10 @@
+@@ -139,6 +156,9 @@
  #ifndef HAVE_GTK3
      disable(IDC_ENABLE_GTK3);
  #endif
 +#if !defined(SONAME_D3DADAPTER9)
 +    disable(IDC_ENABLE_NATIVE_D3D9);
 +#endif
-+
  }
  
  INT_PTR CALLBACK StagingDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
-@@ -184,6 +206,10 @@
+@@ -184,6 +204,10 @@
              gtk3_set(IsDlgButtonChecked(hDlg, IDC_ENABLE_GTK3) == BST_CHECKED);
              SendMessageW(GetParent(hDlg), PSM_CHANGED, 0, 0);
              return TRUE;
@@ -4770,21 +4321,13 @@ diff -urN wine-1.9.1/programs/winecfg/staging.c wine-1.9.1-staging+d3d9/programs
          }
          break;
      }
-diff -urN wine-1.9.1/programs/winecfg/winecfg.rc wine-1.9.1-staging+d3d9/programs/winecfg/winecfg.rc
---- wine-1.9.1/programs/winecfg/winecfg.rc     2016-01-18 06:51:03.839592545 -0500
-+++ wine-1.9.1-staging+d3d9/programs/winecfg/winecfg.rc        2016-01-18 06:42:54.270602535 -0500
-@@ -314,12 +314,13 @@
- FONT 8, "MS Shell Dlg"
- BEGIN
-     GROUPBOX    "Staging settings",IDC_STATIC,8,4,244,210
--    LTEXT       "The following settings are experimental and may break stuff!\nMake sure to reset them again in case of a problem.",IDC_STATIC,16,16,230,16
-+    LTEXT       "The following settings are experimental and may break stuff!\nMake sure to reset them again in case of a problem.\nGallium Nine requires MESA graphic drivers and AMD/Nvidia GPU.\n",IDC_STATIC,16,16,230,24
-     CONTROL     "Enable &CSMT for better graphic performance",IDC_ENABLE_CSMT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,40,230,8
-     CONTROL     "Enable &VAAPI as backend for DXVA2 GPU decoding",IDC_ENABLE_VAAPI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,55,230,8
+--- a/programs/winecfg/winecfg.rc      2016-02-09 10:15:54.829473416 -0500
++++ b/programs/winecfg/winecfg.rc      2016-02-09 10:18:50.607485676 -0500
+@@ -320,6 +320,7 @@
      CONTROL     "Enable Environmental Audio E&xtensions (EAX)",IDC_ENABLE_EAX,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,70,230,8
      CONTROL     "&Hide Wine version from applications",IDC_ENABLE_HIDEWINE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,85,230,8
      CONTROL     "Enable &GTK3 Theming",IDC_ENABLE_GTK3,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,100,230,8
-+    CONTROL     "Enable &Gallium Nine for better D3D9 graphic performance.",IDC_ENABLE_NATIVE_D3D9,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,40,230,8
++    CONTROL     "Enable &Gallium Nine for better D3D9 graphic performance.",IDC_ENABLE_NATIVE_D3D9,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,115,230,8
  END
  
  LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
similarity index 87%
rename from wine/wine-1.9.1-nine.patch
rename to wine/nine-vanilla-1.9.2.patch
index af23abf3cbde34beea40f640e5075c8c4e3d0767..9ebe9b4c5b418e784eb1771a59d36fbc2fdaeb70 100644 (file)
@@ -1,29 +1,32 @@
-This is the gallium nine wine state tracker. They're very freaking far behind.
-Luckily, this isn't terribly hard to fix, but git can no longer auto merge
-as in NP-Hardass' automated patch generator.
+This is the gallium nine wine state tracker. They're not so behind anymore,
+but it still isn't possible to easily apply on staging.
 
-This patch was generated through the following:
-       - Diff wine 1.7.55 against iXit/wine.
+I've deployed an automated script to generate the patches via old
+school patch/diff.
+
+This patch was generated via script through the following:
+       - Diff wine against iXit/wine's base version (see VERSION file)
        - Remove uneccesary changes.
+
+When wine becomes too different, the following is also done:
        - Generate diff between wine 1.7.55 and the desired version.
        - Apply nine, then the interversion.
-       - Generate patch.
+       - Generate final patch
 
-This is currently based on commit eae055cf of iXit/wine.
+This is currently based on commit c092c7c6 of iXit/wine.
 If this is not the latest, I'll make an effort to update.
 
 Please also note that there are two separate versions because a few
 bits of nine conflict with staging. If you wish to have staging, use
-the other patch.
+the other patch (nine-1.9.2-staging.patch)
 
 Also, this only imports configure.ac changes. You'll need to run:
        autoreconf -f
        ./tools/make_requests
 To properly be able to build this.
 
-diff -urN wine-1.9.1/configure.ac wine-1.9.1-d3d9/configure.ac
---- wine-1.9.1/configure.ac    2016-01-09 04:30:39.000000000 -0500
-+++ wine-1.9.1-d3d9/configure.ac       2016-01-18 06:22:34.607627423 -0500
+--- wine-1.9.2/configure.ac    2016-01-22 09:28:32.000000000 -0500
++++ wine-nine/configure.ac     2016-02-09 10:49:31.854614094 -0500
 @@ -65,6 +65,8 @@
  AC_ARG_WITH(opencl,    AS_HELP_STRING([--without-opencl],[do not use OpenCL]),
              [if test "x$withval" = "xno"; then ac_cv_header_CL_cl_h=no; ac_cv_header_OpenCL_opencl_h=no; fi])
@@ -53,7 +56,7 @@ diff -urN wine-1.9.1/configure.ac wine-1.9.1-d3d9/configure.ac
 +         D3D_MODULE_DIR=`pkg-config --variable=moduledir d3d`
 +         CPPFLAGSBAK=$CPPFLAGS
 +         # link against libdl
-+         CPPFLAGS="$CPPFLAGS -ldl"
++         CPPFLAGS="$CPPFLAGS -Wl,--no-as-needed -ldl"
 +       
 +         ac_cv_c_dlopen_d3dadapter=""
 +         AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include <dlfcn.h>
@@ -238,7 +241,7 @@ diff -urN wine-1.9.1/configure.ac wine-1.9.1-d3d9/configure.ac
      CPPFLAGS="$ac_save_CPPFLAGS"
  else
      X_CFLAGS=""
-@@ -2769,6 +2962,7 @@
+@@ -2792,6 +2985,7 @@
  WINE_CONFIG_TEST(dlls/d3d8/tests)
  WINE_CONFIG_DLL(d3d9,,[implib])
  WINE_CONFIG_TEST(dlls/d3d9/tests)
@@ -246,9 +249,8 @@ diff -urN wine-1.9.1/configure.ac wine-1.9.1-d3d9/configure.ac
  WINE_CONFIG_DLL(d3dcompiler_33)
  WINE_CONFIG_DLL(d3dcompiler_34)
  WINE_CONFIG_DLL(d3dcompiler_35)
-diff -urN wine-1.9.1/dlls/d3d9/Makefile.in wine-1.9.1-d3d9/dlls/d3d9/Makefile.in
---- wine-1.9.1/dlls/d3d9/Makefile.in   2016-01-09 04:30:39.000000000 -0500
-+++ wine-1.9.1-d3d9/dlls/d3d9/Makefile.in      2016-01-18 06:22:25.038627619 -0500
+--- wine-1.9.2/dlls/d3d9/Makefile.in   2016-01-22 09:28:32.000000000 -0500
++++ wine-nine/dlls/d3d9/Makefile.in    2016-02-09 10:49:31.948614100 -0500
 @@ -1,6 +1,6 @@
  MODULE    = d3d9.dll
  IMPORTLIB = d3d9
@@ -257,429 +259,8 @@ diff -urN wine-1.9.1/dlls/d3d9/Makefile.in wine-1.9.1-d3d9/dlls/d3d9/Makefile.in
  
  C_SRCS = \
        buffer.c \
-diff -urN wine-1.9.1/dlls/d3d9/tests/d3d9ex.c wine-1.9.1-d3d9/dlls/d3d9/tests/d3d9ex.c
---- wine-1.9.1/dlls/d3d9/tests/d3d9ex.c        2016-01-09 04:30:39.000000000 -0500
-+++ wine-1.9.1-d3d9/dlls/d3d9/tests/d3d9ex.c   2016-01-18 06:22:34.644627423 -0500
-@@ -1490,6 +1490,7 @@
-     HRESULT hr;
-     BOOL ret;
-     struct device_desc desc;
-+    IDirect3DSwapChain9 *swapchain;
-     window = CreateWindowA("static", "d3d9_test", WS_OVERLAPPEDWINDOW,
-             0, 0, 640, 480, NULL, NULL, NULL, NULL);
-@@ -1514,6 +1515,12 @@
-     hr = IDirect3DDevice9Ex_CheckDeviceState(device, NULL);
-     ok(hr == S_PRESENT_OCCLUDED, "Got unexpected hr %#x.\n", hr);
-+    hr = IDirect3DDevice9Ex_GetSwapChain(device, 0, &swapchain);
-+    ok(SUCCEEDED(hr), "Failed to get swapchain, hr %#x.\n", hr);
-+    hr = IDirect3DSwapChain9_Present(swapchain, NULL, NULL, NULL, NULL, 0);
-+    ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr);
-+    IDirect3DSwapChain9_Release(swapchain);
-+
-     ret = SetForegroundWindow(GetDesktopWindow());
-     ok(ret, "Failed to set foreground window.\n");
-     hr = IDirect3DDevice9Ex_TestCooperativeLevel(device);
-@@ -1527,6 +1534,12 @@
-     hr = IDirect3DDevice9Ex_CheckDeviceState(device, NULL);
-     ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr);
-+    hr = IDirect3DDevice9Ex_GetSwapChain(device, 0, &swapchain);
-+    ok(SUCCEEDED(hr), "Failed to get swapchain, hr %#x.\n", hr);
-+    hr = IDirect3DSwapChain9_Present(swapchain, NULL, NULL, NULL, NULL, 0);
-+    ok(hr == S_PRESENT_OCCLUDED, "Got unexpected hr %#x.\n", hr);
-+    IDirect3DSwapChain9_Release(swapchain);
-+
-     ret = SetForegroundWindow(window);
-     ok(ret, "Failed to set foreground window.\n");
-     hr = IDirect3DDevice9Ex_TestCooperativeLevel(device);
-@@ -1540,6 +1553,12 @@
-     hr = IDirect3DDevice9Ex_CheckDeviceState(device, NULL);
-     ok(hr == S_PRESENT_OCCLUDED, "Got unexpected hr %#x.\n", hr);
-+    hr = IDirect3DDevice9Ex_GetSwapChain(device, 0, &swapchain);
-+    ok(SUCCEEDED(hr), "Failed to get swapchain, hr %#x.\n", hr);
-+    hr = IDirect3DSwapChain9_Present(swapchain, NULL, NULL, NULL, NULL, 0);
-+    ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr);
-+    IDirect3DSwapChain9_Release(swapchain);
-+
-     desc.width = 1024;
-     desc.height = 768;
-     hr = reset_device(device, &desc);
-@@ -1569,6 +1588,12 @@
-     hr = IDirect3DDevice9Ex_CheckDeviceState(device, NULL);
-     todo_wine ok(hr == S_PRESENT_MODE_CHANGED, "Got unexpected hr %#x.\n", hr);
-+    hr = IDirect3DDevice9Ex_GetSwapChain(device, 0, &swapchain);
-+    ok(SUCCEEDED(hr), "Failed to get swapchain, hr %#x.\n", hr);
-+    hr = IDirect3DSwapChain9_Present(swapchain, NULL, NULL, NULL, NULL, 0);
-+    ok(hr == S_PRESENT_MODE_CHANGED, "Got unexpected hr %#x.\n", hr);
-+    IDirect3DSwapChain9_Release(swapchain);
-+
-     hr = reset_device(device, &desc);
-     ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr);
-     hr = IDirect3DDevice9Ex_TestCooperativeLevel(device);
-@@ -1582,6 +1607,12 @@
-     hr = IDirect3DDevice9Ex_CheckDeviceState(device, NULL);
-     ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr);
-+    hr = IDirect3DDevice9Ex_GetSwapChain(device, 0, &swapchain);
-+    ok(SUCCEEDED(hr), "Failed to get swapchain, hr %#x.\n", hr);
-+    hr = IDirect3DSwapChain9_Present(swapchain, NULL, NULL, NULL, NULL, 0);
-+    ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr);
-+    IDirect3DSwapChain9_Release(swapchain);
-+
-     ret = SetForegroundWindow(GetDesktopWindow());
-     ok(ret, "Failed to set foreground window.\n");
-     hr = IDirect3DDevice9Ex_TestCooperativeLevel(device);
-diff -urN wine-1.9.1/dlls/d3d9/tests/device.c wine-1.9.1-d3d9/dlls/d3d9/tests/device.c
---- wine-1.9.1/dlls/d3d9/tests/device.c        2016-01-09 04:30:39.000000000 -0500
-+++ wine-1.9.1-d3d9/dlls/d3d9/tests/device.c   2016-01-18 06:22:34.645627423 -0500
-@@ -8300,10 +8300,10 @@
- static void test_vidmem_accounting(void)
- {
--    IDirect3DDevice9 *device;
-+    IDirect3DDevice9 *device, *device2;
-     IDirect3D9 *d3d9;
-     ULONG refcount;
--    HWND window;
-+    HWND window, window2;
-     HRESULT hr = D3D_OK;
-     IDirect3DTexture9 *textures[20];
-     unsigned int i;
-@@ -8311,6 +8311,8 @@
-     window = CreateWindowA("static", "d3d9_test", WS_OVERLAPPEDWINDOW,
-             0, 0, 640, 480, 0, 0, 0, 0);
-+    window2 = CreateWindowA("static", "d3d9_test", WS_OVERLAPPEDWINDOW,
-+            0, 0, 640, 480, 0, 0, 0, 0);
-     d3d9 = Direct3DCreate9(D3D_SDK_VERSION);
-     ok(!!d3d9, "Failed to create a D3D object.\n");
-     if (!(device = create_device(d3d9, window, NULL)))
-@@ -8345,6 +8347,43 @@
-             IDirect3DTexture9_Release(textures[i]);
-     }
-+    /* Multi-device testing */
-+    if (!(device2 = create_device(d3d9, window2, NULL)))
-+    {
-+        skip("Failed to create a D3D device, skipping tests.\n");
-+        refcount = IDirect3DDevice9_Release(device);
-+        ok(!refcount, "Device has %u references left.\n", refcount);
-+        IDirect3D9_Release(d3d9);
-+        DestroyWindow(window2);
-+        DestroyWindow(window);
-+        return;
-+    }
-+
-+     vidmem_start = IDirect3DDevice9_GetAvailableTextureMem(device);
-+     memset(textures, 0, sizeof(textures));
-+     for (i = 0; (i < sizeof(textures) / sizeof(*textures)) && SUCCEEDED(hr); i++)
-+     {
-+         hr = IDirect3DDevice9_CreateTexture(device2, 1024, 1024, 1, D3DUSAGE_RENDERTARGET,
-+                 D3DFMT_X8R8G8B8, D3DPOOL_DEFAULT, &textures[i], NULL);
-+         /* D3DERR_OUTOFVIDEOMEMORY is returned when the card runs out of video memory
-+          * E_FAIL is returned on address space or system memory exhaustion */
-+         ok(SUCCEEDED(hr) || hr == D3DERR_OUTOFVIDEOMEMORY || hr == E_OUTOFMEMORY,
-+                 "Failed to create texture, hr %#x.\n", hr);
-+     }
-+     vidmem_end = IDirect3DDevice9_GetAvailableTextureMem(device);
-+
-+     /* Windows 7 uses device private counters */
-+     ok(vidmem_start > vidmem_end || broken(vidmem_start == vidmem_end), "Expected available texture memory to decrease during texture creation.\n");
-+     diff = vidmem_start - vidmem_end;
-+     ok(diff > 1024 * 1024 * 2 * i || broken(diff == 0), "Expected a video memory difference of at least %u MB, got %u MB.\n",
-+             2 * i, diff / 1024 / 1024);
-+
-+     for (i = 0; i < sizeof(textures) / sizeof(*textures); i++)
-+     {
-+         if (textures[i])
-+             IDirect3DTexture9_Release(textures[i]);
-+     }
-+
-     refcount = IDirect3DDevice9_Release(device);
-     ok(!refcount, "Device has %u references left.\n", refcount);
-     IDirect3D9_Release(d3d9);
-@@ -10065,6 +10104,7 @@
-     HWND window;
-     HRESULT hr;
-     BOOL ret;
-+    IDirect3DSwapChain9 *swapchain;
-     window = CreateWindowA("static", "d3d9_test", WS_OVERLAPPEDWINDOW,
-             0, 0, 640, 480, NULL, NULL, NULL, NULL);
-@@ -10092,6 +10132,12 @@
-     hr = IDirect3DDevice9_Present(device, NULL, NULL, NULL, NULL);
-     ok(hr == D3DERR_DEVICELOST, "Got unexpected hr %#x.\n", hr);
-+    hr = IDirect3DDevice9_GetSwapChain(device, 0, &swapchain);
-+    ok(SUCCEEDED(hr), "Failed to get swapchain, hr %#x.\n", hr);
-+    hr = IDirect3DSwapChain9_Present(swapchain, NULL, NULL, NULL, NULL, 0);
-+    ok(hr == D3DERR_DEVICELOST, "Got unexpected hr %#x.\n", hr);
-+    IDirect3DSwapChain9_Release(swapchain);
-+
-     ret = ShowWindow(window, SW_RESTORE);
-     ok(ret, "Failed to restore window.\n");
-     ret = SetForegroundWindow(window);
-@@ -10101,6 +10147,12 @@
-     hr = IDirect3DDevice9_Present(device, NULL, NULL, NULL, NULL);
-     ok(hr == D3DERR_DEVICELOST, "Got unexpected hr %#x.\n", hr);
-+    hr = IDirect3DDevice9_GetSwapChain(device, 0, &swapchain);
-+    ok(SUCCEEDED(hr), "Failed to get swapchain, hr %#x.\n", hr);
-+    hr = IDirect3DSwapChain9_Present(swapchain, NULL, NULL, NULL, NULL, 0);
-+    ok(hr == D3DERR_DEVICELOST, "Got unexpected hr %#x.\n", hr);
-+    IDirect3DSwapChain9_Release(swapchain);
-+
-     hr = reset_device(device, &device_desc);
-     ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr);
-     hr = IDirect3DDevice9_TestCooperativeLevel(device);
-@@ -10108,6 +10160,12 @@
-     hr = IDirect3DDevice9_Present(device, NULL, NULL, NULL, NULL);
-     ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr);
-+    hr = IDirect3DDevice9_GetSwapChain(device, 0, &swapchain);
-+    ok(SUCCEEDED(hr), "Failed to get swapchain, hr %#x.\n", hr);
-+    hr = IDirect3DSwapChain9_Present(swapchain, NULL, NULL, NULL, NULL, 0);
-+    ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr);
-+    IDirect3DSwapChain9_Release(swapchain);
-+
-     device_desc.flags = 0;
-     hr = reset_device(device, &device_desc);
-     ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr);
-diff -urN wine-1.9.1/dlls/d3d9/tests/visual.c wine-1.9.1-d3d9/dlls/d3d9/tests/visual.c
---- wine-1.9.1/dlls/d3d9/tests/visual.c        2016-01-09 04:30:39.000000000 -0500
-+++ wine-1.9.1-d3d9/dlls/d3d9/tests/visual.c   2016-01-18 06:23:32.173626249 -0500
-@@ -8674,6 +8674,167 @@
-     DestroyWindow(window);
- }
-+static void test_blend_invalid_arg(void)
-+{
-+    IDirect3DSurface9 *backbuffer, *offscreen;
-+    IDirect3DTexture9 *offscreenTexture;
-+    IDirect3DDevice9 *device;
-+    IDirect3D9 *d3d;
-+    D3DCOLOR color;
-+    ULONG refcount;
-+    HWND window;
-+    HRESULT hr;
-+    DWORD rs;
-+
-+    static const struct
-+    {
-+        struct vec3 position;
-+        DWORD diffuse;
-+    }
-+    quad1[] =
-+    {
-+        {{-1.0f, -1.0f, 0.1f}, 0x4000ff00},
-+        {{-1.0f,  0.0f, 0.1f}, 0x4000ff00},
-+        {{ 0.0f, -1.0f, 0.1f}, 0x4000ff00},
-+        {{ 0.0f,  0.0f, 0.1f}, 0x4000ff00},
-+    },
-+    quad2[] =
-+    {
-+        {{ 0.0f,  0.0f, 0.1f}, 0x4000ff00},
-+        {{ 0.0f,  1.0f, 0.1f}, 0x4000ff00},
-+        {{ 1.0f,  0.0f, 0.1f}, 0x4000ff00},
-+        {{ 1.0f,  1.0f, 0.1f}, 0x4000ff00},
-+    },
-+    quad3[] =
-+    {
-+        {{-1.0f,  0.0f, 0.1f}, 0xc00000ff},
-+        {{-1.0f,  1.0f, 0.1f}, 0xc00000ff},
-+        {{ 0.0f,  0.0f, 0.1f}, 0xc00000ff},
-+        {{ 0.0f,  1.0f, 0.1f}, 0xc00000ff},
-+    },
-+    quad4[] =
-+    {
-+        {{ 0.0f, -1.0f, 0.1f}, 0xc00000ff},
-+        {{ 0.0f,  0.0f, 0.1f}, 0xc00000ff},
-+        {{ 1.0f, -1.0f, 0.1f}, 0xc00000ff},
-+        {{ 1.0f,  0.0f, 0.1f}, 0xc00000ff},
-+    };
-+
-+    window = CreateWindowA("static", "d3d9_test", WS_OVERLAPPEDWINDOW | WS_VISIBLE,
-+            0, 0, 640, 480, NULL, NULL, NULL, NULL);
-+    d3d = Direct3DCreate9(D3D_SDK_VERSION);
-+    ok(!!d3d, "Failed to create a D3D object.\n");
-+    if (!(device = create_device(d3d, window, window, TRUE)))
-+    {
-+        skip("Failed to create a D3D device, skipping tests.\n");
-+        goto done;
-+    }
-+    /* Clear the render target with alpha = 0.5 */
-+    hr = IDirect3DDevice9_Clear(device, 0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, 0x80ff0000, 1.0f, 0);
-+    ok(hr == D3D_OK, "Clear failed, hr = %08x\n", hr);
-+
-+    hr = IDirect3DDevice9_CreateTexture(device, 128, 128, 1, D3DUSAGE_RENDERTARGET,
-+            D3DFMT_X8R8G8B8, D3DPOOL_DEFAULT, &offscreenTexture, NULL);
-+    ok(SUCCEEDED(hr), "Failed to create texture, hr %#x.\n", hr);
-+
-+    hr = IDirect3DDevice9_GetBackBuffer(device, 0, 0, D3DBACKBUFFER_TYPE_MONO, &backbuffer);
-+    ok(hr == D3D_OK, "Can't get back buffer, hr = %08x\n", hr);
-+
-+    hr = IDirect3DTexture9_GetSurfaceLevel(offscreenTexture, 0, &offscreen);
-+    ok(hr == D3D_OK, "Can't get offscreen surface, hr = %08x\n", hr);
-+
-+    hr = IDirect3DDevice9_SetFVF(device, D3DFVF_XYZ | D3DFVF_DIFFUSE);
-+    ok(hr == D3D_OK, "IDirect3DDevice9_SetFVF failed, hr = %#08x\n", hr);
-+
-+    hr = IDirect3DDevice9_SetTextureStageState(device, 0, D3DTSS_COLOROP, D3DTOP_SELECTARG1);
-+    ok(hr == D3D_OK, "SetTextureStageState failed, hr = %08x\n", hr);
-+    hr = IDirect3DDevice9_SetTextureStageState(device, 0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
-+    ok(hr == D3D_OK, "SetTextureStageState failed, hr = %08x\n", hr);
-+    hr = IDirect3DDevice9_SetSamplerState(device, 0, D3DSAMP_MINFILTER, D3DTEXF_POINT);
-+    ok(SUCCEEDED(hr), "SetSamplerState D3DSAMP_MINFILTER failed (0x%08x)\n", hr);
-+    hr = IDirect3DDevice9_SetSamplerState(device, 0, D3DSAMP_MAGFILTER, D3DTEXF_POINT);
-+    ok(SUCCEEDED(hr), "SetSamplerState D3DSAMP_MAGFILTER failed (0x%08x)\n", hr);
-+    hr = IDirect3DDevice9_SetRenderState(device, D3DRS_LIGHTING, FALSE);
-+    ok(hr == D3D_OK, "IDirect3DDevice9_SetRenderState returned %08x\n", hr);
-+
-+    hr = IDirect3DDevice9_SetRenderState(device, D3DRS_ALPHABLENDENABLE, TRUE);
-+    ok(hr == D3D_OK, "IDirect3DDevice9_SetRenderState failed, hr = %08x\n", hr);
-+    hr = IDirect3DDevice9_BeginScene(device);
-+    ok(SUCCEEDED(hr), "Failed to begin scene, hr %#x.\n", hr);
-+
-+    /* draw quad to test default renderstate
-+     * expect D3DRS_SRCBLEND == D3DBLEND_ONE
-+     * expect D3DRS_DESTBLEND == D3DBLEND_ZERO */
-+    hr = IDirect3DDevice9_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, quad1, sizeof(quad1[0]));
-+    ok(SUCCEEDED(hr), "Failed to draw, hr %#x.\n", hr);
-+
-+    /* set invalid value and expect D3DBLEND_ZERO instead */
-+    hr = IDirect3DDevice9_SetRenderState(device, D3DRS_SRCBLEND, 0);
-+    ok(SUCCEEDED(hr), "Failed to set render state, hr %#x.\n", hr);
-+    hr = IDirect3DDevice9_GetRenderState(device, D3DRS_SRCBLEND, &rs);
-+    ok(SUCCEEDED(hr), "Failed to get render state, hr %#x.\n", hr);
-+    ok(rs == 0, "Unexpected renderstate %#x.\n", rs);
-+    hr = IDirect3DDevice9_SetRenderState(device, D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
-+    ok(SUCCEEDED(hr), "Failed to set render state, hr %#x.\n", hr);
-+
-+    hr = IDirect3DDevice9_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, quad2, sizeof(quad2[0]));
-+    ok(SUCCEEDED(hr), "Failed to draw, hr %#x.\n", hr);
-+    /* set non default valid values */
-+    hr = IDirect3DDevice9_SetRenderState(device, D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
-+    ok(SUCCEEDED(hr), "Failed to set render state, hr %#x.\n", hr);
-+    hr = IDirect3DDevice9_GetRenderState(device, D3DRS_SRCBLEND, &rs);
-+    ok(SUCCEEDED(hr), "Failed to get render state, hr %#x.\n", hr);
-+    ok(rs == D3DBLEND_SRCALPHA, "Unexpected renderstate %#x.\n", rs);
-+    hr = IDirect3DDevice9_SetRenderState(device, D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
-+    ok(SUCCEEDED(hr), "Failed to set render state, hr %#x.\n", hr);
-+    hr = IDirect3DDevice9_GetRenderState(device, D3DRS_DESTBLEND, &rs);
-+    ok(SUCCEEDED(hr), "Failed to get render state, hr %#x.\n", hr);
-+    ok(rs == D3DBLEND_INVSRCALPHA, "Failed to get render state, hr %#x.\n", hr);
-+
-+    hr = IDirect3DDevice9_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, quad3, sizeof(quad3[0]));
-+    ok(SUCCEEDED(hr), "Failed to draw, hr %#x.\n", hr);
-+
-+    /* set invalid value and expect D3DBLEND_ZERO instead */
-+    hr = IDirect3DDevice9_SetRenderState(device, D3DRS_DESTBLEND, 200);
-+    ok(SUCCEEDED(hr), "Failed to set render state, hr %#x.\n", hr);
-+    hr = IDirect3DDevice9_GetRenderState(device, D3DRS_DESTBLEND, &rs);
-+    ok(SUCCEEDED(hr), "Failed to get render state, hr %#x.\n", hr);
-+    ok(rs == 200, "Failed to get render state, hr %#x.\n", hr);
-+
-+    hr = IDirect3DDevice9_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, quad4, sizeof(quad4[0]));
-+    ok(SUCCEEDED(hr), "Failed to draw, hr %#x.\n", hr);
-+
-+    hr = IDirect3DDevice9_EndScene(device);
-+    ok(SUCCEEDED(hr), "Failed to end scene, hr %#x.\n", hr);
-+
-+    color = getPixelColor(device, 160, 360);
-+    ok(color_match(color, D3DCOLOR_ARGB(0x00, 0x00, 0xff, 0x00), 1),
-+       "D3DRS_SRCBLEND ONE returned color %08x, expected 0x0000FF00\n", color);
-+
-+    color = getPixelColor(device, 480, 120);
-+    ok(color_match(color, D3DCOLOR_ARGB(0x00, 0xbf, 0x00, 0x00), 1),
-+       "invalid D3DRS_SRCBLEND returned color %08x, expected 0x00bf0000\n", color);
-+
-+    color = getPixelColor(device, 160, 120);
-+    ok(color_match(color, D3DCOLOR_ARGB(0x00, 0x3f, 0x00, 0xC0), 1),
-+       "D3DRS_SRCBLEND SRCALPHA returned color %08x, expected 0x003f00C0\n", color);
-+
-+    color = getPixelColor(device, 480, 360);
-+    ok(color_match(color, D3DCOLOR_ARGB(0x00, 0x00, 0x00, 0xC0), 1),
-+       "invalid D3DRS_DESTBLEND returned color %08x, expected 0x000000C0\n", color);
-+
-+    IDirect3DDevice9_Present(device, NULL, NULL, NULL, NULL);
-+
-+    IDirect3DSurface9_Release(backbuffer);
-+    IDirect3DTexture9_Release(offscreenTexture);
-+    IDirect3DSurface9_Release(offscreen);
-+    refcount = IDirect3DDevice9_Release(device);
-+    ok(!refcount, "Device has %u references left.\n", refcount);
-+done:
-+    IDirect3D9_Release(d3d);
-+    DestroyWindow(window);
-+}
-+
- static void fixed_function_decl_test(void)
- {
-     IDirect3DVertexDeclaration9 *dcl_float = NULL, *dcl_short = NULL, *dcl_ubyte = NULL, *dcl_color = NULL;
-@@ -12873,6 +13034,9 @@
-     }
-     testdata[] =
-     {
-+        /* test invalid values, D3DCMP_NEVER for values less than D3DCMP_NEVER,
-+         * D3DCMP_ALWAYS for values greater than D3DCMP_ALWAYS */
-+        {D3DCMP_NEVER-1,      ALPHATEST_FAILED, ALPHATEST_FAILED, ALPHATEST_FAILED},
-         {D3DCMP_NEVER,        ALPHATEST_FAILED, ALPHATEST_FAILED, ALPHATEST_FAILED},
-         {D3DCMP_LESS,         ALPHATEST_PASSED, ALPHATEST_FAILED, ALPHATEST_FAILED},
-         {D3DCMP_EQUAL,        ALPHATEST_FAILED, ALPHATEST_PASSED, ALPHATEST_FAILED},
-@@ -12881,6 +13045,10 @@
-         {D3DCMP_NOTEQUAL,     ALPHATEST_PASSED, ALPHATEST_FAILED, ALPHATEST_PASSED},
-         {D3DCMP_GREATEREQUAL, ALPHATEST_FAILED, ALPHATEST_PASSED, ALPHATEST_PASSED},
-         {D3DCMP_ALWAYS,       ALPHATEST_PASSED, ALPHATEST_PASSED, ALPHATEST_PASSED},
-+        {D3DCMP_ALWAYS+1,     ALPHATEST_PASSED, ALPHATEST_PASSED, ALPHATEST_PASSED},
-+        {D3DCMP_ALWAYS+2,     ALPHATEST_PASSED, ALPHATEST_PASSED, ALPHATEST_PASSED},
-+        {D3DCMP_ALWAYS+3,     ALPHATEST_PASSED, ALPHATEST_PASSED, ALPHATEST_PASSED},
-+        {0xdeadbeef,          ALPHATEST_PASSED, ALPHATEST_PASSED, ALPHATEST_PASSED},
-     };
-     static const struct
-     {
-@@ -18226,6 +18394,27 @@
-                 D3DFOG_LINEAR, D3DFOG_NONE,   0x0000ff00, 0x0000ff00, 0x0000ff00},
-         {D3DFVF_XYZ,    quad,   sizeof(*quad),  &zero,     { 0.0f}, {1.0f},
-                 D3DFOG_EXP,    D3DFOG_NONE,   0x009b6400, 0x009b6400, 0x009b6400},
-+        /* test invalid values, expect a modulo 4 on samplerstate */
-+        {D3DFVF_XYZ,    quad,   sizeof(*quad),  &zero,     { 0.0f}, {1.0f},
-+                D3DFOG_LINEAR+1,    D3DFOG_NONE,   0x0000ff00, 0x009b6400, 0x009b6400},
-+        {D3DFVF_XYZ,    quad,   sizeof(*quad),  &zero,     { 0.0f}, {1.0f},
-+                D3DFOG_LINEAR+2,    D3DFOG_NONE,   0x00c73800, 0x009b6400, 0x009b6400},
-+        {D3DFVF_XYZ,    quad,   sizeof(*quad),  &zero,     { 0.0f}, {1.0f},
-+                D3DFOG_LINEAR+3,    D3DFOG_NONE,   0x00c73800, 0x009b6400, 0x009b6400},
-+        {D3DFVF_XYZ,    quad,   sizeof(*quad),  &zero,     { 0.0f}, {1.0f},
-+                D3DFOG_LINEAR+4,    D3DFOG_NONE,   0x007f7f00, 0x009b6400, 0x009b6400},
-+        {D3DFVF_XYZ,    quad,   sizeof(*quad),  &zero,     { 0.0f}, {1.0f},
-+                D3DFOG_LINEAR+5,    D3DFOG_NONE,   0x0000ff00, 0x009b6400, 0x009b6400},
-+        {D3DFVF_XYZ,    quad,   sizeof(*quad),  &zero,     { 0.0f}, {1.0f},
-+                D3DFOG_LINEAR+6,    D3DFOG_NONE,   0x00c73800, 0x009b6400, 0x009b6400},
-+        {D3DFVF_XYZ,    quad,   sizeof(*quad),  &zero,     { 0.0f}, {1.0f},
-+                D3DFOG_LINEAR+7,    D3DFOG_NONE,   0x00c73800, 0x009b6400, 0x009b6400},
-+        {D3DFVF_XYZ,    quad,   sizeof(*quad),  &zero,     { 0.0f}, {1.0f},
-+                D3DFOG_LINEAR+8,    D3DFOG_NONE,   0x007f7f00, 0x009b6400, 0x009b6400},
-+        {D3DFVF_XYZ,    quad,   sizeof(*quad),  &zero,     { 0.0f}, {1.0f},
-+                D3DFOG_LINEAR+9,    D3DFOG_NONE,   0x0000ff00, 0x009b6400, 0x009b6400},
-+        {D3DFVF_XYZ,    quad,   sizeof(*quad),  &zero,     { 0.0f}, {1.0f},
-+                D3DFOG_LINEAR+10,    D3DFOG_NONE,   0x00c73800, 0x009b6400, 0x009b6400},
-     };
-     D3DCAPS9 caps;
-@@ -21541,6 +21730,7 @@
-     test_depthbias();
-     test_flip();
-     test_uninitialized_varyings();
-+    test_blend_invalid_arg();
-     test_multisample_init();
-     test_texture_blending();
- }
-diff -urN wine-1.9.1/dlls/d3d9-nine/d3d9_main.c wine-1.9.1-d3d9/dlls/d3d9-nine/d3d9_main.c
---- wine-1.9.1/dlls/d3d9-nine/d3d9_main.c      1969-12-31 19:00:00.000000000 -0500
-+++ wine-1.9.1-d3d9/dlls/d3d9-nine/d3d9_main.c 2016-01-18 06:22:25.046627618 -0500
+--- wine-1.9.2/dlls/d3d9-nine/d3d9_main.c      1969-12-31 19:00:00.000000000 -0500
++++ wine-nine/dlls/d3d9-nine/d3d9_main.c       2016-02-09 10:49:31.947614100 -0500
 @@ -0,0 +1,157 @@
 +/*
 + * Direct3D 9
@@ -838,9 +419,8 @@ diff -urN wine-1.9.1/dlls/d3d9-nine/d3d9_main.c wine-1.9.1-d3d9/dlls/d3d9-nine/d
 +{
 +    FIXME("color 0x%08x, name %s stub!\n", color, debugstr_w(name));
 +}
-diff -urN wine-1.9.1/dlls/d3d9-nine/d3d9-nine.spec wine-1.9.1-d3d9/dlls/d3d9-nine/d3d9-nine.spec
---- wine-1.9.1/dlls/d3d9-nine/d3d9-nine.spec   1969-12-31 19:00:00.000000000 -0500
-+++ wine-1.9.1-d3d9/dlls/d3d9-nine/d3d9-nine.spec      2016-01-18 06:22:25.046627618 -0500
+--- wine-1.9.2/dlls/d3d9-nine/d3d9-nine.spec   1969-12-31 19:00:00.000000000 -0500
++++ wine-nine/dlls/d3d9-nine/d3d9-nine.spec    2016-02-09 10:49:31.947614100 -0500
 @@ -0,0 +1,14 @@
 +@ stdcall Direct3DShaderValidatorCreate9()
 +@ stub PSGPError
@@ -856,9 +436,8 @@ diff -urN wine-1.9.1/dlls/d3d9-nine/d3d9-nine.spec wine-1.9.1-d3d9/dlls/d3d9-nin
 +@ stdcall DebugSetMute()
 +@ stdcall Direct3DCreate9(long)
 +@ stdcall Direct3DCreate9Ex(long ptr)
-diff -urN wine-1.9.1/dlls/d3d9-nine/d3dadapter9.c wine-1.9.1-d3d9/dlls/d3d9-nine/d3dadapter9.c
---- wine-1.9.1/dlls/d3d9-nine/d3dadapter9.c    1969-12-31 19:00:00.000000000 -0500
-+++ wine-1.9.1-d3d9/dlls/d3d9-nine/d3dadapter9.c       2016-01-18 06:22:25.046627618 -0500
+--- wine-1.9.2/dlls/d3d9-nine/d3dadapter9.c    1969-12-31 19:00:00.000000000 -0500
++++ wine-nine/dlls/d3d9-nine/d3dadapter9.c     2016-02-09 10:49:31.947614100 -0500
 @@ -0,0 +1,865 @@
 +/*
 + * Wine IDirect3D9 interface using ID3DAdapter9
@@ -1725,9 +1304,8 @@ diff -urN wine-1.9.1/dlls/d3d9-nine/d3dadapter9.c wine-1.9.1-d3d9/dlls/d3d9-nine
 +          "\nFor more information visit https://wiki.ixit.cz/d3d9\033[0m\n");
 +    return D3D_OK;
 +}
-diff -urN wine-1.9.1/dlls/d3d9-nine/d3dadapter9.h wine-1.9.1-d3d9/dlls/d3d9-nine/d3dadapter9.h
---- wine-1.9.1/dlls/d3d9-nine/d3dadapter9.h    1969-12-31 19:00:00.000000000 -0500
-+++ wine-1.9.1-d3d9/dlls/d3d9-nine/d3dadapter9.h       2016-01-18 06:22:25.047627618 -0500
+--- wine-1.9.2/dlls/d3d9-nine/d3dadapter9.h    1969-12-31 19:00:00.000000000 -0500
++++ wine-nine/dlls/d3d9-nine/d3dadapter9.h     2016-02-09 10:49:31.947614100 -0500
 @@ -0,0 +1,30 @@
 +/*
 + * D3DAdapter9 interface
@@ -1759,9 +1337,8 @@ diff -urN wine-1.9.1/dlls/d3d9-nine/d3dadapter9.h wine-1.9.1-d3d9/dlls/d3d9-nine
 +HRESULT d3dadapter9_new(Display *gdi_display, boolean ex, IDirect3D9Ex **ppOut);
 +
 +#endif /* __WINE_D3D9ADAPTER_H */
-diff -urN wine-1.9.1/dlls/d3d9-nine/dri3.c wine-1.9.1-d3d9/dlls/d3d9-nine/dri3.c
---- wine-1.9.1/dlls/d3d9-nine/dri3.c   1969-12-31 19:00:00.000000000 -0500
-+++ wine-1.9.1-d3d9/dlls/d3d9-nine/dri3.c      2016-01-18 06:22:25.047627618 -0500
+--- wine-1.9.2/dlls/d3d9-nine/dri3.c   1969-12-31 19:00:00.000000000 -0500
++++ wine-nine/dlls/d3d9-nine/dri3.c    2016-02-09 10:49:31.947614100 -0500
 @@ -0,0 +1,1345 @@
 +/*
 + * Wine DRI3 interface
@@ -3108,9 +2685,8 @@ diff -urN wine-1.9.1/dlls/d3d9-nine/dri3.c wine-1.9.1-d3d9/dlls/d3d9-nine/dri3.c
 +    pthread_mutex_unlock(&present_priv->mutex_present);
 +    return TRUE;
 +}
-diff -urN wine-1.9.1/dlls/d3d9-nine/dri3.h wine-1.9.1-d3d9/dlls/d3d9-nine/dri3.h
---- wine-1.9.1/dlls/d3d9-nine/dri3.h   1969-12-31 19:00:00.000000000 -0500
-+++ wine-1.9.1-d3d9/dlls/d3d9-nine/dri3.h      2016-01-18 06:22:25.048627618 -0500
+--- wine-1.9.2/dlls/d3d9-nine/dri3.h   1969-12-31 19:00:00.000000000 -0500
++++ wine-nine/dlls/d3d9-nine/dri3.h    2016-02-09 10:49:31.948614100 -0500
 @@ -0,0 +1,101 @@
 +/*
 + * Wine X11DRV DRI3 interface
@@ -3213,9 +2789,8 @@ diff -urN wine-1.9.1/dlls/d3d9-nine/dri3.h wine-1.9.1-d3d9/dlls/d3d9-nine/dri3.h
 +PRESENTWaitPixmapReleased(PRESENTPixmapPriv *present_pixmap_priv);
 +
 +#endif /* __WINE_DRI3_H */
-diff -urN wine-1.9.1/dlls/d3d9-nine/libd3d9-nine.def wine-1.9.1-d3d9/dlls/d3d9-nine/libd3d9-nine.def
---- wine-1.9.1/dlls/d3d9-nine/libd3d9-nine.def 1969-12-31 19:00:00.000000000 -0500
-+++ wine-1.9.1-d3d9/dlls/d3d9-nine/libd3d9-nine.def    2016-01-18 06:22:25.048627618 -0500
+--- wine-1.9.2/dlls/d3d9-nine/libd3d9-nine.def 1969-12-31 19:00:00.000000000 -0500
++++ wine-nine/dlls/d3d9-nine/libd3d9-nine.def  2016-02-09 10:49:31.948614100 -0500
 @@ -0,0 +1,16 @@
 +; File generated automatically from ./dlls/d3d9-nine/d3d9-nine.spec; do not edit!
 +
@@ -3233,9 +2808,8 @@ diff -urN wine-1.9.1/dlls/d3d9-nine/libd3d9-nine.def wine-1.9.1-d3d9/dlls/d3d9-n
 +  DebugSetMute@0 @12
 +  Direct3DCreate9@4 @13
 +  Direct3DCreate9Ex@8 @14
-diff -urN wine-1.9.1/dlls/d3d9-nine/Makefile.in wine-1.9.1-d3d9/dlls/d3d9-nine/Makefile.in
---- wine-1.9.1/dlls/d3d9-nine/Makefile.in      1969-12-31 19:00:00.000000000 -0500
-+++ wine-1.9.1-d3d9/dlls/d3d9-nine/Makefile.in 2016-01-18 06:22:25.048627618 -0500
+--- wine-1.9.2/dlls/d3d9-nine/Makefile.in      1969-12-31 19:00:00.000000000 -0500
++++ wine-nine/dlls/d3d9-nine/Makefile.in       2016-02-09 10:49:31.947614100 -0500
 @@ -0,0 +1,12 @@
 +MODULE    = d3d9-nine.dll
 +IMPORTS   = dxguid uuid advapi32 gdi32 user32
@@ -3249,9 +2823,8 @@ diff -urN wine-1.9.1/dlls/d3d9-nine/Makefile.in wine-1.9.1-d3d9/dlls/d3d9-nine/M
 +        dri3.c
 +
 +RC_SRCS = version.rc
-diff -urN wine-1.9.1/dlls/d3d9-nine/present.c wine-1.9.1-d3d9/dlls/d3d9-nine/present.c
---- wine-1.9.1/dlls/d3d9-nine/present.c        1969-12-31 19:00:00.000000000 -0500
-+++ wine-1.9.1-d3d9/dlls/d3d9-nine/present.c   2016-01-18 06:22:25.049627618 -0500
+--- wine-1.9.2/dlls/d3d9-nine/present.c        1969-12-31 19:00:00.000000000 -0500
++++ wine-nine/dlls/d3d9-nine/present.c 2016-02-09 10:49:31.948614100 -0500
 @@ -0,0 +1,1332 @@
 +/*
 + * Wine ID3DAdapter9 support functions
@@ -4585,9 +4158,8 @@ diff -urN wine-1.9.1/dlls/d3d9-nine/present.c wine-1.9.1-d3d9/dlls/d3d9-nine/pre
 +
 +    return FALSE;
 +}
-diff -urN wine-1.9.1/dlls/d3d9-nine/present.h wine-1.9.1-d3d9/dlls/d3d9-nine/present.h
---- wine-1.9.1/dlls/d3d9-nine/present.h        1969-12-31 19:00:00.000000000 -0500
-+++ wine-1.9.1-d3d9/dlls/d3d9-nine/present.h   2016-01-18 06:22:25.049627618 -0500
+--- wine-1.9.2/dlls/d3d9-nine/present.h        1969-12-31 19:00:00.000000000 -0500
++++ wine-nine/dlls/d3d9-nine/present.h 2016-02-09 10:49:31.948614100 -0500
 @@ -0,0 +1,36 @@
 +/*
 + * Wine present interface
@@ -4625,9 +4197,8 @@ diff -urN wine-1.9.1/dlls/d3d9-nine/present.h wine-1.9.1-d3d9/dlls/d3d9-nine/pre
 +BOOL has_d3dadapter(Display *gdi_display);
 +
 +#endif /* __WINE_DRI3_H */
-diff -urN wine-1.9.1/dlls/d3d9-nine/version.rc wine-1.9.1-d3d9/dlls/d3d9-nine/version.rc
---- wine-1.9.1/dlls/d3d9-nine/version.rc       1969-12-31 19:00:00.000000000 -0500
-+++ wine-1.9.1-d3d9/dlls/d3d9-nine/version.rc  2016-01-18 06:22:25.049627618 -0500
+--- wine-1.9.2/dlls/d3d9-nine/version.rc       1969-12-31 19:00:00.000000000 -0500
++++ wine-nine/dlls/d3d9-nine/version.rc        2016-02-09 10:49:31.948614100 -0500
 @@ -0,0 +1,26 @@
 +/*
 + * Copyright 2015 Patrick Rudolph
@@ -4655,9 +4226,8 @@ diff -urN wine-1.9.1/dlls/d3d9-nine/version.rc wine-1.9.1-d3d9/dlls/d3d9-nine/ve
 +#define WINE_PRODUCTVERSION_STR "5.3.1.904"
 +
 +#include "wine/wine_common_ver.rc"
-diff -urN wine-1.9.1/dlls/ntdll/loader.c wine-1.9.1-d3d9/dlls/ntdll/loader.c
---- wine-1.9.1/dlls/ntdll/loader.c     2016-01-09 04:30:39.000000000 -0500
-+++ wine-1.9.1-d3d9/dlls/ntdll/loader.c        2016-01-18 06:22:25.049627618 -0500
+--- wine-1.9.2/dlls/ntdll/loader.c     2016-01-22 09:28:32.000000000 -0500
++++ wine-nine/dlls/ntdll/loader.c      2016-02-09 10:49:32.246614121 -0500
 @@ -92,6 +92,7 @@
  {
      const WCHAR *load_path;
@@ -4867,9 +4437,8 @@ diff -urN wine-1.9.1/dlls/ntdll/loader.c wine-1.9.1-d3d9/dlls/ntdll/loader.c
      {
          MESSAGE( "wine: could not load kernel32.dll, status %x\n", status );
          exit(1);
-diff -urN wine-1.9.1/dlls/ntdll/loadorder.c wine-1.9.1-d3d9/dlls/ntdll/loadorder.c
---- wine-1.9.1/dlls/ntdll/loadorder.c  2016-01-09 04:30:39.000000000 -0500
-+++ wine-1.9.1-d3d9/dlls/ntdll/loadorder.c     2016-01-18 06:22:25.050627618 -0500
+--- wine-1.9.2/dlls/ntdll/loadorder.c  2016-01-22 09:28:32.000000000 -0500
++++ wine-nine/dlls/ntdll/loadorder.c   2016-02-09 10:49:32.246614121 -0500
 @@ -290,102 +290,165 @@
  
  
@@ -5208,7 +4777,7 @@ diff -urN wine-1.9.1/dlls/ntdll/loadorder.c wine-1.9.1-d3d9/dlls/ntdll/loadorder
  
      /* first explicit module name */
      if ((ret = get_load_order_value( std_key, app_key, module+1 )) != LO_INVALID)
-@@ -487,5 +594,48 @@
+@@ -487,5 +594,50 @@
  
   done:
      RtlFreeHeap( GetProcessHeap(), 0, module );
@@ -5246,8 +4815,10 @@ diff -urN wine-1.9.1/dlls/ntdll/loadorder.c wine-1.9.1-d3d9/dlls/ntdll/loadorder
 +        goto done;
 +
 +    /* then module basename without '*' (only if explicit path) */
++    /*
 +    if (basename != module+1 && (ret = get_redirect_value( std_key, app_key, basename, buffer, size )))
 +        goto done;
++    */
 +
 +    /* and last the hard-coded default */
 +    ret = NULL;
@@ -5257,10 +4828,9 @@ diff -urN wine-1.9.1/dlls/ntdll/loadorder.c wine-1.9.1-d3d9/dlls/ntdll/loadorder
 +    RtlFreeHeap( GetProcessHeap(), 0, module );
      return ret;
  }
-diff -urN wine-1.9.1/dlls/ntdll/ntdll_misc.h wine-1.9.1-d3d9/dlls/ntdll/ntdll_misc.h
---- wine-1.9.1/dlls/ntdll/ntdll_misc.h 2016-01-09 04:30:39.000000000 -0500
-+++ wine-1.9.1-d3d9/dlls/ntdll/ntdll_misc.h    2016-01-18 06:22:25.050627618 -0500
-@@ -205,6 +205,7 @@
+--- wine-1.9.2/dlls/ntdll/ntdll_misc.h 2016-01-22 09:28:32.000000000 -0500
++++ wine-nine/dlls/ntdll/ntdll_misc.h  2016-02-09 10:49:32.247614121 -0500
+@@ -202,6 +202,7 @@
  };
  
  extern enum loadorder get_load_order( const WCHAR *app_name, const WCHAR *path ) DECLSPEC_HIDDEN;
@@ -5268,9 +4838,8 @@ diff -urN wine-1.9.1/dlls/ntdll/ntdll_misc.h wine-1.9.1-d3d9/dlls/ntdll/ntdll_mi
  
  struct debug_info
  {
-diff -urN wine-1.9.1/dlls/winex11.drv/init.c wine-1.9.1-d3d9/dlls/winex11.drv/init.c
---- wine-1.9.1/dlls/winex11.drv/init.c 2016-01-09 04:30:39.000000000 -0500
-+++ wine-1.9.1-d3d9/dlls/winex11.drv/init.c    2016-01-18 06:22:25.050627618 -0500
+--- wine-1.9.2/dlls/winex11.drv/init.c 2016-01-22 09:28:32.000000000 -0500
++++ wine-nine/dlls/winex11.drv/init.c  2016-02-09 10:49:32.494614138 -0500
 @@ -365,6 +365,7 @@
                  {
                      struct x11drv_escape_get_drawable *data = out_data;
@@ -5279,9 +4848,8 @@ diff -urN wine-1.9.1/dlls/winex11.drv/init.c wine-1.9.1-d3d9/dlls/winex11.drv/in
                      return TRUE;
                  }
                  break;
-diff -urN wine-1.9.1/dlls/winex11.drv/x11drv.h wine-1.9.1-d3d9/dlls/winex11.drv/x11drv.h
---- wine-1.9.1/dlls/winex11.drv/x11drv.h       2016-01-09 04:30:39.000000000 -0500
-+++ wine-1.9.1-d3d9/dlls/winex11.drv/x11drv.h  2016-01-18 06:22:25.051627618 -0500
+--- wine-1.9.2/dlls/winex11.drv/x11drv.h       2016-01-22 09:28:32.000000000 -0500
++++ wine-nine/dlls/winex11.drv/x11drv.h        2016-02-09 10:49:32.498614138 -0500
 @@ -292,6 +292,7 @@
      Drawable                 drawable;     /* X drawable */
      Drawable                 gl_drawable;  /* GL drawable */
@@ -5290,9 +4858,8 @@ diff -urN wine-1.9.1/dlls/winex11.drv/x11drv.h wine-1.9.1-d3d9/dlls/winex11.drv/
  };
  
  struct x11drv_escape_flush_gl_drawable
-diff -urN wine-1.9.1/include/config.h.in wine-1.9.1-d3d9/include/config.h.in
---- wine-1.9.1/include/config.h.in     2016-01-09 04:30:39.000000000 -0500
-+++ wine-1.9.1-d3d9/include/config.h.in        2016-01-18 06:22:34.848627418 -0500
+--- wine-1.9.2/include/config.h.in     2016-01-22 09:28:32.000000000 -0500
++++ wine-nine/include/config.h.in      2016-02-09 10:49:32.552614142 -0500
 @@ -4,6 +4,12 @@
  #define __WINE_CONFIG_H
  #ifndef WINE_CROSSTEST
@@ -5306,7 +4873,7 @@ diff -urN wine-1.9.1/include/config.h.in wine-1.9.1-d3d9/include/config.h.in
  /* Define to a function attribute for Microsoft hotpatch assembly prefix. */
  #undef DECLSPEC_HOTPATCH
  
-@@ -1332,6 +1338,9 @@
+@@ -1335,6 +1341,9 @@
  /* Define to the version of this package. */
  #undef PACKAGE_VERSION
  
@@ -5316,7 +4883,7 @@ diff -urN wine-1.9.1/include/config.h.in wine-1.9.1-d3d9/include/config.h.in
  /* Define to the soname of the libcapi20 library. */
  #undef SONAME_LIBCAPI20
  
-@@ -1344,6 +1353,9 @@
+@@ -1347,6 +1356,9 @@
  /* Define to the soname of the libdbus-1 library. */
  #undef SONAME_LIBDBUS_1
  
@@ -5326,9 +4893,8 @@ diff -urN wine-1.9.1/include/config.h.in wine-1.9.1-d3d9/include/config.h.in
  /* Define to the soname of the libfontconfig library. */
  #undef SONAME_LIBFONTCONFIG
  
-diff -urN wine-1.9.1/programs/winecfg/main.c wine-1.9.1-d3d9/programs/winecfg/main.c
---- wine-1.9.1/programs/winecfg/main.c 2016-01-09 04:30:39.000000000 -0500
-+++ wine-1.9.1-d3d9/programs/winecfg/main.c    2016-01-18 06:22:25.051627618 -0500
+--- wine-1.9.2/programs/winecfg/main.c 2016-01-22 09:28:32.000000000 -0500
++++ wine-nine/programs/winecfg/main.c  2016-02-09 10:49:32.763614157 -0500
 @@ -58,7 +58,7 @@
      return 0;
  }
@@ -5355,9 +4921,8 @@ diff -urN wine-1.9.1/programs/winecfg/main.c wine-1.9.1-d3d9/programs/winecfg/ma
      /*
       * Fill out the (General) PROPSHEETPAGE data structure 
       * for the property sheet
-diff -urN wine-1.9.1/programs/winecfg/Makefile.in wine-1.9.1-d3d9/programs/winecfg/Makefile.in
---- wine-1.9.1/programs/winecfg/Makefile.in    2016-01-09 04:30:39.000000000 -0500
-+++ wine-1.9.1-d3d9/programs/winecfg/Makefile.in       2016-01-18 06:22:25.051627618 -0500
+--- wine-1.9.2/programs/winecfg/Makefile.in    2016-01-22 09:28:32.000000000 -0500
++++ wine-nine/programs/winecfg/Makefile.in     2016-02-09 10:49:32.760614157 -0500
 @@ -11,6 +11,7 @@
        driveui.c \
        libraries.c \
@@ -5366,9 +4931,8 @@ diff -urN wine-1.9.1/programs/winecfg/Makefile.in wine-1.9.1-d3d9/programs/winec
        theme.c \
        winecfg.c \
        x11drvdlg.c
-diff -urN wine-1.9.1/programs/winecfg/resource.h wine-1.9.1-d3d9/programs/winecfg/resource.h
---- wine-1.9.1/programs/winecfg/resource.h     2016-01-09 04:30:39.000000000 -0500
-+++ wine-1.9.1-d3d9/programs/winecfg/resource.h        2016-01-18 06:22:25.052627618 -0500
+--- wine-1.9.2/programs/winecfg/resource.h     2016-01-22 09:28:32.000000000 -0500
++++ wine-nine/programs/winecfg/resource.h      2016-02-09 10:49:32.763614157 -0500
 @@ -45,6 +45,7 @@
  #define IDS_SHELL_FOLDER                16
  #define IDS_LINKS_TO                    17
@@ -5392,9 +4956,8 @@ diff -urN wine-1.9.1/programs/winecfg/resource.h wine-1.9.1-d3d9/programs/winecf
 +
 +/* Staging tab */
 +#define IDC_ENABLE_NATIVE_D3D9       9001
-diff -urN wine-1.9.1/programs/winecfg/staging.c wine-1.9.1-d3d9/programs/winecfg/staging.c
---- wine-1.9.1/programs/winecfg/staging.c      1969-12-31 19:00:00.000000000 -0500
-+++ wine-1.9.1-d3d9/programs/winecfg/staging.c 2016-01-18 06:22:25.052627618 -0500
+--- wine-1.9.2/programs/winecfg/staging.c      1969-12-31 19:00:00.000000000 -0500
++++ wine-nine/programs/winecfg/staging.c       2016-02-09 10:49:32.763614157 -0500
 @@ -0,0 +1,93 @@
 +/*
 + * WineCfg Staging panel
@@ -5489,9 +5052,8 @@ diff -urN wine-1.9.1/programs/winecfg/staging.c wine-1.9.1-d3d9/programs/winecfg
 +    }
 +    return FALSE;
 +}
-diff -urN wine-1.9.1/programs/winecfg/winecfg.h wine-1.9.1-d3d9/programs/winecfg/winecfg.h
---- wine-1.9.1/programs/winecfg/winecfg.h      2016-01-09 04:30:39.000000000 -0500
-+++ wine-1.9.1-d3d9/programs/winecfg/winecfg.h 2016-01-18 06:22:25.052627618 -0500
+--- wine-1.9.2/programs/winecfg/winecfg.h      2016-01-22 09:28:32.000000000 -0500
++++ wine-nine/programs/winecfg/winecfg.h       2016-02-09 10:49:32.764614157 -0500
 @@ -87,6 +87,7 @@
  INT_PTR CALLBACK LibrariesDlgProc (HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
  INT_PTR CALLBACK AudioDlgProc (HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
@@ -5500,9 +5062,8 @@ diff -urN wine-1.9.1/programs/winecfg/winecfg.h wine-1.9.1-d3d9/programs/winecfg
  INT_PTR CALLBACK AboutDlgProc (HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
  
  /* Drive management  */
-diff -urN wine-1.9.1/programs/winecfg/winecfg.rc wine-1.9.1-d3d9/programs/winecfg/winecfg.rc
---- wine-1.9.1/programs/winecfg/winecfg.rc     2016-01-09 04:30:39.000000000 -0500
-+++ wine-1.9.1-d3d9/programs/winecfg/winecfg.rc        2016-01-18 06:22:34.957627416 -0500
+--- wine-1.9.2/programs/winecfg/winecfg.rc     2016-01-22 09:28:32.000000000 -0500
++++ wine-nine/programs/winecfg/winecfg.rc      2016-02-09 10:49:32.764614157 -0500
 @@ -39,6 +39,7 @@
      IDS_TAB_GRAPHICS        "Graphics"
      IDS_TAB_DESKTOP_INTEGRATION "Desktop Integration"