diff --git a/patches/mmsystem.dll16-Fix_Argument_Order/0001-mmsystem.dll16-Fix-argument-order-in-GlobalAlloc16-c.patch b/patches/mmsystem.dll16-Fix_Argument_Order/0001-mmsystem.dll16-Fix-argument-order-in-GlobalAlloc16-c.patch deleted file mode 100644 index 84bded88..00000000 --- a/patches/mmsystem.dll16-Fix_Argument_Order/0001-mmsystem.dll16-Fix-argument-order-in-GlobalAlloc16-c.patch +++ /dev/null @@ -1,25 +0,0 @@ -From f1183d4c50ba5fc854873bdc8a6c96ace56a2e00 Mon Sep 17 00:00:00 2001 -From: Sebastian Lackner -Date: Mon, 8 Feb 2016 03:24:47 +0100 -Subject: mmsystem.dll16: Fix argument order in GlobalAlloc16 call. - ---- - dlls/mmsystem.dll16/mmsystem.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/dlls/mmsystem.dll16/mmsystem.c b/dlls/mmsystem.dll16/mmsystem.c -index fdf1318..d90240d 100644 ---- a/dlls/mmsystem.dll16/mmsystem.c -+++ b/dlls/mmsystem.dll16/mmsystem.c -@@ -1943,7 +1943,7 @@ LRESULT WINAPI mmThreadCreate16(FARPROC16 fpThreadAddr, LPHANDLE16 lpHndl, DWORD - - TRACE("(%p, %p, %08x, %08x)!\n", fpThreadAddr, lpHndl, dwPmt, dwFlags); - -- hndl = GlobalAlloc16(sizeof(WINE_MMTHREAD), GMEM_SHARE|GMEM_ZEROINIT); -+ hndl = GlobalAlloc16(GMEM_SHARE|GMEM_ZEROINIT, sizeof(WINE_MMTHREAD)); - - if (hndl == 0) { - ret = 2; --- -2.7.0 - diff --git a/patches/msvideo-MCIWNDM_SETTIMEFORMATA/0001-msvideo.dll-Translate-16-bit-address-in-MCIWNDM_SETT.patch b/patches/msvideo-MCIWNDM_SETTIMEFORMATA/0001-msvideo.dll-Translate-16-bit-address-in-MCIWNDM_SETT.patch deleted file mode 100644 index d8dc6a40..00000000 --- a/patches/msvideo-MCIWNDM_SETTIMEFORMATA/0001-msvideo.dll-Translate-16-bit-address-in-MCIWNDM_SETT.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 3e131a30d2f1b69de3c378b54f82f03f45bba6bb Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Michael=20M=C3=BCller?= -Date: Sat, 6 Feb 2016 02:24:05 +0100 -Subject: msvideo.dll16: Translate 16 bit address in MCIWNDM_SETTIMEFORMATA - command. - ---- - dlls/msvideo.dll16/msvideo16.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/dlls/msvideo.dll16/msvideo16.c b/dlls/msvideo.dll16/msvideo16.c -index 1b715e4..f39b52d 100644 ---- a/dlls/msvideo.dll16/msvideo16.c -+++ b/dlls/msvideo.dll16/msvideo16.c -@@ -991,6 +991,10 @@ static LRESULT WINAPI MCIWndProc16(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lp - lparam = (ULONG_PTR)MapSL(lparam); - break; - -+ case MCIWNDM_SETTIMEFORMATA: -+ lparam = (ULONG_PTR)MapSL(lparam); -+ break; -+ - default: - break; - } --- -2.7.0 - diff --git a/patches/msvideo-MCIWNDM_SETTIMEFORMATA/definition b/patches/msvideo-MCIWNDM_SETTIMEFORMATA/definition deleted file mode 100644 index cd0541b5..00000000 --- a/patches/msvideo-MCIWNDM_SETTIMEFORMATA/definition +++ /dev/null @@ -1 +0,0 @@ -Fixes: Translate 16 bit address in MCIWNDM_SETTIMEFORMATA MCIWndProc16 command diff --git a/patches/ntdll-Activation_Context/0001-ntdll-Fix-return-value-for-missing-ACTIVATION_CONTEX.patch b/patches/ntdll-Activation_Context/0001-ntdll-Fix-return-value-for-missing-ACTIVATION_CONTEX.patch index f875b8c5..41cea190 100644 --- a/patches/ntdll-Activation_Context/0001-ntdll-Fix-return-value-for-missing-ACTIVATION_CONTEX.patch +++ b/patches/ntdll-Activation_Context/0001-ntdll-Fix-return-value-for-missing-ACTIVATION_CONTEX.patch @@ -1,16 +1,16 @@ -From 37837138f0124582ae9af34643710d619b5b48bc Mon Sep 17 00:00:00 2001 +From d9e16cb2bde3371d403da8dbbc2c7d63b9a29a27 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Mon, 16 Mar 2015 03:46:36 +0100 Subject: ntdll: Fix return value for missing ACTIVATION_CONTEXT_SECTION_ASSEMBLY_INFORMATION key. --- - dlls/kernel32/tests/actctx.c | 68 ++++++++++++++++---------------------------- - dlls/ntdll/actctx.c | 3 ++ - 2 files changed, 27 insertions(+), 44 deletions(-) + dlls/kernel32/tests/actctx.c | 36 ++++++++++++++++-------------------- + dlls/ntdll/actctx.c | 3 +++ + 2 files changed, 19 insertions(+), 20 deletions(-) diff --git a/dlls/kernel32/tests/actctx.c b/dlls/kernel32/tests/actctx.c -index 7512aed..6d5f2da 100644 +index af3dadf..b68c895 100644 --- a/dlls/kernel32/tests/actctx.c +++ b/dlls/kernel32/tests/actctx.c @@ -2067,7 +2067,7 @@ static HANDLE create_manifest(const char *filename, const char *data, int line) @@ -22,39 +22,23 @@ index 7512aed..6d5f2da 100644 { UNICODE_STRING string_to_findW; ACTCTX_SECTION_KEYED_DATA data; -@@ -2084,13 +2084,8 @@ static void kernel32_find(ULONG section, const char *string_to_find, BOOL should +@@ -2084,7 +2084,6 @@ static void kernel32_find(ULONG section, const char *string_to_find, BOOL should err = GetLastError(); ok_(__FILE__, line)(ret == should_find, "FindActCtxSectionStringA: expected ret = %u, got %u\n", should_find, ret); -- if (todo) -- todo_wine -- ok_(__FILE__, line)(err == (should_find ? ERROR_SUCCESS : ERROR_SXS_KEY_NOT_FOUND), -- "FindActCtxSectionStringA: unexpected error %u\n", err); -- else -- ok_(__FILE__, line)(err == (should_find ? ERROR_SUCCESS : ERROR_SXS_KEY_NOT_FOUND), -- "FindActCtxSectionStringA: unexpected error %u\n", err); -+ ok_(__FILE__, line)(err == (should_find ? ERROR_SUCCESS : ERROR_SXS_KEY_NOT_FOUND), -+ "FindActCtxSectionStringA: unexpected error %u\n", err); +- todo_wine_if(todo) + ok_(__FILE__, line)(err == (should_find ? ERROR_SUCCESS : ERROR_SXS_KEY_NOT_FOUND), + "FindActCtxSectionStringA: unexpected error %u\n", err); - memset(&data, 0xfe, sizeof(data)); - data.cbSize = sizeof(data); -@@ -2100,13 +2095,8 @@ static void kernel32_find(ULONG section, const char *string_to_find, BOOL should +@@ -2096,7 +2095,6 @@ static void kernel32_find(ULONG section, const char *string_to_find, BOOL should err = GetLastError(); ok_(__FILE__, line)(ret == should_find, "FindActCtxSectionStringW: expected ret = %u, got %u\n", should_find, ret); -- if (todo) -- todo_wine -- ok_(__FILE__, line)(err == (should_find ? ERROR_SUCCESS : ERROR_SXS_KEY_NOT_FOUND), -- "FindActCtxSectionStringW: unexpected error %u\n", err); -- else -- ok_(__FILE__, line)(err == (should_find ? ERROR_SUCCESS : ERROR_SXS_KEY_NOT_FOUND), -- "FindActCtxSectionStringW: unexpected error %u\n", err); -+ ok_(__FILE__, line)(err == (should_find ? ERROR_SUCCESS : ERROR_SXS_KEY_NOT_FOUND), -+ "FindActCtxSectionStringW: unexpected error %u\n", err); +- todo_wine_if(todo) + ok_(__FILE__, line)(err == (should_find ? ERROR_SUCCESS : ERROR_SXS_KEY_NOT_FOUND), + "FindActCtxSectionStringW: unexpected error %u\n", err); - SetLastError(0); - ret = pFindActCtxSectionStringA(0, NULL, section, string_to_find, NULL); -@@ -2127,7 +2117,7 @@ static void kernel32_find(ULONG section, const char *string_to_find, BOOL should +@@ -2119,7 +2117,7 @@ static void kernel32_find(ULONG section, const char *string_to_find, BOOL should pRtlFreeUnicodeString(&string_to_findW); } @@ -63,34 +47,20 @@ index 7512aed..6d5f2da 100644 { UNICODE_STRING string_to_findW; ACTCTX_SECTION_KEYED_DATA data; -@@ -2139,22 +2129,12 @@ static void ntdll_find(ULONG section, const char *string_to_find, BOOL should_fi +@@ -2131,12 +2129,10 @@ static void ntdll_find(ULONG section, const char *string_to_find, BOOL should_fi data.cbSize = sizeof(data); ret = pRtlFindActivationContextSectionString(0, NULL, section, &string_to_findW, &data); -- if (todo) -- todo_wine -- ok_(__FILE__, line)(ret == (should_find ? STATUS_SUCCESS : STATUS_SXS_KEY_NOT_FOUND), -- "RtlFindActivationContextSectionString: unexpected status 0x%x\n", ret); -- else -- ok_(__FILE__, line)(ret == (should_find ? STATUS_SUCCESS : STATUS_SXS_KEY_NOT_FOUND), -- "RtlFindActivationContextSectionString: unexpected status 0x%x\n", ret); -+ ok_(__FILE__, line)(ret == (should_find ? STATUS_SUCCESS : STATUS_SXS_KEY_NOT_FOUND), -+ "RtlFindActivationContextSectionString: unexpected status 0x%x\n", ret); +- todo_wine_if(todo) + ok_(__FILE__, line)(ret == (should_find ? STATUS_SUCCESS : STATUS_SXS_KEY_NOT_FOUND), + "RtlFindActivationContextSectionString: unexpected status 0x%x\n", ret); ret = pRtlFindActivationContextSectionString(0, NULL, section, &string_to_findW, NULL); -- if (todo) -- todo_wine -- ok_(__FILE__, line)(ret == (should_find ? STATUS_SUCCESS : STATUS_SXS_KEY_NOT_FOUND), -- "RtlFindActivationContextSectionString: unexpected status 0x%x\n", ret); -- else -- ok_(__FILE__, line)(ret == (should_find ? STATUS_SUCCESS : STATUS_SXS_KEY_NOT_FOUND), -- "RtlFindActivationContextSectionString: unexpected status 0x%x\n", ret); -+ ok_(__FILE__, line)(ret == (should_find ? STATUS_SUCCESS : STATUS_SXS_KEY_NOT_FOUND), -+ "RtlFindActivationContextSectionString: unexpected status 0x%x\n", ret); +- todo_wine_if(todo) + ok_(__FILE__, line)(ret == (should_find ? STATUS_SUCCESS : STATUS_SXS_KEY_NOT_FOUND), + "RtlFindActivationContextSectionString: unexpected status 0x%x\n", ret); - pRtlFreeUnicodeString(&string_to_findW); - } -@@ -2170,22 +2150,22 @@ static void test_findsectionstring(void) +@@ -2154,22 +2150,22 @@ static void test_findsectionstring(void) ok(ret, "ActivateActCtx failed: %u\n", GetLastError()); /* first we show the parameter validation from kernel32 */ @@ -128,10 +98,10 @@ index 7512aed..6d5f2da 100644 ret = pDeactivateActCtx(0, cookie); ok(ret, "DeactivateActCtx failed: %u\n", GetLastError()); diff --git a/dlls/ntdll/actctx.c b/dlls/ntdll/actctx.c -index 638daac..08f5b04 100644 +index 4aa1a72..8957fad 100644 --- a/dlls/ntdll/actctx.c +++ b/dlls/ntdll/actctx.c -@@ -4432,6 +4432,9 @@ static NTSTATUS find_string(ACTIVATION_CONTEXT* actctx, ULONG section_kind, +@@ -4431,6 +4431,9 @@ static NTSTATUS find_string(ACTIVATION_CONTEXT* actctx, ULONG section_kind, switch (section_kind) { @@ -142,5 +112,5 @@ index 638daac..08f5b04 100644 status = find_dll_redirection(actctx, section_name, data); break; -- -2.3.2 +2.7.0 diff --git a/patches/ntdll-Exception/0002-ntdll-OutputDebugString-should-throw-the-exception-a.patch b/patches/ntdll-Exception/0002-ntdll-OutputDebugString-should-throw-the-exception-a.patch index 5a28665d..49f6d8fa 100644 --- a/patches/ntdll-Exception/0002-ntdll-OutputDebugString-should-throw-the-exception-a.patch +++ b/patches/ntdll-Exception/0002-ntdll-OutputDebugString-should-throw-the-exception-a.patch @@ -1,4 +1,4 @@ -From 090cf9addeea643d624b4b7c3a6b0fbc04c9c253 Mon Sep 17 00:00:00 2001 +From 297d030a4189ce937662004426e21990e4736d25 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Sun, 28 Sep 2014 23:39:51 +0200 Subject: ntdll: OutputDebugString should throw the exception a second time, if @@ -6,8 +6,8 @@ Subject: ntdll: OutputDebugString should throw the exception a second time, if --- dlls/kernel32/debugger.c | 17 +++++++++++++++++ - dlls/ntdll/tests/exception.c | 19 +++++++------------ - 2 files changed, 24 insertions(+), 12 deletions(-) + dlls/ntdll/tests/exception.c | 11 +++++------ + 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/dlls/kernel32/debugger.c b/dlls/kernel32/debugger.c index d4d66b2..981661b 100644 @@ -38,10 +38,10 @@ index d4d66b2..981661b 100644 if (!mutex_inited) { diff --git a/dlls/ntdll/tests/exception.c b/dlls/ntdll/tests/exception.c -index 98d73f4..f9dd95d 100644 +index fc68ea5..693859d 100644 --- a/dlls/ntdll/tests/exception.c +++ b/dlls/ntdll/tests/exception.c -@@ -1829,7 +1829,7 @@ static LONG CALLBACK outputdebugstring_vectored_handler(EXCEPTION_POINTERS *Exce +@@ -1796,7 +1796,7 @@ static LONG CALLBACK outputdebugstring_vectored_handler(EXCEPTION_POINTERS *Exce return EXCEPTION_CONTINUE_SEARCH; } @@ -50,23 +50,15 @@ index 98d73f4..f9dd95d 100644 { PVOID vectored_handler; -@@ -1844,13 +1844,8 @@ static void test_outputdebugstring(DWORD numexc, BOOL todo) - +@@ -1812,7 +1812,6 @@ static void test_outputdebugstring(DWORD numexc, BOOL todo) outputdebugstring_exceptions = 0; OutputDebugStringA("Hello World"); -- if (todo) -- todo_wine -- ok(outputdebugstring_exceptions == numexc, "OutputDebugStringA generated %d exceptions, expected %d\n", -- outputdebugstring_exceptions, numexc); -- else -- ok(outputdebugstring_exceptions == numexc, "OutputDebugStringA generated %d exceptions, expected %d\n", -- outputdebugstring_exceptions, numexc); -+ ok(outputdebugstring_exceptions == numexc, "OutputDebugStringA generated %d exceptions, expected %d\n", -+ outputdebugstring_exceptions, numexc); - pRtlRemoveVectoredExceptionHandler(vectored_handler); - } -@@ -2064,9 +2059,9 @@ START_TEST(exception) +- todo_wine_if(todo) + ok(outputdebugstring_exceptions == numexc, "OutputDebugStringA generated %d exceptions, expected %d\n", + outputdebugstring_exceptions, numexc); + +@@ -2028,9 +2027,9 @@ START_TEST(exception) run_rtlraiseexception_test(EXCEPTION_BREAKPOINT); run_rtlraiseexception_test(EXCEPTION_INVALID_HANDLE); test_stage = 3; @@ -78,7 +70,7 @@ index 98d73f4..f9dd95d 100644 test_stage = 5; test_ripevent(0); test_stage = 6; -@@ -2087,7 +2082,7 @@ START_TEST(exception) +@@ -2051,7 +2050,7 @@ START_TEST(exception) test_exceptions(); test_rtlraiseexception(); test_debug_registers(); @@ -87,7 +79,7 @@ index 98d73f4..f9dd95d 100644 test_ripevent(1); test_closehandle(0); test_vectored_continue_handler(); -@@ -2108,7 +2103,7 @@ START_TEST(exception) +@@ -2072,7 +2071,7 @@ START_TEST(exception) "RtlLookupFunctionEntry" ); test_debug_registers(); @@ -97,5 +89,5 @@ index 98d73f4..f9dd95d 100644 test_closehandle(0); test_vectored_continue_handler(); -- -2.6.4 +2.7.0 diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 3cd114cc..66d3aae7 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -51,7 +51,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "11be16ca799ac642fb636633392f4ec80e765da7" + echo "9c98d632779862aae15e9e3a25f59065fae03386" } # Show version information @@ -182,7 +182,6 @@ patch_enable_all () enable_makedep_PARENTSPEC="$1" enable_mfplat_MFTRegister="$1" enable_mmdevapi_AEV_Stubs="$1" - enable_mmsystem_dll16_Fix_Argument_Order="$1" enable_mountmgr_DosDevices="$1" enable_mpr_WNetGetUniversalNameW="$1" enable_mscoree_CorValidateImage="$1" @@ -192,7 +191,6 @@ patch_enable_all () enable_msvcr120_strof="$1" enable_msvcrt_Math_Precision="$1" enable_msvcrt_StdHandle_RefCount="$1" - enable_msvideo_MCIWNDM_SETTIMEFORMATA="$1" enable_ntdll_APC_Performance="$1" enable_ntdll_APC_Start_Process="$1" enable_ntdll_Activation_Context="$1" @@ -323,7 +321,6 @@ patch_enable_all () enable_user32_WndProc="$1" enable_uxtheme_CloseThemeData="$1" enable_uxtheme_GTK_Theming="$1" - enable_vcomp_Atomic_I8="$1" enable_version_VerQueryValue="$1" enable_vmm_vxd_PageReserve="$1" enable_wbemdisp_ISWbemSecurity="$1" @@ -338,7 +335,6 @@ patch_enable_all () enable_winecfg_Unmounted_Devices="$1" enable_wined3d_Accounting="$1" enable_wined3d_CSMT_Helper="$1" - enable_wined3d_CSMT_Main="$1" enable_wined3d_DXTn="$1" enable_wined3d_Geforce_425M="$1" enable_wined3d_MESA_GPU_Info="$1" @@ -696,9 +692,6 @@ patch_enable () mmdevapi-AEV_Stubs) enable_mmdevapi_AEV_Stubs="$2" ;; - mmsystem.dll16-Fix_Argument_Order) - enable_mmsystem_dll16_Fix_Argument_Order="$2" - ;; mountmgr-DosDevices) enable_mountmgr_DosDevices="$2" ;; @@ -726,9 +719,6 @@ patch_enable () msvcrt-StdHandle_RefCount) enable_msvcrt_StdHandle_RefCount="$2" ;; - msvideo-MCIWNDM_SETTIMEFORMATA) - enable_msvideo_MCIWNDM_SETTIMEFORMATA="$2" - ;; ntdll-APC_Performance) enable_ntdll_APC_Performance="$2" ;; @@ -1119,9 +1109,6 @@ patch_enable () uxtheme-GTK_Theming) enable_uxtheme_GTK_Theming="$2" ;; - vcomp-Atomic_I8) - enable_vcomp_Atomic_I8="$2" - ;; version-VerQueryValue) enable_version_VerQueryValue="$2" ;; @@ -1164,9 +1151,6 @@ patch_enable () wined3d-CSMT_Helper) enable_wined3d_CSMT_Helper="$2" ;; - wined3d-CSMT_Main) - enable_wined3d_CSMT_Main="$2" - ;; wined3d-DXTn) enable_wined3d_DXTn="$2" ;; @@ -1911,13 +1895,6 @@ if test "$enable_wpcap_Dynamic_Linking" -eq 1; then enable_wpcap_Several_Fixes=1 fi -if test "$enable_wined3d_CSMT_Main" -eq 1; then - if test "$enable_wined3d_CSMT_Helper" -gt 1; then - abort "Patchset wined3d-CSMT_Helper disabled, but wined3d-CSMT_Main depends on that." - fi - enable_wined3d_CSMT_Helper=1 -fi - if test "$enable_wined3d_MESA_GPU_Info" -eq 1; then if test "$enable_wined3d_Accounting" -gt 1; then abort "Patchset wined3d-Accounting disabled, but wined3d-MESA_GPU_Info depends on that." @@ -4301,18 +4278,6 @@ if test "$enable_mmdevapi_AEV_Stubs" -eq 1; then ) >> "$patchlist" fi -# Patchset mmsystem.dll16-Fix_Argument_Order -# | -# | Modified files: -# | * dlls/mmsystem.dll16/mmsystem.c -# | -if test "$enable_mmsystem_dll16_Fix_Argument_Order" -eq 1; then - patch_apply mmsystem.dll16-Fix_Argument_Order/0001-mmsystem.dll16-Fix-argument-order-in-GlobalAlloc16-c.patch - ( - echo '+ { "Sebastian Lackner", "mmsystem.dll16: Fix argument order in GlobalAlloc16 call.", 1 },'; - ) >> "$patchlist" -fi - # Patchset mountmgr-DosDevices # | # | This patchset fixes the following Wine bugs: @@ -4468,18 +4433,6 @@ if test "$enable_msvcrt_StdHandle_RefCount" -eq 1; then ) >> "$patchlist" fi -# Patchset msvideo-MCIWNDM_SETTIMEFORMATA -# | -# | Modified files: -# | * dlls/msvideo.dll16/msvideo16.c -# | -if test "$enable_msvideo_MCIWNDM_SETTIMEFORMATA" -eq 1; then - patch_apply msvideo-MCIWNDM_SETTIMEFORMATA/0001-msvideo.dll-Translate-16-bit-address-in-MCIWNDM_SETT.patch - ( - echo '+ { "Michael Müller", "msvideo.dll16: Translate 16 bit address in MCIWNDM_SETTIMEFORMATA command.", 1 },'; - ) >> "$patchlist" -fi - # Patchset ntdll-APC_Performance # | # | Modified files: @@ -6564,23 +6517,6 @@ if test "$enable_uxtheme_GTK_Theming" -eq 1; then ) >> "$patchlist" fi -# Patchset vcomp-Atomic_I8 -# | -# | Modified files: -# | * dlls/vcomp/main.c, dlls/vcomp/tests/vcomp.c, dlls/vcomp/vcomp.spec, dlls/vcomp100/vcomp100.spec, -# | dlls/vcomp110/vcomp110.spec, dlls/vcomp120/vcomp120.spec, dlls/vcomp90/vcomp90.spec -# | -if test "$enable_vcomp_Atomic_I8" -eq 1; then - patch_apply vcomp-Atomic_I8/0001-vcomp-tests-Reenable-architecture-dependent-tests.patch - patch_apply vcomp-Atomic_I8/0002-vcomp-Implement-64-bit-atomic-instructions.patch - patch_apply vcomp-Atomic_I8/0003-vcomp-tests-Add-tests-for-64-bit-atomic-instructions.patch - ( - echo '+ { "Sebastian Lackner", "vcomp/tests: Reenable architecture dependent tests.", 1 },'; - echo '+ { "Sebastian Lackner", "vcomp: Implement 64-bit atomic instructions.", 1 },'; - echo '+ { "Sebastian Lackner", "vcomp/tests: Add tests for 64-bit atomic instructions.", 1 },'; - ) >> "$patchlist" -fi - # Patchset version-VerQueryValue # | # | Modified files: @@ -6854,369 +6790,6 @@ if test "$enable_wined3d_wined3d_swapchain_present" -eq 1; then ) >> "$patchlist" fi -# Patchset wined3d-CSMT_Main -# | -# | This patchset has the following (direct or indirect) dependencies: -# | * makedep-PARENTSPEC, ntdll-DllOverrides_WOW64, ntdll-Loader_Machine_Type, ntdll-DllRedirects, wined3d-DXTn, wined3d- -# | resource_map, wined3d-CSMT_Helper -# | -# | This patchset fixes the following Wine bugs: -# | * [#11674] Support for CSMT (command stream) to increase graphic performance -# | -# | Modified files: -# | * dlls/d3d8/tests/visual.c, dlls/d3d9/tests/visual.c, dlls/wined3d/arb_program_shader.c, dlls/wined3d/buffer.c, -# | dlls/wined3d/context.c, dlls/wined3d/cs.c, dlls/wined3d/device.c, dlls/wined3d/directx.c, dlls/wined3d/drawprim.c, -# | dlls/wined3d/glsl_shader.c, dlls/wined3d/query.c, dlls/wined3d/resource.c, dlls/wined3d/sampler.c, -# | dlls/wined3d/shader.c, dlls/wined3d/state.c, dlls/wined3d/stateblock.c, dlls/wined3d/surface.c, -# | dlls/wined3d/swapchain.c, dlls/wined3d/texture.c, dlls/wined3d/utils.c, dlls/wined3d/vertexdeclaration.c, -# | dlls/wined3d/view.c, dlls/wined3d/volume.c, dlls/wined3d/wined3d_main.c, dlls/wined3d/wined3d_private.h, -# | dlls/winex11.drv/opengl.c -# | -if test "$enable_wined3d_CSMT_Main" -eq 1; then - patch_apply wined3d-CSMT_Main/0001-Revert-wined3d-Store-custom-pitches-in-the-texture-i.patch - patch_apply wined3d-CSMT_Main/0002-Revert-wined3d-Store-the-user_memory-pointer-in-the-.patch - patch_apply wined3d-CSMT_Main/0003-wined3d-Merge-get_pitch-functions.patch - patch_apply wined3d-CSMT_Main/0004-wined3d-Pass-a-context-to-surface_load_location.patch - patch_apply wined3d-CSMT_Main/0005-wined3d-Make-surface_load_location-return-nothing.patch - patch_apply wined3d-CSMT_Main/0006-wined3d-Store-volume-locations-in-the-resource.patch - patch_apply wined3d-CSMT_Main/0007-wined3d-Move-validate_location-to-resource.c.patch - patch_apply wined3d-CSMT_Main/0008-wined3d-Move-surface-locations-into-the-resource.patch - patch_apply wined3d-CSMT_Main/0009-wined3d-Remove-surface_validate_location.patch - patch_apply wined3d-CSMT_Main/0010-wined3d-Move-invalidate_location-to-resource.c.patch - patch_apply wined3d-CSMT_Main/0011-wined3d-Invalidate-containers-via-callback.patch - patch_apply wined3d-CSMT_Main/0012-wined3d-Remove-surface_invalidate_location.patch - patch_apply wined3d-CSMT_Main/0013-wined3d-Move-bitmap_data-and-user_memory-into-the-re.patch - patch_apply wined3d-CSMT_Main/0014-wined3d-Move-load_location-into-the-resource.patch - patch_apply wined3d-CSMT_Main/0015-wined3d-Replace-surface_load_location-with-resource_.patch - patch_apply wined3d-CSMT_Main/0016-wined3d-Introduce-helper-functions-for-mapping-volum.patch - patch_apply wined3d-CSMT_Main/0017-wined3d-Move-volume-PBO-infrastructure-into-the-reso.patch - patch_apply wined3d-CSMT_Main/0018-wined3d-Remove-surface-pbo.patch - patch_apply wined3d-CSMT_Main/0019-wined3d-Use-resource-buffer-mapping-facilities-in-su.patch - patch_apply wined3d-CSMT_Main/0020-wined3d-Move-buffer-creation-into-the-resource.patch - patch_apply wined3d-CSMT_Main/0021-wined3d-Handle-WINED3D_LOCATION_DISCARDED-in-surface.patch - patch_apply wined3d-CSMT_Main/0022-wined3d-Handle-LOCATION_DISCARDED-in-surface_load_dr.patch - patch_apply wined3d-CSMT_Main/0023-wined3d-Handle-WINED3D_LOCATION_DISCARDED-for-sysmem.patch - patch_apply wined3d-CSMT_Main/0024-wined3d-Discard-implicit-surfaces-on-unload.patch - patch_apply wined3d-CSMT_Main/0025-wined3d-Don-t-try-to-flip-sysmem-copies-in-swapchain.patch - patch_apply wined3d-CSMT_Main/0026-wined3d-Discard-the-backbuffer-in-discard-presents.patch - patch_apply wined3d-CSMT_Main/0027-wined3d-Introduce-a-function-to-retrieve-resource-me.patch - patch_apply wined3d-CSMT_Main/0028-wined3d-Make-surface_ops-unmap-specific-for-front-bu.patch - patch_apply wined3d-CSMT_Main/0029-wined3d-Move-check_block_align-to-resource.c.patch - patch_apply wined3d-CSMT_Main/0030-wined3d-Replace-surface-alloc-functions-with-resourc.patch - patch_apply wined3d-CSMT_Main/0031-wined3d-Don-t-delete-the-buffer-in-surface_cleanup.patch - patch_apply wined3d-CSMT_Main/0032-wined3d-Use-resource-facilities-to-destroy-PBOs.patch - patch_apply wined3d-CSMT_Main/0033-wined3d-Move-simple-location-copying-to-the-resource.patch - patch_apply wined3d-CSMT_Main/0034-wined3d-Move-most-of-volume_map-to-resource.c.patch - patch_apply wined3d-CSMT_Main/0035-wined3d-Use-resource_map-for-surface_map.patch - patch_apply wined3d-CSMT_Main/0036-wined3d-Don-t-call-the-public-map-function-in-surfac.patch - patch_apply wined3d-CSMT_Main/0037-wined3d-Don-t-call-the-public-map-function-in-surfac.patch - patch_apply wined3d-CSMT_Main/0038-wined3d-Move-the-framebuffer-into-wined3d_state.patch - patch_apply wined3d-CSMT_Main/0039-wined3d-Get-rid-of-state-access-in-shader_generate_g.patch - patch_apply wined3d-CSMT_Main/0040-wined3d-Preload-buffers-if-streamsrc-is-not-dirty.patch - patch_apply wined3d-CSMT_Main/0041-wined3d-Hackily-introduce-a-multithreaded-command-st.patch - patch_apply wined3d-CSMT_Main/0042-wined3d-Wait-for-resource-updates-to-finish-when-usi.patch - patch_apply wined3d-CSMT_Main/0043-wined3d-Don-t-store-pointers-in-struct-wined3d_cs_pr.patch - patch_apply wined3d-CSMT_Main/0044-wined3d-Don-t-put-rectangle-pointers-into-wined3d_cs.patch - patch_apply wined3d-CSMT_Main/0045-wined3d-Store-the-color-in-clear-ops-instead-of-a-po.patch - patch_apply wined3d-CSMT_Main/0046-wined3d-Pass-the-state-to-draw_primitive.patch - patch_apply wined3d-CSMT_Main/0047-wined3d-Wait-for-the-cs-before-destroying-objects.patch - patch_apply wined3d-CSMT_Main/0048-wined3d-Give-the-cs-its-own-state.patch - patch_apply wined3d-CSMT_Main/0049-wined3d-Send-float-constant-updates-through-the-comm.patch - patch_apply wined3d-CSMT_Main/0050-wined3d-Request-a-glFinish-before-modifying-resource.patch - patch_apply wined3d-CSMT_Main/0051-wined3d-Finish-the-cs-before-changing-the-texture-lo.patch - patch_apply wined3d-CSMT_Main/0052-wined3d-Don-t-call-glFinish-after-clears.patch - patch_apply wined3d-CSMT_Main/0053-wined3d-Don-t-call-glFinish-after-draws.patch - patch_apply wined3d-CSMT_Main/0054-wined3d-Shadow-device-offscreenBuffer-in-the-context.patch - patch_apply wined3d-CSMT_Main/0055-wined3d-Don-t-access-the-stateblock-in-find_draw_buf.patch - patch_apply wined3d-CSMT_Main/0056-wined3d-Pass-the-depth-stencil-to-swapchain-present.patch - patch_apply wined3d-CSMT_Main/0057-wined3d-Don-t-store-viewport-pointers-in-the-command.patch - patch_apply wined3d-CSMT_Main/0058-wined3d-Keep-track-of-the-onscreen-depth-stencil-in-.patch - patch_apply wined3d-CSMT_Main/0059-wined3d-Send-base-vertex-index-updates-through-the-c.patch - patch_apply wined3d-CSMT_Main/0060-wined3d-Send-primitive-type-updates-through-the-comm.patch - patch_apply wined3d-CSMT_Main/0061-wined3d-Send-bool-constant-updates-through-the-comma.patch - patch_apply wined3d-CSMT_Main/0062-wined3d-Send-int-constant-updates-through-the-comman.patch - patch_apply wined3d-CSMT_Main/0063-wined3d-Send-light-updates-through-the-command-strea.patch - patch_apply wined3d-CSMT_Main/0064-wined3d-Prevent-the-command-stream-from-running-ahea.patch - patch_apply wined3d-CSMT_Main/0065-wined3d-Wait-for-the-cs-to-finish-before-destroying-.patch - patch_apply wined3d-CSMT_Main/0066-wined3d-Run-the-cs-asynchronously.patch - patch_apply wined3d-CSMT_Main/0067-wined3d-Send-blits-through-the-command-stream.patch - patch_apply wined3d-CSMT_Main/0068-wined3d-Get-rid-of-WINED3D_BUFFER_FLUSH.patch - patch_apply wined3d-CSMT_Main/0069-wined3d-Don-t-force-strict-draw-ordering-for-multith.patch - patch_apply wined3d-CSMT_Main/0070-wined3d-Send-render-target-view-clears-through-the-c.patch - patch_apply wined3d-CSMT_Main/0071-wined3d-Wait-for-the-CS-in-GetDC.patch - patch_apply wined3d-CSMT_Main/0072-wined3d-send-resource-maps-through-the-command-strea.patch - patch_apply wined3d-CSMT_Main/0073-wined3d-Get-rid-of-the-end_scene-flush-and-finish.patch - patch_apply wined3d-CSMT_Main/0074-wined3d-Replace-the-linked-lists-with-a-ringbuffer.patch - patch_apply wined3d-CSMT_Main/0075-wined3d-Don-t-preload-buffers-on-unmap.patch - patch_apply wined3d-CSMT_Main/0076-wined3d-Don-t-call-glFinish-before-swapping.patch - patch_apply wined3d-CSMT_Main/0077-wined3d-wined3d_-_query_issue-never-fails.patch - patch_apply wined3d-CSMT_Main/0078-wined3d-Add-query-support-to-the-command-stream.patch - patch_apply wined3d-CSMT_Main/0079-wined3d-Check-our-CS-state-to-find-out-if-a-query-is.patch - patch_apply wined3d-CSMT_Main/0080-wined3d-Poll-queries-automatically-in-the-CS.patch - patch_apply wined3d-CSMT_Main/0081-wined3d-Introduce-a-separate-queue-for-priority-comm.patch - patch_apply wined3d-CSMT_Main/0082-wined3d-Destroy-queries-through-the-CS.patch - patch_apply wined3d-CSMT_Main/0083-wined3d-Separate-main-and-worker-thread-query-state.patch - patch_apply wined3d-CSMT_Main/0084-wined3d-Don-t-poll-queries-that-failed-to-start.patch - patch_apply wined3d-CSMT_Main/0085-wined3d-Remove-restated-queries-from-the-poll-list.patch - patch_apply wined3d-CSMT_Main/0086-wined3d-Don-t-reset-the-query-state-if-it-doesn-t-ha.patch - patch_apply wined3d-CSMT_Main/0087-wined3d-Put-this-into-the-query-poll-patch.patch - patch_apply wined3d-CSMT_Main/0088-wined3d-Send-texture-preloads-through-the-CS.patch - patch_apply wined3d-CSMT_Main/0089-wined3d-Send-update_texture-calls-through-the-CS.patch - patch_apply wined3d-CSMT_Main/0090-wined3d-Get-rid-of-the-surface_upload_data-glFinish.patch - patch_apply wined3d-CSMT_Main/0091-wined3d-Don-t-lock-the-src-volume-in-device_update_v.patch - patch_apply wined3d-CSMT_Main/0092-wined3d-Handle-evit_managed_resources-through-the-CS.patch - patch_apply wined3d-CSMT_Main/0093-wined3d-Introduce-resource-fencing.patch - patch_apply wined3d-CSMT_Main/0094-wined3d-Fence-update_texture-and-update_surface-call.patch - patch_apply wined3d-CSMT_Main/0095-wined3d-Dirtify-resources-on-unmap.patch - patch_apply wined3d-CSMT_Main/0096-wined3d-Fence-texture-reads-in-draws.patch - patch_apply wined3d-CSMT_Main/0097-wined3d-Fence-render-targets-and-depth-stencils.patch - patch_apply wined3d-CSMT_Main/0098-wined3d-Fence-blit-operations.patch - patch_apply wined3d-CSMT_Main/0099-wined3d-Fence-color_fill-operations.patch - patch_apply wined3d-CSMT_Main/0100-wined3d-Fence-clear-calls.patch - patch_apply wined3d-CSMT_Main/0101-wined3d-Fence-present-calls.patch - patch_apply wined3d-CSMT_Main/0102-wined3d-Make-resource-maps-and-unmaps-a-priority-com.patch - patch_apply wined3d-CSMT_Main/0103-wined3d-Dirtify-changed-textures-through-the-command.patch - patch_apply wined3d-CSMT_Main/0104-wined3d-Wrap-GL-BOs-in-a-structure.patch - patch_apply wined3d-CSMT_Main/0105-wined3d-Separate-resource-map-and-draw-buffers.patch - patch_apply wined3d-CSMT_Main/0106-wined3d-Implement-DISCARD-resource-maps-with-buffers.patch - patch_apply wined3d-CSMT_Main/0107-wined3d-Implement-DISCARD-resource-maps-with-heap-me.patch - patch_apply wined3d-CSMT_Main/0108-wined3d-Unset-some-objects-in-state_init_default.patch - patch_apply wined3d-CSMT_Main/0109-wined3d-Don-t-request-the-frontbuffer-to-create-dumm.patch - patch_apply wined3d-CSMT_Main/0110-wined3d-Use-double-buffered-buffers-for-multithreade.patch - patch_apply wined3d-CSMT_Main/0111-wined3d-Don-t-synchronize-NOOVERWRITE-buffer-maps.patch - patch_apply wined3d-CSMT_Main/0112-wined3d-Separate-buffer-map-write-and-draw-read-memo.patch - patch_apply wined3d-CSMT_Main/0113-wined3d-Accelerate-DISCARD-buffer-maps.patch - patch_apply wined3d-CSMT_Main/0114-wined3d-Accelerate-READONLY-buffer-maps.patch - patch_apply wined3d-CSMT_Main/0115-wined3d-Access-the-buffer-dirty-areas-through-the-CS.patch - patch_apply wined3d-CSMT_Main/0116-wined3d-Ignore-buffer-resource.map_count-in-the-CS.patch - patch_apply wined3d-CSMT_Main/0117-wined3d-Send-buffer-preloads-through-the-CS.patch - patch_apply wined3d-CSMT_Main/0118-wined3d-Use-glBufferSubData-instead-of-glMapBufferRa.patch - patch_apply wined3d-CSMT_Main/0119-wined3d-Separate-GL-buffer-discard-control-from-igno.patch - patch_apply wined3d-CSMT_Main/0120-wined3d-Create-buffers-before-mapping-them.patch - patch_apply wined3d-CSMT_Main/0121-wined3d-Destroy-views-through-the-CS.patch - patch_apply wined3d-CSMT_Main/0122-wined3d-Remove-another-glFinish.patch - patch_apply wined3d-CSMT_Main/0123-wined3d-Destroy-vertex-declarations-through-the-CS.patch - patch_apply wined3d-CSMT_Main/0124-wined3d-Destroy-shaders-through-the-CS.patch - patch_apply wined3d-CSMT_Main/0125-wined3d-Create-VBOs-through-the-command-stream.patch - patch_apply wined3d-CSMT_Main/0126-wined3d-Clean-up-resource-data-through-the-CS.patch - patch_apply wined3d-CSMT_Main/0127-wined3d-Clean-up-buffer-resource-data-through-the-CS.patch - patch_apply wined3d-CSMT_Main/0128-wined3d-Clean-up-volume-resource-data-through-the-CS.patch - patch_apply wined3d-CSMT_Main/0129-wined3d-Clean-up-surfaces-through-the-cs.patch - patch_apply wined3d-CSMT_Main/0130-wined3d-Clean-up-texture-resources-through-the-cs.patch - patch_apply wined3d-CSMT_Main/0131-wined3d-Unload-resources-through-the-CS-in-uninit_3d.patch - patch_apply wined3d-CSMT_Main/0132-wined3d-Unload-resources-through-the-CS-in-device_re.patch - patch_apply wined3d-CSMT_Main/0133-wined3d-Don-t-glFinish-after-a-depth-buffer-blit.patch - patch_apply wined3d-CSMT_Main/0134-wined3d-Remove-software-cursor-support.patch - patch_apply wined3d-CSMT_Main/0135-wined3d-Create-dummy-textures-through-the-CS.patch - patch_apply wined3d-CSMT_Main/0136-wined3d-Create-the-initial-context-through-the-CS.patch - patch_apply wined3d-CSMT_Main/0137-wined3d-Recreate-ctx-and-dummy-textures-through-the-.patch - patch_apply wined3d-CSMT_Main/0138-wined3d-Ignore-WINED3D_MAP_NO_DIRTY_UPDATE-in-resour.patch - patch_apply wined3d-CSMT_Main/0139-wined3d-Delete-GL-contexts-through-the-CS-in-reset.patch - patch_apply wined3d-CSMT_Main/0140-wined3d-Delete-GL-contexts-through-the-CS-in-uninit_.patch - patch_apply wined3d-CSMT_Main/0141-wined3d-Invoke-surface_unload-through-the-CS-in-wine.patch - patch_apply wined3d-CSMT_Main/0142-wined3d-Use-an-event-to-block-the-worker-thread-when.patch - patch_apply wined3d-CSMT_Main/0143-wined3d-Fence-preload-operations.patch - patch_apply wined3d-CSMT_Main/0144-d3d8-tests-D3DLOCK_NO_DIRTY_UPDATE-on-managed-textur.patch - patch_apply wined3d-CSMT_Main/0145-d3d9-tests-D3DLOCK_NO_DIRTY_UPDATE-on-managed-textur.patch - patch_apply wined3d-CSMT_Main/0146-wined3d-Completely-reset-the-state-on-reset.patch - patch_apply wined3d-CSMT_Main/0147-wined3d-Send-getdc-and-releasedc-through-the-command.patch - patch_apply wined3d-CSMT_Main/0148-wined3d-Set-map_heap_memory-NULL-when-allocating-a-P.patch - patch_apply wined3d-CSMT_Main/0149-wined3d-Wait-only-for-the-buffer-to-be-idle.patch - patch_apply wined3d-CSMT_Main/0150-wined3d-Add-a-comment-about-worker-thread-lag.patch - patch_apply wined3d-CSMT_Main/0151-wined3d-Remove-the-texture-destroy-glFinish.patch - patch_apply wined3d-CSMT_Main/0152-wined3d-Move-FBO-destruction-into-the-worker-thread.patch - patch_apply wined3d-CSMT_Main/0153-wined3d-Don-t-incref-decref-textures-in-color-depth-.patch - patch_apply wined3d-CSMT_Main/0154-Winex11-complain-about-glfinish.patch - patch_apply wined3d-CSMT_Main/0155-wined3d-Make-sure-the-new-window-is-set-up-before-se.patch - patch_apply wined3d-CSMT_Main/0156-wined3d-Remove-the-device_reset-CS-sync-fixme.patch - patch_apply wined3d-CSMT_Main/0157-wined3d-Put-GL_APPLE_flush_buffer_range-syncing-back.patch - patch_apply wined3d-CSMT_Main/0158-wined3d-Wait-for-the-resource-to-be-idle-when-destro.patch - patch_apply wined3d-CSMT_Main/0159-wined3d-Don-t-sync-on-redundant-discard-calls.patch - patch_apply wined3d-CSMT_Main/0160-wined3d-Don-t-discard-new-buffers.patch - patch_apply wined3d-CSMT_Main/0161-wined3d-Don-t-try-to-sync-VBOs-manually-on-OSX-with-.patch - patch_apply wined3d-CSMT_Main/0162-wined3d-Render-target-lock-hack.patch - patch_apply wined3d-CSMT_Main/0163-wined3d-Avoid-calling-wined3d_surface_blt-from-surfa.patch - patch_apply wined3d-CSMT_Main/0164-wined3d-Only-discard-buffers-that-are-in-use.patch - patch_apply wined3d-CSMT_Main/0165-wined3d-Destroy-samplers-through-the-command-stream.patch - patch_apply wined3d-CSMT_Main/0166-wined3d-Hack-to-reject-unsupported-color-fills.patch - patch_apply wined3d-CSMT_Main/0167-wined3d-Alloc-the-buffer-map-array-before-mapping-th.patch - patch_apply wined3d-CSMT_Main/0168-wined3d-Send-update_sub_resource-calls-through-the-c.patch - patch_apply wined3d-CSMT_Main/9998-wined3d-Enable-CSMT-by-default-print-a-winediag-mess.patch - patch_apply wined3d-CSMT_Main/9999-IfDefined.patch - ( - echo '+ { "Sebastian Lackner", "Revert \"wined3d: Store custom pitches in the texture instead of the surface.\".", 1 },'; - echo '+ { "Sebastian Lackner", "Revert \"wined3d: Store the \"user_memory\" pointer in the texture instead of the surface.\".", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Merge get_pitch functions.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Pass a context to surface_load_location.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Make surface_load_location return nothing.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Store volume locations in the resource.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Move validate_location to resource.c.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Move surface locations into the resource.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Remove surface_validate_location.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Move invalidate_location to resource.c.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Invalidate containers via callback.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Remove surface_invalidate_location.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Move bitmap_data and user_memory into the resource.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Move load_location into the resource.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Replace surface_load_location with resource_load_location.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Introduce helper functions for mapping volumes.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Move volume PBO infrastructure into the resource.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Remove surface->pbo.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Use resource buffer mapping facilities in surfaces.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Move buffer creation into the resource.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Handle WINED3D_LOCATION_DISCARDED in surface_load_texture.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Handle LOCATION_DISCARDED in surface_load_drawable.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Handle WINED3D_LOCATION_DISCARDED for sysmem loads.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Discard implicit surfaces on unload.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Don'\''t try to flip sysmem copies in swapchain_present.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Discard the backbuffer in discard presents.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Introduce a function to retrieve resource memory.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Make surface_ops->unmap specific for front buffers.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Move check_block_align to resource.c.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Replace surface alloc functions with resource ones.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Don'\''t delete the buffer in surface_cleanup.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Use resource facilities to destroy PBOs.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Move simple location copying to the resource.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Move most of volume_map to resource.c.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Use resource_map for surface_map.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Don'\''t call the public map function in surface_convert_format.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Don'\''t call the public map function in surface_cpu_blt.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Move the framebuffer into wined3d_state.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Get rid of state access in shader_generate_glsl_declarations.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Preload buffers if streamsrc is not dirty.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Hackily introduce a multithreaded command stream.", 1 },'; - echo '+ { "Henri Verbeet", "wined3d: Wait for resource updates to finish when using the multithreaded command stream.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Don'\''t store pointers in struct wined3d_cs_present.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Don'\''t put rectangle pointers into wined3d_cs_clear.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Store the color in clear ops instead of a pointer.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Pass the state to draw_primitive.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Wait for the cs before destroying objects.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Give the cs its own state.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Send float constant updates through the command stream.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Request a glFinish before modifying resources outside the cs.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Finish the cs before changing the texture lod.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Don'\''t call glFinish after clears.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Don'\''t call glFinish after draws.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Shadow device->offscreenBuffer in the context.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Don'\''t access the stateblock in find_draw_buffers_mask.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Pass the depth stencil to swapchain->present.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Don'\''t store viewport pointers in the command stream.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Keep track of the onscreen depth stencil in the command stream instead of the device.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Send base vertex index updates through the cs.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Send primitive type updates through the command stream.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Send bool constant updates through the command stream.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Send int constant updates through the command stream.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Send light updates through the command stream.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Prevent the command stream from running ahead too far.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Wait for the cs to finish before destroying the device.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Run the cs asynchronously.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Send blits through the command stream.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Get rid of WINED3D_BUFFER_FLUSH.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Don'\''t force strict draw ordering for multithreaded CS.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Send render target view clears through the command stream.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Wait for the CS in GetDC.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Send resource maps through the command stream.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Get rid of the end_scene flush and finish.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Replace the linked lists with a ringbuffer.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Don'\''t preload buffers on unmap.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Don'\''t call glFinish before swapping.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Wined3d_*_query_issue never fails.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Add query support to the command stream.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Check our CS state to find out if a query is done.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Poll queries automatically in the CS.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Introduce a separate queue for priority commands.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Destroy queries through the CS.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Separate main and worker thread query state.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Don'\''t poll queries that failed to start.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Remove restated queries from the poll list.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Don'\''t reset the query state if it doesn'\''t have a ctx.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Put this into the query poll patch.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Send texture preloads through the CS.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Send update_texture calls through the CS.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Get rid of the surface_upload_data glFinish.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Don'\''t lock the src volume in device_update_volume.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Handle evit_managed_resources through the CS.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Introduce resource fencing.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Fence update_texture and update_surface calls.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Dirtify resources on unmap.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Fence texture reads in draws.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Fence render targets and depth stencils.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Fence blit operations.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Fence color_fill operations.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Fence clear calls.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Fence present calls.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Make resource maps and unmaps a priority command.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Dirtify changed textures through the command stream.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Wrap GL BOs in a structure.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Separate resource map and draw buffers.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Implement DISCARD resource maps with buffers.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Implement DISCARD resource maps with heap memory.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Unset some objects in state_init_default.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Don'\''t request the frontbuffer to create dummy textures.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Use double-buffered buffers for multithreaded CS.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Don'\''t synchronize NOOVERWRITE buffer maps.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Separate buffer map write and draw read memory pointers.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Accelerate DISCARD buffer maps.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Accelerate READONLY buffer maps.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Access the buffer dirty areas through the CS.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Ignore buffer->resource.map_count in the CS.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Send buffer preloads through the CS.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Use glBufferSubData instead of glMapBufferRange.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Separate GL buffer discard control from ignoring MAP_DISCARD.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Create buffers before mapping them.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Destroy views through the CS.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Remove another glFinish.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Destroy vertex declarations through the CS.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Destroy shaders through the CS.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Create VBOs through the command stream.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Clean up resource data through the CS.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Clean up buffer resource data through the CS.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Clean up volume resource data through the CS.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Clean up surfaces through the cs.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Clean up texture resources through the cs.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Unload resources through the CS in uninit_3d.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Unload resources through the CS in device_reset.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Don'\''t glFinish after a depth buffer blit.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Remove software cursor support.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Create dummy textures through the CS.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Create the initial context through the CS.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Recreate ctx and dummy textures through the CS after resets.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Ignore WINED3D_MAP_NO_DIRTY_UPDATE in resource_map.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Delete GL contexts through the CS in reset.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Delete GL contexts through the CS in uninit_3d.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Invoke surface_unload through the CS in wined3d_surface_update_desc.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Use an event to block the worker thread when it is idle.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Fence preload operations.", 1 },'; - echo '+ { "Stefan Dösinger", "d3d8/tests: D3DLOCK_NO_DIRTY_UPDATE on managed textures is temporarily broken.", 1 },'; - echo '+ { "Stefan Dösinger", "d3d9/tests: D3DLOCK_NO_DIRTY_UPDATE on managed textures is temporarily broken.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Completely reset the state on reset.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Send getdc and releasedc through the command stream.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Set map_heap_memory = NULL when allocating a PBO.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Wait only for the buffer to be idle.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Add a comment about worker thread lag.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Remove the texture destroy glFinish.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Move FBO destruction into the worker thread.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Don'\''t incref / decref textures in color / depth fill blits.", 1 },'; - echo '+ { "Stefan Dösinger", "Winex11: Complain about glfinish.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Make sure the new window is set up before setting up a context.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Remove the device_reset CS sync fixme.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Put GL_APPLE_flush_buffer_range syncing back in place.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Wait for the resource to be idle when destroying user memory surfaces.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Don'\''t sync on redundant discard calls.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Don'\''t discard new buffers.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Don'\''t try to sync VBOs manually on OSX with CSMT.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Render target lock hack.", 1 },'; - echo '+ { "Matteo Bruni", "wined3d: Avoid calling wined3d_surface_blt() from surface_upload_from_surface().", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Only discard buffers that are in use.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Destroy samplers through the command stream.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Hack to reject unsupported color fills.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Alloc the buffer map array before mapping the buffer.", 1 },'; - echo '+ { "Stefan Dösinger", "wined3d: Send update_sub_resource calls through the command stream.", 1 },'; - echo '+ { "Sebastian Lackner", "wined3d: Enable CSMT by default, print a winediag message informing about this patchset.", 1 },'; - echo '+ { "Wine Staging Team", "Autogenerated #ifdef patch for wined3d-CSMT_Main.", 1 },'; - ) >> "$patchlist" -fi - # Patchset winedevice-Fix_Relocation # | # | This patchset fixes the following Wine bugs: diff --git a/patches/vcomp-Atomic_I8/0001-vcomp-tests-Reenable-architecture-dependent-tests.patch b/patches/vcomp-Atomic_I8/0001-vcomp-tests-Reenable-architecture-dependent-tests.patch deleted file mode 100644 index 7217ab23..00000000 --- a/patches/vcomp-Atomic_I8/0001-vcomp-tests-Reenable-architecture-dependent-tests.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 94973c7be88a18b4b4f79cea79f82f450cb659f0 Mon Sep 17 00:00:00 2001 -From: Sebastian Lackner -Date: Thu, 14 Jan 2016 07:18:08 +0100 -Subject: vcomp/tests: Reenable architecture dependent tests. - ---- - dlls/vcomp/tests/vcomp.c | 10 +++++++--- - 1 file changed, 7 insertions(+), 3 deletions(-) - -diff --git a/dlls/vcomp/tests/vcomp.c b/dlls/vcomp/tests/vcomp.c -index 4f030d3..5c177df 100644 ---- a/dlls/vcomp/tests/vcomp.c -+++ b/dlls/vcomp/tests/vcomp.c -@@ -1406,13 +1406,15 @@ static void test_atomic_integer32(void) - { p_vcomp_atomic_mul_i4, 0x11223344, -0x77665544, 0xecccdf0 }, - { p_vcomp_atomic_or_i4, 0x11223344, 0x77665544, 0x77667744 }, - { p_vcomp_atomic_shl_i4, 0x11223344, 3, -0x76ee65e0 }, -- /* { p_vcomp_atomic_shl_i4, 0x11223344, 35, -0x76ee65e0 }, */ /* depends on Architecture */ - { p_vcomp_atomic_shl_i4, -0x11223344, 3, 0x76ee65e0 }, - { p_vcomp_atomic_shr_i4, 0x11223344, 3, 0x2244668 }, -- /* { p_vcomp_atomic_shr_i4, 0x11223344, 35, 0x2244668 }, */ /* depends on Architecture */ - { p_vcomp_atomic_shr_i4, -0x11223344, 3, -0x2244669 }, - { p_vcomp_atomic_sub_i4, 0x11223344, 0x77665544, -0x66442200 }, - { p_vcomp_atomic_xor_i4, 0x11223344, 0x77665544, 0x66446600 }, -+ #if defined(__i386__) || defined(__x86_64__) -+ { p_vcomp_atomic_shl_i4, 0x11223344, 35, -0x76ee65e0 }, -+ { p_vcomp_atomic_shr_i4, 0x11223344, 35, 0x2244668 }, -+ #endif - }; - struct - { -@@ -1424,8 +1426,10 @@ static void test_atomic_integer32(void) - { p_vcomp_atomic_div_ui4, 0x77665544, 0x11223344, 6 }, - { p_vcomp_atomic_div_ui4, 0x77665544, 0xeeddccbc, 0 }, - { p_vcomp_atomic_shr_ui4, 0x11223344, 3, 0x2244668 }, -- /* { p_vcomp_atomic_shr_ui4, 0x11223344, 35, 0x2244668 }, */ /* depends on Architecture */ - { p_vcomp_atomic_shr_ui4, 0xeeddccbc, 3, 0x1ddbb997 }, -+ #if defined(__i386__) || defined(__x86_64__) -+ { p_vcomp_atomic_shr_ui4, 0x11223344, 35, 0x2244668 }, -+ #endif - }; - int i; - --- -2.6.4 - diff --git a/patches/vcomp-Atomic_I8/0002-vcomp-Implement-64-bit-atomic-instructions.patch b/patches/vcomp-Atomic_I8/0002-vcomp-Implement-64-bit-atomic-instructions.patch deleted file mode 100644 index 511f1607..00000000 --- a/patches/vcomp-Atomic_I8/0002-vcomp-Implement-64-bit-atomic-instructions.patch +++ /dev/null @@ -1,458 +0,0 @@ -From bf16d653d692fdb4b3f5f595f1fa9cf58d9b2947 Mon Sep 17 00:00:00 2001 -From: Sebastian Lackner -Date: Thu, 14 Jan 2016 07:20:03 +0100 -Subject: vcomp: Implement 64-bit atomic instructions. - ---- - dlls/vcomp/main.c | 68 ++++++++++++++++++++++++++++++++++++++++++++- - dlls/vcomp/vcomp.spec | 22 +++++++-------- - dlls/vcomp100/vcomp100.spec | 22 +++++++-------- - dlls/vcomp110/vcomp110.spec | 22 +++++++-------- - dlls/vcomp120/vcomp120.spec | 22 +++++++-------- - dlls/vcomp90/vcomp90.spec | 22 +++++++-------- - 6 files changed, 122 insertions(+), 56 deletions(-) - -diff --git a/dlls/vcomp/main.c b/dlls/vcomp/main.c -index 12fd2a5..446b83d 100644 ---- a/dlls/vcomp/main.c -+++ b/dlls/vcomp/main.c -@@ -4,7 +4,7 @@ - * - * Copyright 2011 Austin English - * Copyright 2012 Dan Kegel -- * Copyright 2015 Sebastian Lackner -+ * Copyright 2015-2016 Sebastian Lackner - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public -@@ -356,6 +356,72 @@ void CDECL _vcomp_atomic_xor_i4(int *dest, int val) - do old = *dest; while (interlocked_cmpxchg(dest, old ^ val, old) != old); - } - -+void CDECL _vcomp_atomic_add_i8(LONG64 *dest, LONG64 val) -+{ -+ LONG64 old; -+ do old = *dest; while (interlocked_cmpxchg64(dest, old + val, old) != old); -+} -+ -+void CDECL _vcomp_atomic_and_i8(LONG64 *dest, LONG64 val) -+{ -+ LONG64 old; -+ do old = *dest; while (interlocked_cmpxchg64(dest, old & val, old) != old); -+} -+ -+void CDECL _vcomp_atomic_div_i8(LONG64 *dest, LONG64 val) -+{ -+ LONG64 old; -+ do old = *dest; while (interlocked_cmpxchg64(dest, old / val, old) != old); -+} -+ -+void CDECL _vcomp_atomic_div_ui8(ULONG64 *dest, ULONG64 val) -+{ -+ ULONG64 old; -+ do old = *dest; while (interlocked_cmpxchg64((LONG64 *)dest, old / val, old) != old); -+} -+ -+void CDECL _vcomp_atomic_mul_i8(LONG64 *dest, LONG64 val) -+{ -+ LONG64 old; -+ do old = *dest; while (interlocked_cmpxchg64(dest, old * val, old) != old); -+} -+ -+void CDECL _vcomp_atomic_or_i8(LONG64 *dest, LONG64 val) -+{ -+ LONG64 old; -+ do old = *dest; while (interlocked_cmpxchg64(dest, old | val, old) != old); -+} -+ -+void CDECL _vcomp_atomic_shl_i8(LONG64 *dest, unsigned int val) -+{ -+ LONG64 old; -+ do old = *dest; while (interlocked_cmpxchg64(dest, old << val, old) != old); -+} -+ -+void CDECL _vcomp_atomic_shr_i8(LONG64 *dest, unsigned int val) -+{ -+ LONG64 old; -+ do old = *dest; while (interlocked_cmpxchg64(dest, old >> val, old) != old); -+} -+ -+void CDECL _vcomp_atomic_shr_ui8(ULONG64 *dest, unsigned int val) -+{ -+ ULONG64 old; -+ do old = *dest; while (interlocked_cmpxchg64((LONG64 *)dest, old >> val, old) != old); -+} -+ -+void CDECL _vcomp_atomic_sub_i8(LONG64 *dest, LONG64 val) -+{ -+ LONG64 old; -+ do old = *dest; while (interlocked_cmpxchg64(dest, old - val, old) != old); -+} -+ -+void CDECL _vcomp_atomic_xor_i8(LONG64 *dest, LONG64 val) -+{ -+ LONG64 old; -+ do old = *dest; while (interlocked_cmpxchg64(dest, old ^ val, old) != old); -+} -+ - void CDECL _vcomp_atomic_add_r4(float *dest, float val) - { - int old, new; -diff --git a/dlls/vcomp/vcomp.spec b/dlls/vcomp/vcomp.spec -index 7703e2e..eff411e 100644 ---- a/dlls/vcomp/vcomp.spec -+++ b/dlls/vcomp/vcomp.spec -@@ -1,55 +1,55 @@ - @ stub _vcomp_atomic_add_i1 - @ stub _vcomp_atomic_add_i2 - @ cdecl _vcomp_atomic_add_i4(ptr long) --@ stub _vcomp_atomic_add_i8 -+@ cdecl _vcomp_atomic_add_i8(ptr int64) - @ cdecl _vcomp_atomic_add_r4(ptr float) - @ cdecl _vcomp_atomic_add_r8(ptr double) - @ stub _vcomp_atomic_and_i1 - @ stub _vcomp_atomic_and_i2 - @ cdecl _vcomp_atomic_and_i4(ptr long) --@ stub _vcomp_atomic_and_i8 -+@ cdecl _vcomp_atomic_and_i8(ptr int64) - @ stub _vcomp_atomic_div_i1 - @ stub _vcomp_atomic_div_i2 - @ cdecl _vcomp_atomic_div_i4(ptr long) --@ stub _vcomp_atomic_div_i8 -+@ cdecl _vcomp_atomic_div_i8(ptr int64) - @ cdecl _vcomp_atomic_div_r4(ptr float) - @ cdecl _vcomp_atomic_div_r8(ptr double) - @ stub _vcomp_atomic_div_ui1 - @ stub _vcomp_atomic_div_ui2 - @ cdecl _vcomp_atomic_div_ui4(ptr long) --@ stub _vcomp_atomic_div_ui8 -+@ cdecl _vcomp_atomic_div_ui8(ptr int64) - @ stub _vcomp_atomic_mul_i1 - @ stub _vcomp_atomic_mul_i2 - @ cdecl _vcomp_atomic_mul_i4(ptr long) --@ stub _vcomp_atomic_mul_i8 -+@ cdecl _vcomp_atomic_mul_i8(ptr int64) - @ cdecl _vcomp_atomic_mul_r4(ptr float) - @ cdecl _vcomp_atomic_mul_r8(ptr double) - @ stub _vcomp_atomic_or_i1 - @ stub _vcomp_atomic_or_i2 - @ cdecl _vcomp_atomic_or_i4(ptr long) --@ stub _vcomp_atomic_or_i8 -+@ cdecl _vcomp_atomic_or_i8(ptr int64) - @ stub _vcomp_atomic_shl_i1 - @ stub _vcomp_atomic_shl_i2 - @ cdecl _vcomp_atomic_shl_i4(ptr long) --@ stub _vcomp_atomic_shl_i8 -+@ cdecl _vcomp_atomic_shl_i8(ptr long) - @ stub _vcomp_atomic_shr_i1 - @ stub _vcomp_atomic_shr_i2 - @ cdecl _vcomp_atomic_shr_i4(ptr long) --@ stub _vcomp_atomic_shr_i8 -+@ cdecl _vcomp_atomic_shr_i8(ptr long) - @ stub _vcomp_atomic_shr_ui1 - @ stub _vcomp_atomic_shr_ui2 - @ cdecl _vcomp_atomic_shr_ui4(ptr long) --@ stub _vcomp_atomic_shr_ui8 -+@ cdecl _vcomp_atomic_shr_ui8(ptr long) - @ stub _vcomp_atomic_sub_i1 - @ stub _vcomp_atomic_sub_i2 - @ cdecl _vcomp_atomic_sub_i4(ptr long) --@ stub _vcomp_atomic_sub_i8 -+@ cdecl _vcomp_atomic_sub_i8(ptr int64) - @ cdecl _vcomp_atomic_sub_r4(ptr float) - @ cdecl _vcomp_atomic_sub_r8(ptr double) - @ stub _vcomp_atomic_xor_i1 - @ stub _vcomp_atomic_xor_i2 - @ cdecl _vcomp_atomic_xor_i4(ptr long) --@ stub _vcomp_atomic_xor_i8 -+@ cdecl _vcomp_atomic_xor_i8(ptr int64) - @ cdecl _vcomp_barrier() - @ stub _vcomp_copyprivate_broadcast - @ stub _vcomp_copyprivate_receive -diff --git a/dlls/vcomp100/vcomp100.spec b/dlls/vcomp100/vcomp100.spec -index 849125f..ba1f414 100644 ---- a/dlls/vcomp100/vcomp100.spec -+++ b/dlls/vcomp100/vcomp100.spec -@@ -1,55 +1,55 @@ - @ stub _vcomp_atomic_add_i1 - @ stub _vcomp_atomic_add_i2 - @ cdecl _vcomp_atomic_add_i4(ptr long) vcomp._vcomp_atomic_add_i4 --@ stub _vcomp_atomic_add_i8 -+@ cdecl _vcomp_atomic_add_i8(ptr int64) vcomp._vcomp_atomic_add_i8 - @ cdecl _vcomp_atomic_add_r4(ptr float) vcomp._vcomp_atomic_add_r4 - @ cdecl _vcomp_atomic_add_r8(ptr double) vcomp._vcomp_atomic_add_r8 - @ stub _vcomp_atomic_and_i1 - @ stub _vcomp_atomic_and_i2 - @ cdecl _vcomp_atomic_and_i4(ptr long) vcomp._vcomp_atomic_and_i4 --@ stub _vcomp_atomic_and_i8 -+@ cdecl _vcomp_atomic_and_i8(ptr int64) vcomp._vcomp_atomic_and_i8 - @ stub _vcomp_atomic_div_i1 - @ stub _vcomp_atomic_div_i2 - @ cdecl _vcomp_atomic_div_i4(ptr long) vcomp._vcomp_atomic_div_i4 --@ stub _vcomp_atomic_div_i8 -+@ cdecl _vcomp_atomic_div_i8(ptr int64) vcomp._vcomp_atomic_div_i8 - @ cdecl _vcomp_atomic_div_r4(ptr float) vcomp._vcomp_atomic_div_r4 - @ cdecl _vcomp_atomic_div_r8(ptr double) vcomp._vcomp_atomic_div_r8 - @ stub _vcomp_atomic_div_ui1 - @ stub _vcomp_atomic_div_ui2 - @ cdecl _vcomp_atomic_div_ui4(ptr long) vcomp._vcomp_atomic_div_ui4 --@ stub _vcomp_atomic_div_ui8 -+@ cdecl _vcomp_atomic_div_ui8(ptr int64) vcomp._vcomp_atomic_div_ui8 - @ stub _vcomp_atomic_mul_i1 - @ stub _vcomp_atomic_mul_i2 - @ cdecl _vcomp_atomic_mul_i4(ptr long) vcomp._vcomp_atomic_mul_i4 --@ stub _vcomp_atomic_mul_i8 -+@ cdecl _vcomp_atomic_mul_i8(ptr int64) vcomp._vcomp_atomic_mul_i8 - @ cdecl _vcomp_atomic_mul_r4(ptr float) vcomp._vcomp_atomic_mul_r4 - @ cdecl _vcomp_atomic_mul_r8(ptr double) vcomp._vcomp_atomic_mul_r8 - @ stub _vcomp_atomic_or_i1 - @ stub _vcomp_atomic_or_i2 - @ cdecl _vcomp_atomic_or_i4(ptr long) vcomp._vcomp_atomic_or_i4 --@ stub _vcomp_atomic_or_i8 -+@ cdecl _vcomp_atomic_or_i8(ptr int64) vcomp._vcomp_atomic_or_i8 - @ stub _vcomp_atomic_shl_i1 - @ stub _vcomp_atomic_shl_i2 - @ cdecl _vcomp_atomic_shl_i4(ptr long) vcomp._vcomp_atomic_shl_i4 --@ stub _vcomp_atomic_shl_i8 -+@ cdecl _vcomp_atomic_shl_i8(ptr long) vcomp._vcomp_atomic_shl_i8 - @ stub _vcomp_atomic_shr_i1 - @ stub _vcomp_atomic_shr_i2 - @ cdecl _vcomp_atomic_shr_i4(ptr long) vcomp._vcomp_atomic_shr_i4 --@ stub _vcomp_atomic_shr_i8 -+@ cdecl _vcomp_atomic_shr_i8(ptr long) vcomp._vcomp_atomic_shr_i8 - @ stub _vcomp_atomic_shr_ui1 - @ stub _vcomp_atomic_shr_ui2 - @ cdecl _vcomp_atomic_shr_ui4(ptr long) vcomp._vcomp_atomic_shr_ui4 --@ stub _vcomp_atomic_shr_ui8 -+@ cdecl _vcomp_atomic_shr_ui8(ptr long) vcomp._vcomp_atomic_shr_ui8 - @ stub _vcomp_atomic_sub_i1 - @ stub _vcomp_atomic_sub_i2 - @ cdecl _vcomp_atomic_sub_i4(ptr long) vcomp._vcomp_atomic_sub_i4 --@ stub _vcomp_atomic_sub_i8 -+@ cdecl _vcomp_atomic_sub_i8(ptr int64) vcomp._vcomp_atomic_sub_i8 - @ cdecl _vcomp_atomic_sub_r4(ptr float) vcomp._vcomp_atomic_sub_r4 - @ cdecl _vcomp_atomic_sub_r8(ptr double) vcomp._vcomp_atomic_sub_r8 - @ stub _vcomp_atomic_xor_i1 - @ stub _vcomp_atomic_xor_i2 - @ cdecl _vcomp_atomic_xor_i4(ptr long) vcomp._vcomp_atomic_xor_i4 --@ stub _vcomp_atomic_xor_i8 -+@ cdecl _vcomp_atomic_xor_i8(ptr int64) vcomp._vcomp_atomic_xor_i8 - @ cdecl _vcomp_barrier() vcomp._vcomp_barrier - @ stub _vcomp_copyprivate_broadcast - @ stub _vcomp_copyprivate_receive -diff --git a/dlls/vcomp110/vcomp110.spec b/dlls/vcomp110/vcomp110.spec -index 87a7205..8389d27 100644 ---- a/dlls/vcomp110/vcomp110.spec -+++ b/dlls/vcomp110/vcomp110.spec -@@ -2,55 +2,55 @@ - @ stub _vcomp_atomic_add_i1 - @ stub _vcomp_atomic_add_i2 - @ cdecl _vcomp_atomic_add_i4(ptr long) vcomp._vcomp_atomic_add_i4 --@ stub _vcomp_atomic_add_i8 -+@ cdecl _vcomp_atomic_add_i8(ptr int64) vcomp._vcomp_atomic_add_i8 - @ cdecl _vcomp_atomic_add_r4(ptr float) vcomp._vcomp_atomic_add_r4 - @ cdecl _vcomp_atomic_add_r8(ptr double) vcomp._vcomp_atomic_add_r8 - @ stub _vcomp_atomic_and_i1 - @ stub _vcomp_atomic_and_i2 - @ cdecl _vcomp_atomic_and_i4(ptr long) vcomp._vcomp_atomic_and_i4 --@ stub _vcomp_atomic_and_i8 -+@ cdecl _vcomp_atomic_and_i8(ptr int64) vcomp._vcomp_atomic_and_i8 - @ stub _vcomp_atomic_div_i1 - @ stub _vcomp_atomic_div_i2 - @ cdecl _vcomp_atomic_div_i4(ptr long) vcomp._vcomp_atomic_div_i4 --@ stub _vcomp_atomic_div_i8 -+@ cdecl _vcomp_atomic_div_i8(ptr int64) vcomp._vcomp_atomic_div_i8 - @ cdecl _vcomp_atomic_div_r4(ptr float) vcomp._vcomp_atomic_div_r4 - @ cdecl _vcomp_atomic_div_r8(ptr double) vcomp._vcomp_atomic_div_r8 - @ stub _vcomp_atomic_div_ui1 - @ stub _vcomp_atomic_div_ui2 - @ cdecl _vcomp_atomic_div_ui4(ptr long) vcomp._vcomp_atomic_div_ui4 --@ stub _vcomp_atomic_div_ui8 -+@ cdecl _vcomp_atomic_div_ui8(ptr int64) vcomp._vcomp_atomic_div_ui8 - @ stub _vcomp_atomic_mul_i1 - @ stub _vcomp_atomic_mul_i2 - @ cdecl _vcomp_atomic_mul_i4(ptr long) vcomp._vcomp_atomic_mul_i4 --@ stub _vcomp_atomic_mul_i8 -+@ cdecl _vcomp_atomic_mul_i8(ptr int64) vcomp._vcomp_atomic_mul_i8 - @ cdecl _vcomp_atomic_mul_r4(ptr float) vcomp._vcomp_atomic_mul_r4 - @ cdecl _vcomp_atomic_mul_r8(ptr double) vcomp._vcomp_atomic_mul_r8 - @ stub _vcomp_atomic_or_i1 - @ stub _vcomp_atomic_or_i2 - @ cdecl _vcomp_atomic_or_i4(ptr long) vcomp._vcomp_atomic_or_i4 --@ stub _vcomp_atomic_or_i8 -+@ cdecl _vcomp_atomic_or_i8(ptr int64) vcomp._vcomp_atomic_or_i8 - @ stub _vcomp_atomic_shl_i1 - @ stub _vcomp_atomic_shl_i2 - @ cdecl _vcomp_atomic_shl_i4(ptr long) vcomp._vcomp_atomic_shl_i4 --@ stub _vcomp_atomic_shl_i8 -+@ cdecl _vcomp_atomic_shl_i8(ptr long) vcomp._vcomp_atomic_shl_i8 - @ stub _vcomp_atomic_shr_i1 - @ stub _vcomp_atomic_shr_i2 - @ cdecl _vcomp_atomic_shr_i4(ptr long) vcomp._vcomp_atomic_shr_i4 --@ stub _vcomp_atomic_shr_i8 -+@ cdecl _vcomp_atomic_shr_i8(ptr long) vcomp._vcomp_atomic_shr_i8 - @ stub _vcomp_atomic_shr_ui1 - @ stub _vcomp_atomic_shr_ui2 - @ cdecl _vcomp_atomic_shr_ui4(ptr long) vcomp._vcomp_atomic_shr_ui4 --@ stub _vcomp_atomic_shr_ui8 -+@ cdecl _vcomp_atomic_shr_ui8(ptr long) vcomp._vcomp_atomic_shr_ui8 - @ stub _vcomp_atomic_sub_i1 - @ stub _vcomp_atomic_sub_i2 - @ cdecl _vcomp_atomic_sub_i4(ptr long) vcomp._vcomp_atomic_sub_i4 --@ stub _vcomp_atomic_sub_i8 -+@ cdecl _vcomp_atomic_sub_i8(ptr int64) vcomp._vcomp_atomic_sub_i8 - @ cdecl _vcomp_atomic_sub_r4(ptr float) vcomp._vcomp_atomic_sub_r4 - @ cdecl _vcomp_atomic_sub_r8(ptr double) vcomp._vcomp_atomic_sub_r8 - @ stub _vcomp_atomic_xor_i1 - @ stub _vcomp_atomic_xor_i2 - @ cdecl _vcomp_atomic_xor_i4(ptr long) vcomp._vcomp_atomic_xor_i4 --@ stub _vcomp_atomic_xor_i8 -+@ cdecl _vcomp_atomic_xor_i8(ptr int64) vcomp._vcomp_atomic_xor_i8 - @ cdecl _vcomp_barrier() vcomp._vcomp_barrier - @ stub _vcomp_copyprivate_broadcast - @ stub _vcomp_copyprivate_receive -diff --git a/dlls/vcomp120/vcomp120.spec b/dlls/vcomp120/vcomp120.spec -index 87a7205..8389d27 100644 ---- a/dlls/vcomp120/vcomp120.spec -+++ b/dlls/vcomp120/vcomp120.spec -@@ -2,55 +2,55 @@ - @ stub _vcomp_atomic_add_i1 - @ stub _vcomp_atomic_add_i2 - @ cdecl _vcomp_atomic_add_i4(ptr long) vcomp._vcomp_atomic_add_i4 --@ stub _vcomp_atomic_add_i8 -+@ cdecl _vcomp_atomic_add_i8(ptr int64) vcomp._vcomp_atomic_add_i8 - @ cdecl _vcomp_atomic_add_r4(ptr float) vcomp._vcomp_atomic_add_r4 - @ cdecl _vcomp_atomic_add_r8(ptr double) vcomp._vcomp_atomic_add_r8 - @ stub _vcomp_atomic_and_i1 - @ stub _vcomp_atomic_and_i2 - @ cdecl _vcomp_atomic_and_i4(ptr long) vcomp._vcomp_atomic_and_i4 --@ stub _vcomp_atomic_and_i8 -+@ cdecl _vcomp_atomic_and_i8(ptr int64) vcomp._vcomp_atomic_and_i8 - @ stub _vcomp_atomic_div_i1 - @ stub _vcomp_atomic_div_i2 - @ cdecl _vcomp_atomic_div_i4(ptr long) vcomp._vcomp_atomic_div_i4 --@ stub _vcomp_atomic_div_i8 -+@ cdecl _vcomp_atomic_div_i8(ptr int64) vcomp._vcomp_atomic_div_i8 - @ cdecl _vcomp_atomic_div_r4(ptr float) vcomp._vcomp_atomic_div_r4 - @ cdecl _vcomp_atomic_div_r8(ptr double) vcomp._vcomp_atomic_div_r8 - @ stub _vcomp_atomic_div_ui1 - @ stub _vcomp_atomic_div_ui2 - @ cdecl _vcomp_atomic_div_ui4(ptr long) vcomp._vcomp_atomic_div_ui4 --@ stub _vcomp_atomic_div_ui8 -+@ cdecl _vcomp_atomic_div_ui8(ptr int64) vcomp._vcomp_atomic_div_ui8 - @ stub _vcomp_atomic_mul_i1 - @ stub _vcomp_atomic_mul_i2 - @ cdecl _vcomp_atomic_mul_i4(ptr long) vcomp._vcomp_atomic_mul_i4 --@ stub _vcomp_atomic_mul_i8 -+@ cdecl _vcomp_atomic_mul_i8(ptr int64) vcomp._vcomp_atomic_mul_i8 - @ cdecl _vcomp_atomic_mul_r4(ptr float) vcomp._vcomp_atomic_mul_r4 - @ cdecl _vcomp_atomic_mul_r8(ptr double) vcomp._vcomp_atomic_mul_r8 - @ stub _vcomp_atomic_or_i1 - @ stub _vcomp_atomic_or_i2 - @ cdecl _vcomp_atomic_or_i4(ptr long) vcomp._vcomp_atomic_or_i4 --@ stub _vcomp_atomic_or_i8 -+@ cdecl _vcomp_atomic_or_i8(ptr int64) vcomp._vcomp_atomic_or_i8 - @ stub _vcomp_atomic_shl_i1 - @ stub _vcomp_atomic_shl_i2 - @ cdecl _vcomp_atomic_shl_i4(ptr long) vcomp._vcomp_atomic_shl_i4 --@ stub _vcomp_atomic_shl_i8 -+@ cdecl _vcomp_atomic_shl_i8(ptr long) vcomp._vcomp_atomic_shl_i8 - @ stub _vcomp_atomic_shr_i1 - @ stub _vcomp_atomic_shr_i2 - @ cdecl _vcomp_atomic_shr_i4(ptr long) vcomp._vcomp_atomic_shr_i4 --@ stub _vcomp_atomic_shr_i8 -+@ cdecl _vcomp_atomic_shr_i8(ptr long) vcomp._vcomp_atomic_shr_i8 - @ stub _vcomp_atomic_shr_ui1 - @ stub _vcomp_atomic_shr_ui2 - @ cdecl _vcomp_atomic_shr_ui4(ptr long) vcomp._vcomp_atomic_shr_ui4 --@ stub _vcomp_atomic_shr_ui8 -+@ cdecl _vcomp_atomic_shr_ui8(ptr long) vcomp._vcomp_atomic_shr_ui8 - @ stub _vcomp_atomic_sub_i1 - @ stub _vcomp_atomic_sub_i2 - @ cdecl _vcomp_atomic_sub_i4(ptr long) vcomp._vcomp_atomic_sub_i4 --@ stub _vcomp_atomic_sub_i8 -+@ cdecl _vcomp_atomic_sub_i8(ptr int64) vcomp._vcomp_atomic_sub_i8 - @ cdecl _vcomp_atomic_sub_r4(ptr float) vcomp._vcomp_atomic_sub_r4 - @ cdecl _vcomp_atomic_sub_r8(ptr double) vcomp._vcomp_atomic_sub_r8 - @ stub _vcomp_atomic_xor_i1 - @ stub _vcomp_atomic_xor_i2 - @ cdecl _vcomp_atomic_xor_i4(ptr long) vcomp._vcomp_atomic_xor_i4 --@ stub _vcomp_atomic_xor_i8 -+@ cdecl _vcomp_atomic_xor_i8(ptr int64) vcomp._vcomp_atomic_xor_i8 - @ cdecl _vcomp_barrier() vcomp._vcomp_barrier - @ stub _vcomp_copyprivate_broadcast - @ stub _vcomp_copyprivate_receive -diff --git a/dlls/vcomp90/vcomp90.spec b/dlls/vcomp90/vcomp90.spec -index 849125f..ba1f414 100644 ---- a/dlls/vcomp90/vcomp90.spec -+++ b/dlls/vcomp90/vcomp90.spec -@@ -1,55 +1,55 @@ - @ stub _vcomp_atomic_add_i1 - @ stub _vcomp_atomic_add_i2 - @ cdecl _vcomp_atomic_add_i4(ptr long) vcomp._vcomp_atomic_add_i4 --@ stub _vcomp_atomic_add_i8 -+@ cdecl _vcomp_atomic_add_i8(ptr int64) vcomp._vcomp_atomic_add_i8 - @ cdecl _vcomp_atomic_add_r4(ptr float) vcomp._vcomp_atomic_add_r4 - @ cdecl _vcomp_atomic_add_r8(ptr double) vcomp._vcomp_atomic_add_r8 - @ stub _vcomp_atomic_and_i1 - @ stub _vcomp_atomic_and_i2 - @ cdecl _vcomp_atomic_and_i4(ptr long) vcomp._vcomp_atomic_and_i4 --@ stub _vcomp_atomic_and_i8 -+@ cdecl _vcomp_atomic_and_i8(ptr int64) vcomp._vcomp_atomic_and_i8 - @ stub _vcomp_atomic_div_i1 - @ stub _vcomp_atomic_div_i2 - @ cdecl _vcomp_atomic_div_i4(ptr long) vcomp._vcomp_atomic_div_i4 --@ stub _vcomp_atomic_div_i8 -+@ cdecl _vcomp_atomic_div_i8(ptr int64) vcomp._vcomp_atomic_div_i8 - @ cdecl _vcomp_atomic_div_r4(ptr float) vcomp._vcomp_atomic_div_r4 - @ cdecl _vcomp_atomic_div_r8(ptr double) vcomp._vcomp_atomic_div_r8 - @ stub _vcomp_atomic_div_ui1 - @ stub _vcomp_atomic_div_ui2 - @ cdecl _vcomp_atomic_div_ui4(ptr long) vcomp._vcomp_atomic_div_ui4 --@ stub _vcomp_atomic_div_ui8 -+@ cdecl _vcomp_atomic_div_ui8(ptr int64) vcomp._vcomp_atomic_div_ui8 - @ stub _vcomp_atomic_mul_i1 - @ stub _vcomp_atomic_mul_i2 - @ cdecl _vcomp_atomic_mul_i4(ptr long) vcomp._vcomp_atomic_mul_i4 --@ stub _vcomp_atomic_mul_i8 -+@ cdecl _vcomp_atomic_mul_i8(ptr int64) vcomp._vcomp_atomic_mul_i8 - @ cdecl _vcomp_atomic_mul_r4(ptr float) vcomp._vcomp_atomic_mul_r4 - @ cdecl _vcomp_atomic_mul_r8(ptr double) vcomp._vcomp_atomic_mul_r8 - @ stub _vcomp_atomic_or_i1 - @ stub _vcomp_atomic_or_i2 - @ cdecl _vcomp_atomic_or_i4(ptr long) vcomp._vcomp_atomic_or_i4 --@ stub _vcomp_atomic_or_i8 -+@ cdecl _vcomp_atomic_or_i8(ptr int64) vcomp._vcomp_atomic_or_i8 - @ stub _vcomp_atomic_shl_i1 - @ stub _vcomp_atomic_shl_i2 - @ cdecl _vcomp_atomic_shl_i4(ptr long) vcomp._vcomp_atomic_shl_i4 --@ stub _vcomp_atomic_shl_i8 -+@ cdecl _vcomp_atomic_shl_i8(ptr long) vcomp._vcomp_atomic_shl_i8 - @ stub _vcomp_atomic_shr_i1 - @ stub _vcomp_atomic_shr_i2 - @ cdecl _vcomp_atomic_shr_i4(ptr long) vcomp._vcomp_atomic_shr_i4 --@ stub _vcomp_atomic_shr_i8 -+@ cdecl _vcomp_atomic_shr_i8(ptr long) vcomp._vcomp_atomic_shr_i8 - @ stub _vcomp_atomic_shr_ui1 - @ stub _vcomp_atomic_shr_ui2 - @ cdecl _vcomp_atomic_shr_ui4(ptr long) vcomp._vcomp_atomic_shr_ui4 --@ stub _vcomp_atomic_shr_ui8 -+@ cdecl _vcomp_atomic_shr_ui8(ptr long) vcomp._vcomp_atomic_shr_ui8 - @ stub _vcomp_atomic_sub_i1 - @ stub _vcomp_atomic_sub_i2 - @ cdecl _vcomp_atomic_sub_i4(ptr long) vcomp._vcomp_atomic_sub_i4 --@ stub _vcomp_atomic_sub_i8 -+@ cdecl _vcomp_atomic_sub_i8(ptr int64) vcomp._vcomp_atomic_sub_i8 - @ cdecl _vcomp_atomic_sub_r4(ptr float) vcomp._vcomp_atomic_sub_r4 - @ cdecl _vcomp_atomic_sub_r8(ptr double) vcomp._vcomp_atomic_sub_r8 - @ stub _vcomp_atomic_xor_i1 - @ stub _vcomp_atomic_xor_i2 - @ cdecl _vcomp_atomic_xor_i4(ptr long) vcomp._vcomp_atomic_xor_i4 --@ stub _vcomp_atomic_xor_i8 -+@ cdecl _vcomp_atomic_xor_i8(ptr int64) vcomp._vcomp_atomic_xor_i8 - @ cdecl _vcomp_barrier() vcomp._vcomp_barrier - @ stub _vcomp_copyprivate_broadcast - @ stub _vcomp_copyprivate_receive --- -2.6.4 - diff --git a/patches/vcomp-Atomic_I8/0003-vcomp-tests-Add-tests-for-64-bit-atomic-instructions.patch b/patches/vcomp-Atomic_I8/0003-vcomp-tests-Add-tests-for-64-bit-atomic-instructions.patch deleted file mode 100644 index 987141a2..00000000 --- a/patches/vcomp-Atomic_I8/0003-vcomp-tests-Add-tests-for-64-bit-atomic-instructions.patch +++ /dev/null @@ -1,249 +0,0 @@ -From 351810ed0612e63620ec612eee12b15e962de6bc Mon Sep 17 00:00:00 2001 -From: Sebastian Lackner -Date: Thu, 14 Jan 2016 07:22:32 +0100 -Subject: vcomp/tests: Add tests for 64-bit atomic instructions. - ---- - dlls/vcomp/tests/vcomp.c | 148 ++++++++++++++++++++++++++++++++++++++++++++++- - 1 file changed, 147 insertions(+), 1 deletion(-) - -diff --git a/dlls/vcomp/tests/vcomp.c b/dlls/vcomp/tests/vcomp.c -index 5c177df..d1c242e 100644 ---- a/dlls/vcomp/tests/vcomp.c -+++ b/dlls/vcomp/tests/vcomp.c -@@ -2,7 +2,7 @@ - * Unit test suite for vcomp - * - * Copyright 2012 Dan Kegel -- * Copyright 2015 Sebastian Lackner -+ * Copyright 2015-2016 Sebastian Lackner - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public -@@ -19,6 +19,7 @@ - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -+#include - #include "wine/test.h" - - static char vcomp_manifest_file[MAX_PATH]; -@@ -35,24 +36,35 @@ typedef CRITICAL_SECTION *omp_lock_t; - typedef CRITICAL_SECTION *omp_nest_lock_t; - - static void (CDECL *p_vcomp_atomic_add_i4)(int *dest, int val); -+static void (CDECL *p_vcomp_atomic_add_i8)(LONG64 *dest, LONG64 val); - static void (CDECL *p_vcomp_atomic_add_r4)(float *dest, float val); - static void (CDECL *p_vcomp_atomic_add_r8)(double *dest, double val); - static void (CDECL *p_vcomp_atomic_and_i4)(int *dest, int val); -+static void (CDECL *p_vcomp_atomic_and_i8)(LONG64 *dest, LONG64 val); - static void (CDECL *p_vcomp_atomic_div_i4)(int *dest, int val); -+static void (CDECL *p_vcomp_atomic_div_i8)(LONG64 *dest, LONG64 val); - static void (CDECL *p_vcomp_atomic_div_r4)(float *dest, float val); - static void (CDECL *p_vcomp_atomic_div_r8)(double *dest, double val); - static void (CDECL *p_vcomp_atomic_div_ui4)(unsigned int *dest, unsigned int val); -+static void (CDECL *p_vcomp_atomic_div_ui8)(ULONG64 *dest, ULONG64 val); - static void (CDECL *p_vcomp_atomic_mul_i4)(int *dest, int val); -+static void (CDECL *p_vcomp_atomic_mul_i8)(LONG64 *dest, LONG64 val); - static void (CDECL *p_vcomp_atomic_mul_r4)(float *dest, float val); - static void (CDECL *p_vcomp_atomic_mul_r8)(double *dest, double val); - static void (CDECL *p_vcomp_atomic_or_i4)(int *dest, int val); -+static void (CDECL *p_vcomp_atomic_or_i8)(LONG64 *dest, LONG64 val); - static void (CDECL *p_vcomp_atomic_shl_i4)(int *dest, int val); -+static void (CDECL *p_vcomp_atomic_shl_i8)(LONG64 *dest, unsigned int val); - static void (CDECL *p_vcomp_atomic_shr_i4)(int *dest, int val); -+static void (CDECL *p_vcomp_atomic_shr_i8)(LONG64 *dest, unsigned int val); - static void (CDECL *p_vcomp_atomic_shr_ui4)(unsigned int *dest, unsigned int val); -+static void (CDECL *p_vcomp_atomic_shr_ui8)(ULONG64 *dest, unsigned int val); - static void (CDECL *p_vcomp_atomic_sub_i4)(int *dest, int val); -+static void (CDECL *p_vcomp_atomic_sub_i8)(LONG64 *dest, LONG64 val); - static void (CDECL *p_vcomp_atomic_sub_r4)(float *dest, float val); - static void (CDECL *p_vcomp_atomic_sub_r8)(double *dest, double val); - static void (CDECL *p_vcomp_atomic_xor_i4)(int *dest, int val); -+static void (CDECL *p_vcomp_atomic_xor_i8)(LONG64 *dest, LONG64 val); - static void (CDECL *p_vcomp_barrier)(void); - static void (CDECL *p_vcomp_enter_critsect)(CRITICAL_SECTION **critsect); - static void (CDECL *p_vcomp_flush)(void); -@@ -134,6 +146,16 @@ static const char vcomp_manifest[] = - - #undef ARCH - -+static const char *debugstr_longlong(ULONGLONG ll) -+{ -+ static char str[17]; -+ if (sizeof(ll) > sizeof(unsigned long) && ll >> 32) -+ sprintf(str, "%lx%08lx", (unsigned long)(ll >> 32), (unsigned long)ll); -+ else -+ sprintf(str, "%lx", (unsigned long)ll); -+ return str; -+} -+ - static void create_vcomp_manifest(void) - { - char temp_path[MAX_PATH]; -@@ -228,24 +250,35 @@ static BOOL init_vcomp(void) - } - - VCOMP_GET_PROC(_vcomp_atomic_add_i4); -+ VCOMP_GET_PROC(_vcomp_atomic_add_i8); - VCOMP_GET_PROC(_vcomp_atomic_add_r4); - VCOMP_GET_PROC(_vcomp_atomic_add_r8); - VCOMP_GET_PROC(_vcomp_atomic_and_i4); -+ VCOMP_GET_PROC(_vcomp_atomic_and_i8); - VCOMP_GET_PROC(_vcomp_atomic_div_i4); -+ VCOMP_GET_PROC(_vcomp_atomic_div_i8); - VCOMP_GET_PROC(_vcomp_atomic_div_r4); - VCOMP_GET_PROC(_vcomp_atomic_div_r8); - VCOMP_GET_PROC(_vcomp_atomic_div_ui4); -+ VCOMP_GET_PROC(_vcomp_atomic_div_ui8); - VCOMP_GET_PROC(_vcomp_atomic_mul_i4); -+ VCOMP_GET_PROC(_vcomp_atomic_mul_i8); - VCOMP_GET_PROC(_vcomp_atomic_mul_r4); - VCOMP_GET_PROC(_vcomp_atomic_mul_r8); - VCOMP_GET_PROC(_vcomp_atomic_or_i4); -+ VCOMP_GET_PROC(_vcomp_atomic_or_i8); - VCOMP_GET_PROC(_vcomp_atomic_shl_i4); -+ VCOMP_GET_PROC(_vcomp_atomic_shl_i8); - VCOMP_GET_PROC(_vcomp_atomic_shr_i4); -+ VCOMP_GET_PROC(_vcomp_atomic_shr_i8); - VCOMP_GET_PROC(_vcomp_atomic_shr_ui4); -+ VCOMP_GET_PROC(_vcomp_atomic_shr_ui8); - VCOMP_GET_PROC(_vcomp_atomic_sub_i4); -+ VCOMP_GET_PROC(_vcomp_atomic_sub_i8); - VCOMP_GET_PROC(_vcomp_atomic_sub_r4); - VCOMP_GET_PROC(_vcomp_atomic_sub_r8); - VCOMP_GET_PROC(_vcomp_atomic_xor_i4); -+ VCOMP_GET_PROC(_vcomp_atomic_xor_i8); - VCOMP_GET_PROC(_vcomp_barrier); - VCOMP_GET_PROC(_vcomp_enter_critsect); - VCOMP_GET_PROC(_vcomp_flush); -@@ -1447,6 +1480,118 @@ static void test_atomic_integer32(void) - } - } - -+static void test_atomic_integer64(void) -+{ -+ struct -+ { -+ void (CDECL *func)(LONG64 *, LONG64); -+ LONG64 v1, v2, expected; -+ } -+ tests1[] = -+ { -+ { p_vcomp_atomic_add_i8, 0x1122334455667788, 0x7766554433221100, -0x7777777777777778 }, -+ { p_vcomp_atomic_and_i8, 0x1122334455667788, 0x7766554433221100, 0x1122114411221100 }, -+ { p_vcomp_atomic_div_i8, 0x7766554433221100, 0x1122334455667788, 6 }, -+ { p_vcomp_atomic_div_i8, 0x7766554433221100, -0x1122334455667788, -6 }, -+ { p_vcomp_atomic_mul_i8, 0x1122334455667788, 0x7766554433221100, 0x3e963337c6000800 }, -+ { p_vcomp_atomic_mul_i8, 0x1122334455667788, -0x7766554433221100, 0xc169ccc839fff800 }, -+ { p_vcomp_atomic_or_i8, 0x1122334455667788, 0x7766554433221100, 0x7766774477667788 }, -+ { p_vcomp_atomic_sub_i8, 0x1122334455667788, 0x7766554433221100, -0x664421ffddbb9978 }, -+ { p_vcomp_atomic_xor_i8, 0x1122334455667788, 0x7766554433221100, 0x6644660066446688 }, -+ }; -+ struct -+ { -+ void (CDECL *func)(LONG64 *, unsigned int); -+ LONG64 v1; -+ unsigned int v2; -+ LONG64 expected; -+ BOOL todo; -+ } -+ tests2[] = -+ { -+ { p_vcomp_atomic_shl_i8, 0x1122334455667788, 3, -0x76ee65dd54cc43c0 }, -+ { p_vcomp_atomic_shl_i8, 0x1122334455667788, 60, 0x8000000000000000 }, -+ { p_vcomp_atomic_shl_i8, -0x1122334455667788, 3, 0x76ee65dd54cc43c0 }, -+ { p_vcomp_atomic_shr_i8, 0x1122334455667788, 3, 0x22446688aaccef1 }, -+ { p_vcomp_atomic_shr_i8, 0x1122334455667788, 60, 1 }, -+ { p_vcomp_atomic_shr_i8, -0x1122334455667788, 3, -0x22446688aaccef1 }, -+ #if defined(__i386__) -+ { p_vcomp_atomic_shl_i8, 0x1122334455667788, 64, 0, TRUE }, -+ { p_vcomp_atomic_shl_i8, 0x1122334455667788, 67, 0, TRUE }, -+ { p_vcomp_atomic_shr_i8, 0x1122334455667788, 64, 0, TRUE }, -+ { p_vcomp_atomic_shr_i8, 0x1122334455667788, 67, 0, TRUE }, -+ #elif defined(__x86_64__) -+ { p_vcomp_atomic_shl_i8, 0x1122334455667788, 64, 0x1122334455667788 }, -+ { p_vcomp_atomic_shl_i8, 0x1122334455667788, 67, -0x76ee65dd54cc43c0 }, -+ { p_vcomp_atomic_shr_i8, 0x1122334455667788, 64, 0x1122334455667788 }, -+ { p_vcomp_atomic_shr_i8, 0x1122334455667788, 67, 0x22446688aaccef1 }, -+ #endif -+ }; -+ struct -+ { -+ void (CDECL *func)(ULONG64 *, ULONG64); -+ ULONG64 v1, v2, expected; -+ } -+ tests3[] = -+ { -+ { p_vcomp_atomic_div_ui8, 0x7766554455667788, 0x1122334433221100, 6 }, -+ { p_vcomp_atomic_div_ui8, 0x7766554455667788, 0xeeddccbbaa998878, 0 }, -+ }; -+ struct -+ { -+ void (CDECL *func)(ULONG64 *, unsigned int); -+ ULONG64 v1; -+ unsigned int v2; -+ ULONG64 expected; -+ BOOL todo; -+ } -+ tests4[] = -+ { -+ { p_vcomp_atomic_shr_ui8, 0x1122334455667788, 3, 0x22446688aaccef1 }, -+ { p_vcomp_atomic_shr_ui8, 0x1122334455667788, 60, 1 }, -+ { p_vcomp_atomic_shr_ui8, 0xeeddccbbaa998878, 3, 0x1ddbb9977553310f }, -+ #if defined(__i386__) -+ { p_vcomp_atomic_shr_ui8, 0x1122334455667788, 64, 0, TRUE }, -+ { p_vcomp_atomic_shr_ui8, 0x1122334455667788, 67, 0, TRUE }, -+ #elif defined(__x86_64__) -+ { p_vcomp_atomic_shr_ui8, 0x1122334455667788, 64, 0x1122334455667788 }, -+ { p_vcomp_atomic_shr_ui8, 0x1122334455667788, 67, 0x22446688aaccef1 }, -+ #endif -+ }; -+ int i; -+ -+ for (i = 0; i < sizeof(tests1)/sizeof(tests1[0]); i++) -+ { -+ LONG64 val = tests1[i].v1; -+ tests1[i].func(&val, tests1[i].v2); -+ ok(val == tests1[i].expected, "test %d: unexpectedly got %s\n", i, debugstr_longlong(val)); -+ } -+ for (i = 0; i < sizeof(tests2)/sizeof(tests2[0]); i++) -+ { -+ LONG64 val = tests2[i].v1; -+ tests2[i].func(&val, tests2[i].v2); -+ if (!tests2[i].todo) -+ ok(val == tests2[i].expected, "test %d: unexpectedly got %s\n", i, debugstr_longlong(val)); -+ else todo_wine -+ ok(val == tests2[i].expected, "test %d: unexpectedly got %s\n", i, debugstr_longlong(val)); -+ } -+ for (i = 0; i < sizeof(tests3)/sizeof(tests3[0]); i++) -+ { -+ ULONG64 val = tests3[i].v1; -+ tests3[i].func(&val, tests3[i].v2); -+ ok(val == tests3[i].expected, "test %d: unexpectedly got %s\n", i, debugstr_longlong(val)); -+ } -+ for (i = 0; i < sizeof(tests4)/sizeof(tests4[0]); i++) -+ { -+ ULONG64 val = tests4[i].v1; -+ tests4[i].func(&val, tests4[i].v2); -+ if (!tests4[i].todo) -+ ok(val == tests4[i].expected, "test %d: unexpectedly got %s\n", i, debugstr_longlong(val)); -+ else todo_wine -+ ok(val == tests4[i].expected, "test %d: unexpectedly got %s\n", i, debugstr_longlong(val)); -+ } -+} -+ - static void test_atomic_float(void) - { - struct -@@ -1516,6 +1661,7 @@ START_TEST(vcomp) - test_omp_init_lock(); - test_omp_init_nest_lock(); - test_atomic_integer32(); -+ test_atomic_integer64(); - test_atomic_float(); - test_atomic_double(); - --- -2.6.4 - diff --git a/patches/vcomp-Atomic_I8/definition b/patches/vcomp-Atomic_I8/definition deleted file mode 100644 index 61f434cc..00000000 --- a/patches/vcomp-Atomic_I8/definition +++ /dev/null @@ -1 +0,0 @@ -Fixes: Implement 64-bit atomic instructions in OpenMP diff --git a/patches/wined3d-CSMT_Main/definition b/patches/wined3d-CSMT_Main/definition index 3bfad6cd..e13a8380 100644 --- a/patches/wined3d-CSMT_Main/definition +++ b/patches/wined3d-CSMT_Main/definition @@ -8,3 +8,6 @@ IfDefined: STAGING_CSMT # Known issues: # https://bugs.wine-staging.com/buglist.cgi?component=Bugs&keywords=csmt%2C%20&keywords_type=allwords&list_id=3690&query_format=advanced&resolution=--- + +# Temporary disabled, needs rebasing +Disabled: true