From e28edf1951ff90d3b3ade754826526ce191477a3 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Thu, 3 Aug 2017 13:41:34 +0200 Subject: [PATCH] Rebase against 2d9e894d285937716a4541c7fab9152fdf0b495f. --- ...w-changing-the-opengl-pixel-format-o.patch | 22 +++++----- ...-sinh-cosh-exp-pow-with-higher-preci.patch | 42 +++++++++---------- patches/patchinstall.sh | 18 +------- patches/wined3d-Backup_Window/definition | 1 + .../wined3d-CSMT_Main/9999-IfDefined.patch | 14 +++---- 5 files changed, 41 insertions(+), 56 deletions(-) create mode 100644 patches/wined3d-Backup_Window/definition diff --git a/patches/d3d9-DesktopWindow/0001-winex11.drv-Allow-changing-the-opengl-pixel-format-o.patch b/patches/d3d9-DesktopWindow/0001-winex11.drv-Allow-changing-the-opengl-pixel-format-o.patch index 16895bcf..4fc19c50 100644 --- a/patches/d3d9-DesktopWindow/0001-winex11.drv-Allow-changing-the-opengl-pixel-format-o.patch +++ b/patches/d3d9-DesktopWindow/0001-winex11.drv-Allow-changing-the-opengl-pixel-format-o.patch @@ -1,4 +1,4 @@ -From 68c5c27b4867a08482774a506095736107631d38 Mon Sep 17 00:00:00 2001 +From 6ef722e8ff0af86432f13d5082369afdead6645c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Wed, 3 Jun 2015 22:57:21 +0200 Subject: winex11.drv: Allow changing the opengl pixel format on the desktop @@ -43,10 +43,10 @@ index e1d6d4c97c2..bf6a9a138dd 100644 swapchain = (IDXGISwapChain *)0xdeadbeef; device = (ID3D10Device1 *)0xdeadbeef; diff --git a/dlls/d3d11/tests/d3d11.c b/dlls/d3d11/tests/d3d11.c -index 0d473344c2c..a077ce0aaa9 100644 +index 9ce72ca853e..f8de8d59dbb 100644 --- a/dlls/d3d11/tests/d3d11.c +++ b/dlls/d3d11/tests/d3d11.c -@@ -1517,10 +1517,22 @@ static void test_create_device(void) +@@ -1596,10 +1596,22 @@ static void test_create_device(void) hr = D3D11CreateDeviceAndSwapChain(NULL, D3D_DRIVER_TYPE_HARDWARE, NULL, 0, NULL, 0, D3D11_SDK_VERSION, &swapchain_desc, &swapchain, &device, &feature_level, &immediate_context); todo_wine ok(hr == DXGI_ERROR_INVALID_CALL, "D3D11CreateDeviceAndSwapChain returned %#x.\n", hr); @@ -74,11 +74,11 @@ index 0d473344c2c..a077ce0aaa9 100644 swapchain = (IDXGISwapChain *)0xdeadbeef; device = (ID3D11Device *)0xdeadbeef; diff --git a/dlls/d3d9/tests/device.c b/dlls/d3d9/tests/device.c -index feb1efcb94b..19bfcb5bc3c 100644 +index 50752f86ad6..27ae47d9fed 100644 --- a/dlls/d3d9/tests/device.c +++ b/dlls/d3d9/tests/device.c -@@ -11506,6 +11506,21 @@ static void test_format_unknown(void) - DestroyWindow(window); +@@ -11575,6 +11575,21 @@ static void test_destroyed_window(void) + ok(!refcount, "Device has %u references left.\n", refcount); } +static void test_desktop_window(void) @@ -99,19 +99,19 @@ index feb1efcb94b..19bfcb5bc3c 100644 START_TEST(device) { WNDCLASSA wc = {0}; -@@ -11624,6 +11639,7 @@ START_TEST(device) - test_get_render_target_data(); +@@ -11694,6 +11709,7 @@ START_TEST(device) test_render_target_device_mismatch(); test_format_unknown(); + test_destroyed_window(); + test_desktop_window(); UnregisterClassA("d3d9_test_wc", GetModuleHandleA(NULL)); } diff --git a/dlls/winex11.drv/opengl.c b/dlls/winex11.drv/opengl.c -index 3dab687197e..72056adb7c9 100644 +index f18e01f4dfc..1f4208adea4 100644 --- a/dlls/winex11.drv/opengl.c +++ b/dlls/winex11.drv/opengl.c -@@ -1473,12 +1473,15 @@ static BOOL set_pixel_format(HDC hdc, int format, BOOL allow_change) +@@ -1484,12 +1484,15 @@ static BOOL set_pixel_format(HDC hdc, int format, BOOL allow_change) TRACE("(%p,%d)\n", hdc, format); @@ -129,5 +129,5 @@ index 3dab687197e..72056adb7c9 100644 if (!fmt) { -- -2.11.0 +2.13.1 diff --git a/patches/msvcrt-Math_Precision/0001-msvcrt-Calculate-sinh-cosh-exp-pow-with-higher-preci.patch b/patches/msvcrt-Math_Precision/0001-msvcrt-Calculate-sinh-cosh-exp-pow-with-higher-preci.patch index 11d5fef1..c2447ffc 100644 --- a/patches/msvcrt-Math_Precision/0001-msvcrt-Calculate-sinh-cosh-exp-pow-with-higher-preci.patch +++ b/patches/msvcrt-Math_Precision/0001-msvcrt-Calculate-sinh-cosh-exp-pow-with-higher-preci.patch @@ -1,4 +1,4 @@ -From 94ca142c68870be4e9dcb898fdc01d574de68e33 Mon Sep 17 00:00:00 2001 +From eed82dcb03b097fe5e35ad02299977c7298c08aa Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Fri, 10 Apr 2015 07:51:16 +0200 Subject: msvcrt: Calculate sinh/cosh/exp/pow with higher precision. (v2) @@ -9,10 +9,10 @@ Based on a patch by Zheng Chen. 1 file changed, 59 insertions(+), 4 deletions(-) diff --git a/dlls/msvcrt/math.c b/dlls/msvcrt/math.c -index 2001d44a0b4..04b14788919 100644 +index a94c34ac80e..6736f03ec4c 100644 --- a/dlls/msvcrt/math.c +++ b/dlls/msvcrt/math.c -@@ -59,6 +59,61 @@ static MSVCRT_matherr_func MSVCRT_default_matherr_func = NULL; +@@ -64,6 +64,61 @@ static MSVCRT_matherr_func MSVCRT_default_matherr_func = NULL; static BOOL sse2_supported; static BOOL sse2_enabled; @@ -74,42 +74,42 @@ index 2001d44a0b4..04b14788919 100644 void msvcrt_init_math(void) { sse2_supported = sse2_enabled = IsProcessorFeaturePresent( PF_XMMI64_INSTRUCTIONS_AVAILABLE ); -@@ -399,7 +454,7 @@ double CDECL MSVCRT_cos( double x ) +@@ -476,7 +531,7 @@ double CDECL MSVCRT_cos( double x ) + */ double CDECL MSVCRT_cosh( double x ) { - if (isnan(x)) *MSVCRT__errno() = MSVCRT_EDOM; -- return cosh(x); -+ return precise_cosh(x); +- double ret = cosh(x); ++ double ret = precise_cosh(x); + if (isnan(x)) math_error(_DOMAIN, "cosh", x, 0, ret); + return ret; } - - /********************************************************************* -@@ -407,7 +462,7 @@ double CDECL MSVCRT_cosh( double x ) +@@ -486,7 +541,7 @@ double CDECL MSVCRT_cosh( double x ) */ double CDECL MSVCRT_exp( double x ) { - double ret = exp(x); + double ret = precise_exp(x); - if (isnan(x)) *MSVCRT__errno() = MSVCRT_EDOM; - else if (isfinite(x) && !isfinite(ret)) *MSVCRT__errno() = MSVCRT_ERANGE; - return ret; -@@ -448,7 +503,7 @@ double CDECL MSVCRT_log10( double x ) + if (isnan(x)) math_error(_DOMAIN, "exp", x, 0, ret); + else if (isfinite(x) && !ret) math_error(_UNDERFLOW, "exp", x, 0, ret); + else if (isfinite(x) && !isfinite(ret)) math_error(_OVERFLOW, "exp", x, 0, ret); +@@ -531,7 +586,7 @@ double CDECL MSVCRT_log10( double x ) double CDECL MSVCRT_pow( double x, double y ) { /* FIXME: If x < 0 and y is not integral, set EDOM */ - double z = pow(x,y); + double z = precise_pow(x, y); - if (!isfinite(z)) *MSVCRT__errno() = MSVCRT_EDOM; + if (!isfinite(z)) math_error(_DOMAIN, "pow", x, y, z); return z; } -@@ -468,7 +523,7 @@ double CDECL MSVCRT_sin( double x ) +@@ -551,7 +606,7 @@ double CDECL MSVCRT_sin( double x ) + */ double CDECL MSVCRT_sinh( double x ) { - if (isnan(x)) *MSVCRT__errno() = MSVCRT_EDOM; -- return sinh(x); -+ return precise_sinh(x); +- double ret = sinh(x); ++ double ret = precise_sinh(x); + if (isnan(x)) math_error(_DOMAIN, "sinh", x, 0, ret); + return ret; } - - /********************************************************************* -- 2.13.1 diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index de55ac9b..2e5b8f22 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -52,7 +52,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "619b7e07d7ee1a20bb816ebec8e40eaedc47f870" + echo "2d9e894d285937716a4541c7fab9152fdf0b495f" } # Show version information @@ -438,7 +438,6 @@ patch_enable_all () enable_winecfg_Unmounted_Devices="$1" enable_wined3d_1DTextures="$1" enable_wined3d_Accounting="$1" - enable_wined3d_Backup_Window="$1" enable_wined3d_CSMT_Helper="$1" enable_wined3d_CSMT_Main="$1" enable_wined3d_Copy_Resource_Typeless="$1" @@ -1582,9 +1581,6 @@ patch_enable () wined3d-Accounting) enable_wined3d_Accounting="$2" ;; - wined3d-Backup_Window) - enable_wined3d_Backup_Window="$2" - ;; wined3d-CSMT_Helper) enable_wined3d_CSMT_Helper="$2" ;; @@ -9350,18 +9346,6 @@ if test "$enable_wined3d_Accounting" -eq 1; then ) >> "$patchlist" fi -# Patchset wined3d-Backup_Window -# | -# | Modified files: -# | * dlls/wined3d/context.c -# | -if test "$enable_wined3d_Backup_Window" -eq 1; then - patch_apply wined3d-Backup_Window/0001-wined3d-Fix-context-backup-window-handling.patch - ( - printf '%s\n' '+ { "Sebastian Lackner", "wined3d: Fix context backup window handling.", 1 },'; - ) >> "$patchlist" -fi - # Patchset wined3d-Copy_Resource_Typeless # | # | This patchset has the following (direct or indirect) dependencies: diff --git a/patches/wined3d-Backup_Window/definition b/patches/wined3d-Backup_Window/definition new file mode 100644 index 00000000..6e4f1a82 --- /dev/null +++ b/patches/wined3d-Backup_Window/definition @@ -0,0 +1 @@ +Disabled: true diff --git a/patches/wined3d-CSMT_Main/9999-IfDefined.patch b/patches/wined3d-CSMT_Main/9999-IfDefined.patch index 5a41431b..f0338c7b 100644 --- a/patches/wined3d-CSMT_Main/9999-IfDefined.patch +++ b/patches/wined3d-CSMT_Main/9999-IfDefined.patch @@ -47,7 +47,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c }; struct wined3d_cs_add_dirty_texture_region -@@ -2241,6 +2244,53 @@ void wined3d_cs_emit_update_sub_resource(struct wined3d_cs *cs, struct wined3d_r +@@ -2242,6 +2245,53 @@ void wined3d_cs_emit_update_sub_resource(struct wined3d_cs *cs, struct wined3d_r unsigned int slice_pitch) { struct wined3d_cs_update_sub_resource *op; @@ -101,7 +101,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op = cs->ops->require_space(cs, sizeof(*op), WINED3D_CS_QUEUE_MAP); op->opcode = WINED3D_CS_OP_UPDATE_SUB_RESOURCE; -@@ -2254,8 +2304,10 @@ void wined3d_cs_emit_update_sub_resource(struct wined3d_cs *cs, struct wined3d_r +@@ -2255,8 +2305,10 @@ void wined3d_cs_emit_update_sub_resource(struct wined3d_cs *cs, struct wined3d_r wined3d_resource_acquire(resource); cs->ops->submit(cs, WINED3D_CS_QUEUE_MAP); @@ -112,7 +112,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c cs->ops->finish(cs, WINED3D_CS_QUEUE_MAP); } -@@ -2558,6 +2610,13 @@ static void (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void +@@ -2559,6 +2611,13 @@ static void (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void /* WINED3D_CS_OP_COPY_STRUCTURE_COUNT */ wined3d_cs_exec_copy_structure_count, }; @@ -126,7 +126,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c static void *wined3d_cs_st_require_space(struct wined3d_cs *cs, size_t size, enum wined3d_cs_queue_id queue_id) { if (size > (cs->data_size - cs->end)) -@@ -2611,6 +2670,9 @@ static void wined3d_cs_st_finish(struct wined3d_cs *cs, enum wined3d_cs_queue_id +@@ -2612,6 +2671,9 @@ static void wined3d_cs_st_finish(struct wined3d_cs *cs, enum wined3d_cs_queue_id static const struct wined3d_cs_ops wined3d_cs_st_ops = { @@ -136,7 +136,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c wined3d_cs_st_require_space, wined3d_cs_st_submit, wined3d_cs_st_finish, -@@ -2643,6 +2705,21 @@ static void wined3d_cs_mt_submit(struct wined3d_cs *cs, enum wined3d_cs_queue_id +@@ -2644,6 +2706,21 @@ static void wined3d_cs_mt_submit(struct wined3d_cs *cs, enum wined3d_cs_queue_id wined3d_cs_queue_submit(&cs->queue[queue_id], cs); } @@ -158,7 +158,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c static void *wined3d_cs_queue_require_space(struct wined3d_cs_queue *queue, size_t size, struct wined3d_cs *cs) { size_t queue_size = ARRAY_SIZE(queue->data); -@@ -2704,6 +2781,16 @@ static void *wined3d_cs_queue_require_space(struct wined3d_cs_queue *queue, size +@@ -2705,6 +2782,16 @@ static void *wined3d_cs_queue_require_space(struct wined3d_cs_queue *queue, size return packet->data; } @@ -175,7 +175,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c static void *wined3d_cs_mt_require_space(struct wined3d_cs *cs, size_t size, enum wined3d_cs_queue_id queue_id) { if (cs->thread_id == GetCurrentThreadId()) -@@ -2723,6 +2810,9 @@ static void wined3d_cs_mt_finish(struct wined3d_cs *cs, enum wined3d_cs_queue_id +@@ -2724,6 +2811,9 @@ static void wined3d_cs_mt_finish(struct wined3d_cs *cs, enum wined3d_cs_queue_id static const struct wined3d_cs_ops wined3d_cs_mt_ops = {