From 92e0ce58ed61a1c225ad7c74c552023136528fbf Mon Sep 17 00:00:00 2001 From: chaoskagami Date: Tue, 9 Feb 2016 11:47:43 -0500 Subject: [PATCH] Update wine patches --- README.md | 17 +- ...staging.patch => nine-staging-1.9.2.patch} | 575 ++--------------- ....1-nine.patch => nine-vanilla-1.9.2.patch} | 579 +++--------------- 3 files changed, 137 insertions(+), 1034 deletions(-) rename wine/{wine-1.9.1-nine_for_staging.patch => nine-staging-1.9.2.patch} (85%) rename wine/{wine-1.9.1-nine.patch => nine-vanilla-1.9.2.patch} (87%) diff --git a/README.md b/README.md index 132e2fc..2ab89cd 100644 --- 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. diff --git a/wine/wine-1.9.1-nine_for_staging.patch b/wine/nine-staging-1.9.2.patch similarity index 85% rename from wine/wine-1.9.1-nine_for_staging.patch rename to wine/nine-staging-1.9.2.patch index 55dca1b..0809379 100644 --- a/wine/wine-1.9.1-nine_for_staging.patch +++ b/wine/nine-staging-1.9.2.patch @@ -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 @@ -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 >K3 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 diff --git a/wine/wine-1.9.1-nine.patch b/wine/nine-vanilla-1.9.2.patch similarity index 87% rename from wine/wine-1.9.1-nine.patch rename to wine/nine-vanilla-1.9.2.patch index af23abf..9ebe9b4 100644 --- a/wine/wine-1.9.1-nine.patch +++ b/wine/nine-vanilla-1.9.2.patch @@ -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 @@ -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" -- 2.39.5