diff --git a/patches/cmd-Fix_Sharing/0001-cmd-Fix-sharing-permissions-for-pipe-file.patch b/patches/cmd-Fix_Sharing/0001-cmd-Fix-sharing-permissions-for-pipe-file.patch deleted file mode 100644 index 5360b1db..00000000 --- a/patches/cmd-Fix_Sharing/0001-cmd-Fix-sharing-permissions-for-pipe-file.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 11e2cd323ec804c3c28f6f0b29182c17c85349c7 Mon Sep 17 00:00:00 2001 -From: Sebastian Lackner -Date: Thu, 7 Jan 2016 05:38:36 +0100 -Subject: cmd: Fix sharing permissions for pipe file. - ---- - programs/cmd/tests/test_builtins.cmd.exp | 2 +- - programs/cmd/wcmdmain.c | 6 +++--- - 2 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/programs/cmd/tests/test_builtins.cmd.exp b/programs/cmd/tests/test_builtins.cmd.exp -index 811ba9f..7543b53 100644 ---- a/programs/cmd/tests/test_builtins.cmd.exp -+++ b/programs/cmd/tests/test_builtins.cmd.exp -@@ -1207,7 +1207,7 @@ passed - --- a batch file can delete itself - file correctly deleted - --- a batch file can alter itself --@todo_wine@bar -+bar - ---------- Testing copy - Passed: Found expected dummy.file - Passed: Found expected dir1\file1 -diff --git a/programs/cmd/wcmdmain.c b/programs/cmd/wcmdmain.c -index bf988f5..de92e0a 100644 ---- a/programs/cmd/wcmdmain.c -+++ b/programs/cmd/wcmdmain.c -@@ -1364,7 +1364,7 @@ void WCMD_execute (const WCHAR *command, const WCHAR *redirects, - if (cmdList && (*cmdList)->pipeFile[0] != 0x00) { - WINE_TRACE("Input coming from %s\n", wine_dbgstr_w((*cmdList)->pipeFile)); - h = CreateFileW((*cmdList)->pipeFile, GENERIC_READ, -- FILE_SHARE_READ, &sa, OPEN_EXISTING, -+ FILE_SHARE_READ | FILE_SHARE_WRITE, &sa, OPEN_EXISTING, - FILE_ATTRIBUTE_NORMAL | FILE_FLAG_DELETE_ON_CLOSE, NULL); - if (h == INVALID_HANDLE_VALUE) { - WCMD_print_error (); -@@ -1425,8 +1425,8 @@ void WCMD_execute (const WCHAR *command, const WCHAR *redirects, - - } else { - WCHAR *param = WCMD_parameter(p, 0, NULL, FALSE, FALSE); -- h = CreateFileW(param, GENERIC_WRITE, 0, &sa, creationDisposition, -- FILE_ATTRIBUTE_NORMAL, NULL); -+ h = CreateFileW(param, GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_DELETE, -+ &sa, creationDisposition, FILE_ATTRIBUTE_NORMAL, NULL); - if (h == INVALID_HANDLE_VALUE) { - WCMD_print_error (); - heap_free(cmd); --- -2.6.4 - diff --git a/patches/cmd-Fix_Sharing/definition b/patches/cmd-Fix_Sharing/definition deleted file mode 100644 index e27214dd..00000000 --- a/patches/cmd-Fix_Sharing/definition +++ /dev/null @@ -1 +0,0 @@ -Fixes: [34174] Fix sharing violation on temp file for piped output diff --git a/patches/d3dx9_36-DDS/0001-d3dx9_36-Add-support-for-FOURCC-surface-to-save_dds_.patch b/patches/d3dx9_36-DDS/0001-d3dx9_36-Add-support-for-FOURCC-surface-to-save_dds_.patch new file mode 100644 index 00000000..c60dd875 --- /dev/null +++ b/patches/d3dx9_36-DDS/0001-d3dx9_36-Add-support-for-FOURCC-surface-to-save_dds_.patch @@ -0,0 +1,32 @@ +From cfbee3f0f952769dbf663489c2a209493c7412d3 Mon Sep 17 00:00:00 2001 +From: Christian Costa +Date: Sun, 11 Jan 2015 16:18:03 +0100 +Subject: d3dx9_36: Add support for FOURCC surface to + save_dds_surface_to_memory. + +--- + dlls/d3dx9_36/surface.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/dlls/d3dx9_36/surface.c b/dlls/d3dx9_36/surface.c +index 4fa2a76..58b676d 100644 +--- a/dlls/d3dx9_36/surface.c ++++ b/dlls/d3dx9_36/surface.c +@@ -311,6 +311,14 @@ static HRESULT d3dformat_to_dds_pixel_format(struct dds_pixel_format *pixel_form + } + } + ++ /* Reuse dds_fourcc_to_d3dformat as D3DFORMAT and FOURCC are DWORD with same values */ ++ if (dds_fourcc_to_d3dformat(d3dformat) != D3DFMT_UNKNOWN) ++ { ++ pixel_format->flags |= DDS_PF_FOURCC; ++ pixel_format->fourcc = d3dformat; ++ return D3D_OK; ++ } ++ + WARN("Unknown pixel format %#x\n", d3dformat); + return E_NOTIMPL; + } +-- +2.6.4 + diff --git a/patches/d3dx9_36-DDS/0001-d3dx9_36-tests-Add-D3DXSaveSurfaceToFileInMemory-D3D.patch b/patches/d3dx9_36-DDS/0001-d3dx9_36-tests-Add-D3DXSaveSurfaceToFileInMemory-D3D.patch deleted file mode 100644 index 12d0b9b5..00000000 --- a/patches/d3dx9_36-DDS/0001-d3dx9_36-tests-Add-D3DXSaveSurfaceToFileInMemory-D3D.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 68efe5449591b9b1366d66d87fff1a8c9f8002e5 Mon Sep 17 00:00:00 2001 -From: Alistair Leslie-Hughes -Date: Fri, 16 Oct 2015 14:06:30 +1100 -Subject: d3dx9_36/tests: Add D3DXSaveSurfaceToFileInMemory D3DXIFF_DDS tests - -Also updates the structure dds_header to be the same as d3dx9_36/surface.c. - -Signed-off-by: Alistair Leslie-Hughes ---- - dlls/d3dx9_36/tests/surface.c | 34 +++++++++++++++++++++++++++++++++- - 1 file changed, 33 insertions(+), 1 deletion(-) - -diff --git a/dlls/d3dx9_36/tests/surface.c b/dlls/d3dx9_36/tests/surface.c -index 1697a03..77bd142 100644 ---- a/dlls/d3dx9_36/tests/surface.c -+++ b/dlls/d3dx9_36/tests/surface.c -@@ -211,7 +211,9 @@ struct dds_header - struct dds_pixel_format pixel_format; - DWORD caps; - DWORD caps2; -- DWORD reserved2[3]; -+ DWORD caps3; -+ DWORD caps4; -+ DWORD reserved2; - }; - - /* fills dds_header with reasonable default values */ -@@ -1231,6 +1233,7 @@ static void test_D3DXSaveSurfaceToFileInMemory(IDirect3DDevice9 *device) - RECT rect; - ID3DXBuffer *buffer; - IDirect3DSurface9 *surface; -+ struct dds_header *header; - - hr = IDirect3DDevice9_CreateOffscreenPlainSurface(device, 4, 4, D3DFMT_A8R8G8B8, D3DPOOL_SCRATCH, &surface, NULL); - if (FAILED(hr)) { -@@ -1248,6 +1251,35 @@ static void test_D3DXSaveSurfaceToFileInMemory(IDirect3DDevice9 *device) - ID3DXBuffer_Release(buffer); - } - -+ SetRect(&rect, 0, 0, 0, 0); -+ hr = D3DXSaveSurfaceToFileInMemory(&buffer, D3DXIFF_DDS, surface, NULL, &rect); -+ todo_wine ok(hr == D3D_OK || broken(hr == D3DERR_INVALIDCALL), "D3DXSaveSurfaceToFileInMemory returned %#x, expected %#x\n", hr, D3D_OK); -+ if (SUCCEEDED(hr)) { -+ header = ID3DXBuffer_GetBufferPointer(buffer); -+ -+ ok(header->magic == MAKEFOURCC('D','D','S',' '), "Invalid DDS signature\n"); -+ todo_wine ok(header->size == 124, "Invalid DDS size %d\n", header->size); -+ ok(header->height == 0, "Wrong height %d\n", header->height); -+ ok(header->width == 0, "Wrong width %d\n", header->width); -+ ok(header->flags == (DDS_CAPS | DDS_HEIGHT | DDS_WIDTH | DDS_PIXELFORMAT), -+ "Wrong flags %x\n", header->flags); -+ ID3DXBuffer_Release(buffer); -+ } -+ -+ hr = D3DXSaveSurfaceToFileInMemory(&buffer, D3DXIFF_DDS, surface, NULL, NULL); -+ ok(hr == D3D_OK || broken(hr == D3DERR_INVALIDCALL), "D3DXSaveSurfaceToFileInMemory returned %#x, expected %#x\n", hr, D3D_OK); -+ if (SUCCEEDED(hr)) { -+ header = ID3DXBuffer_GetBufferPointer(buffer); -+ -+ ok(header->magic == MAKEFOURCC('D','D','S',' '), "Invalid DDS signature\n"); -+ todo_wine ok(header->size == 124, "Invalid DDS size %d\n", header->size); -+ ok(header->height == 4, "Wrong height %d\n", header->height); -+ ok(header->width == 4, "Wrong width %d\n", header->width); -+ todo_wine ok(header->flags == (DDS_CAPS | DDS_HEIGHT | DDS_WIDTH | DDS_PIXELFORMAT), -+ "Wrong flags %x\n", header->flags); -+ ID3DXBuffer_Release(buffer); -+ } -+ - IDirect3DSurface9_Release(surface); - } - --- -2.6.2 - diff --git a/patches/d3dx9_36-DDS/0002-d3dx9_36-Fix-several-issues-in-save_dds_surface_to_m.patch b/patches/d3dx9_36-DDS/0002-d3dx9_36-Fix-several-issues-in-save_dds_surface_to_m.patch deleted file mode 100644 index 0760163e..00000000 --- a/patches/d3dx9_36-DDS/0002-d3dx9_36-Fix-several-issues-in-save_dds_surface_to_m.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 88f02c608de86c125cbddd543c34ea2bfce30993 Mon Sep 17 00:00:00 2001 -From: Christian Costa -Date: Sun, 11 Jan 2015 16:09:43 +0100 -Subject: d3dx9_36: Fix several issues in save_dds_surface_to_memory. - -The different fixes are: -- Fix header size of the DDS file -- Remove DDS_MIPMAPCOUNT as mipmap levels are not supported yet -- Fix DDS_WIDTH define to correct value 4 -- Do not set depth and miplevels fields as their flags are not set (to match native) ---- - dlls/d3dx9_36/surface.c | 7 +++---- - dlls/d3dx9_36/tests/surface.c | 2 +- - 2 files changed, 4 insertions(+), 5 deletions(-) - -diff --git a/dlls/d3dx9_36/surface.c b/dlls/d3dx9_36/surface.c -index b8bb710..6f6132c 100644 ---- a/dlls/d3dx9_36/surface.c -+++ b/dlls/d3dx9_36/surface.c -@@ -487,13 +487,12 @@ static HRESULT save_dds_surface_to_memory(ID3DXBuffer **dst_buffer, IDirect3DSur - - memset(header, 0, sizeof(*header)); - header->signature = MAKEFOURCC('D','D','S',' '); -- header->size = sizeof(*header); -- header->flags = DDS_CAPS | DDS_HEIGHT | DDS_WIDTH | DDS_PITCH | DDS_PIXELFORMAT | DDS_MIPMAPCOUNT; -+ /* The signature is not really part of the DDS header */ -+ header->size = sizeof(*header) - sizeof(header->signature); -+ header->flags = DDS_CAPS | DDS_HEIGHT | DDS_WIDTH | DDS_PITCH | DDS_PIXELFORMAT; - header->height = src_desc.Height; - header->width = src_desc.Width; - header->pitch_or_linear_size = dst_pitch; -- header->depth = 1; -- header->miplevels = 1; - header->caps = DDS_CAPS_TEXTURE; - hr = d3dformat_to_dds_pixel_format(&header->pixel_format, src_desc.Format); - if (FAILED(hr)) -diff --git a/dlls/d3dx9_36/tests/surface.c b/dlls/d3dx9_36/tests/surface.c -index 77bd142..f04fa67 100644 ---- a/dlls/d3dx9_36/tests/surface.c -+++ b/dlls/d3dx9_36/tests/surface.c -@@ -1272,7 +1272,7 @@ static void test_D3DXSaveSurfaceToFileInMemory(IDirect3DDevice9 *device) - header = ID3DXBuffer_GetBufferPointer(buffer); - - ok(header->magic == MAKEFOURCC('D','D','S',' '), "Invalid DDS signature\n"); -- todo_wine ok(header->size == 124, "Invalid DDS size %d\n", header->size); -+ ok(header->size == 124, "Invalid DDS size %d\n", header->size); - ok(header->height == 4, "Wrong height %d\n", header->height); - ok(header->width == 4, "Wrong width %d\n", header->width); - todo_wine ok(header->flags == (DDS_CAPS | DDS_HEIGHT | DDS_WIDTH | DDS_PIXELFORMAT), --- -2.6.2 - diff --git a/patches/d3dx9_36-DDS/0004-d3dx9_36-Improve-D3DXSaveTextureToFile-to-save-simpl.patch b/patches/d3dx9_36-DDS/0002-d3dx9_36-Improve-D3DXSaveTextureToFile-to-save-simpl.patch similarity index 95% rename from patches/d3dx9_36-DDS/0004-d3dx9_36-Improve-D3DXSaveTextureToFile-to-save-simpl.patch rename to patches/d3dx9_36-DDS/0002-d3dx9_36-Improve-D3DXSaveTextureToFile-to-save-simpl.patch index 218f7f61..43ababf4 100644 --- a/patches/d3dx9_36-DDS/0004-d3dx9_36-Improve-D3DXSaveTextureToFile-to-save-simpl.patch +++ b/patches/d3dx9_36-DDS/0002-d3dx9_36-Improve-D3DXSaveTextureToFile-to-save-simpl.patch @@ -1,4 +1,4 @@ -From 560676d5a7e14b73de4a1be6e47ee37754c0c331 Mon Sep 17 00:00:00 2001 +From f9702dad952fdc873a72b4a2781bf2171ff3f814 Mon Sep 17 00:00:00 2001 From: Christian Costa Date: Sun, 11 Jan 2015 16:29:30 +0100 Subject: d3dx9_36: Improve D3DXSaveTextureToFile to save simple texture to dds @@ -24,10 +24,10 @@ index 79f3b76..41bed31 100644 unsigned short float_32_to_16(const float in) DECLSPEC_HIDDEN; float float_16_to_32(const unsigned short in) DECLSPEC_HIDDEN; diff --git a/dlls/d3dx9_36/surface.c b/dlls/d3dx9_36/surface.c -index 629c94c..0a9c177 100644 +index 58b676d..79e8d53 100644 --- a/dlls/d3dx9_36/surface.c +++ b/dlls/d3dx9_36/surface.c -@@ -530,6 +530,68 @@ static HRESULT save_dds_surface_to_memory(ID3DXBuffer **dst_buffer, IDirect3DSur +@@ -527,6 +527,68 @@ static HRESULT save_dds_surface_to_memory(ID3DXBuffer **dst_buffer, IDirect3DSur return D3D_OK; } @@ -97,7 +97,7 @@ index 629c94c..0a9c177 100644 const D3DBOX *dst_box, const void *src_data, const D3DBOX *src_box, DWORD filter, D3DCOLOR color_key, const D3DXIMAGE_INFO *src_info) diff --git a/dlls/d3dx9_36/texture.c b/dlls/d3dx9_36/texture.c -index de42307..e062379 100644 +index 38349e2..5c06700 100644 --- a/dlls/d3dx9_36/texture.c +++ b/dlls/d3dx9_36/texture.c @@ -1873,10 +1873,7 @@ HRESULT WINAPI D3DXSaveTextureToFileInMemory(ID3DXBuffer **dst_buffer, D3DXIMAGE @@ -113,5 +113,5 @@ index de42307..e062379 100644 type = IDirect3DBaseTexture9_GetType(src_texture); switch (type) -- -2.2.1 +2.6.4 diff --git a/patches/d3dx9_36-DDS/0003-d3dx9_36-Add-support-for-FOURCC-surface-to-save_dds_.patch b/patches/d3dx9_36-DDS/0003-d3dx9_36-Add-support-for-FOURCC-surface-to-save_dds_.patch deleted file mode 100644 index 5be9c843..00000000 --- a/patches/d3dx9_36-DDS/0003-d3dx9_36-Add-support-for-FOURCC-surface-to-save_dds_.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 26c87c400c478b878b72b9cb7d216f89a9a58d1f Mon Sep 17 00:00:00 2001 -From: Christian Costa -Date: Sun, 11 Jan 2015 16:18:03 +0100 -Subject: d3dx9_36: Add support for FOURCC surface to - save_dds_surface_to_memory. - ---- - dlls/d3dx9_36/surface.c | 12 +++++++++++- - 1 file changed, 11 insertions(+), 1 deletion(-) - -diff --git a/dlls/d3dx9_36/surface.c b/dlls/d3dx9_36/surface.c -index ae10adc..629c94c 100644 ---- a/dlls/d3dx9_36/surface.c -+++ b/dlls/d3dx9_36/surface.c -@@ -311,6 +311,14 @@ static HRESULT d3dformat_to_dds_pixel_format(struct dds_pixel_format *pixel_form - } - } - -+ /* Reuse dds_fourcc_to_d3dformat as D3DFORMAT and FOURCC are DWORD with same values */ -+ if (dds_fourcc_to_d3dformat(d3dformat) != D3DFMT_UNKNOWN) -+ { -+ pixel_format->flags |= DDS_PF_FOURCC; -+ pixel_format->fourcc = d3dformat; -+ return D3D_OK; -+ } -+ - WARN("Unknown pixel format %#x\n", d3dformat); - return E_NOTIMPL; - } -@@ -489,7 +497,9 @@ static HRESULT save_dds_surface_to_memory(ID3DXBuffer **dst_buffer, IDirect3DSur - header->signature = MAKEFOURCC('D','D','S',' '); - /* The signature is not really part of the DDS header */ - header->size = sizeof(*header) - sizeof(header->signature); -- header->flags = DDS_CAPS | DDS_HEIGHT | DDS_WIDTH | DDS_PITCH | DDS_PIXELFORMAT; -+ header->flags = DDS_CAPS | DDS_HEIGHT | DDS_WIDTH | DDS_PIXELFORMAT; -+ /* Note that native does not set DDS_LINEARSIZE flag nor pitch_or_linear_size field for DXTn */ -+ header->flags |= (pixel_format->block_width != 1) || (pixel_format->block_height != 1) ? DDS_LINEARSIZE : DDS_PITCH; - header->height = src_desc.Height; - header->width = src_desc.Width; - header->pitch_or_linear_size = dst_pitch; --- -2.2.1 - diff --git a/patches/mshtml-Wine_Gecko_2.44/0002-mshtml-Fix-some-prototypes.patch b/patches/mshtml-Wine_Gecko_2.44/0002-mshtml-Fix-some-prototypes.patch index 1cae25a8..c98bb033 100644 --- a/patches/mshtml-Wine_Gecko_2.44/0002-mshtml-Fix-some-prototypes.patch +++ b/patches/mshtml-Wine_Gecko_2.44/0002-mshtml-Fix-some-prototypes.patch @@ -1,12 +1,12 @@ -From 1e0ee442ec83aa1876edf14279632d844c8b41b3 Mon Sep 17 00:00:00 2001 +From 0f20e0be16fd905bef6f4ff1f170a43601c49c69 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Wed, 6 Jan 2016 18:51:06 +0100 Subject: mshtml: Fix some prototypes. --- - dlls/mshtml/mutation.c | 4 ++-- - dlls/mshtml/nsiface.idl | 14 +++++++------- - 2 files changed, 9 insertions(+), 9 deletions(-) + dlls/mshtml/mutation.c | 4 ++-- + dlls/mshtml/nsiface.idl | 6 +++--- + 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/dlls/mshtml/mutation.c b/dlls/mshtml/mutation.c index a07c52d..22a3e61 100644 @@ -28,38 +28,9 @@ index a07c52d..22a3e61 100644 } diff --git a/dlls/mshtml/nsiface.idl b/dlls/mshtml/nsiface.idl -index 962bb6f..52ca1d84 100644 +index 75e75e0..52ca1d84 100644 --- a/dlls/mshtml/nsiface.idl +++ b/dlls/mshtml/nsiface.idl -@@ -2916,7 +2916,7 @@ interface nsIDOMWindowUtils : nsISupports - nsresult SetDisplayPortForElement(float aXPx, float aYPx, float aWidthPx, float aHeightPx, - nsIDOMElement *aElement, uint32_t aPriority); - nsresult SetDisplayPortMarginsForElement(float aLeftMargin, float aTopMargin, float aRightMargin, float aBottomMargin, -- uint32_t aAlignmentX, uint32_t aAlignmentY, nsIDOMElement *aElement, uint32_t aPriority); -+ nsIDOMElement *aElement, uint32_t aPriority); - nsresult SetDisplayPortBaseForElement(int32_t aX, int32_t aY, int32_t aWidth, int32_t aHeight, nsIDOMElement *aElement); - nsresult SetResolution(float aResolution); - nsresult GetResolution(float *aResolution); -@@ -3862,8 +3862,8 @@ interface nsIDocShell : nsIDocShellTreeItem - nsresult GatherCharsetMenuTelemetry(); - nsresult GetForcedCharset(nsIAtom **aForcedCharset); - nsresult SetForcedCharset(nsIAtom *aForcedCharset); -- void SetParentCharset(const nsACString *parentCharset, int32_t parentCharsetSource, nsIPrincipal *parentCharsetPrincipal); -- void GetParentCharset(nsACString *parentCharset, int32_t *parentCharsetSource, nsIPrincipal **parentCharsetPrincipal); -+ void /* thiscall */ SetParentCharset(const nsACString *parentCharset, int32_t parentCharsetSource, nsIPrincipal *parentCharsetPrincipal); -+ void /* thiscall */ GetParentCharset(nsACString *parentCharset, int32_t *parentCharsetSource, nsIPrincipal **parentCharsetPrincipal); - nsresult GetRecordProfileTimelineMarkers(bool *aRecordProfileTimelineMarkers); - nsresult SetRecordProfileTimelineMarkers(bool aRecordProfileTimelineMarkers); - nsresult Now(int /* DOMHighResTimeStamp */ *_retval); -@@ -3891,7 +3891,7 @@ interface nsIDocShell : nsIDocShellTreeItem - nsresult SetSandboxFlags(uint32_t aSandboxFlags); - nsresult GetOnePermittedSandboxedNavigator(nsIDocShell **aOnePermittedSandboxedNavigator); - nsresult SetOnePermittedSandboxedNavigator(nsIDocShell *aOnePermittedSandboxedNavigator); -- bool IsSandboxedFrom(nsIDocShell *aTargetDocShell); -+ bool /* thiscall */ IsSandboxedFrom(nsIDocShell *aTargetDocShell); - nsresult GetMixedContentChannel(nsIChannel **aMixedContentChannel); - nsresult SetMixedContentChannel(nsIChannel *aMixedContentChannel); - nsresult GetAllowMixedContentAndConnectionData(bool *rootHasSecureConnection, bool *allowMixedContent, bool *isRootDocShell); @@ -3948,10 +3948,10 @@ interface nsIMutationObserver : nsISupports void /*CharacterDataChangeInfo*/ *aInfo); void CharacterDataChanged(nsIDocument *aDocument, nsIContent *aContent, diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index f5905e8a..3021bc5c 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -52,7 +52,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "d7e4193df2f22a87031e44ce358a626a5f92b295" + echo "91dd155e9bc13c1bc1be860cd67fe3e48c20feae" } # Show version information @@ -93,7 +93,6 @@ patch_enable_all () enable_api_ms_win_crt_Stub_DLLs="$1" enable_authz_Stub_Functions="$1" enable_browseui_Progress_Dialog="$1" - enable_cmd_Fix_Sharing="$1" enable_comctl32_Button_Theming="$1" enable_comctl32_PROPSHEET_InsertPage="$1" enable_configure_Absolute_RPATH="$1" @@ -396,9 +395,6 @@ patch_enable () category-stable) enable_category_stable="$2" ;; - cmd-Fix_Sharing) - enable_cmd_Fix_Sharing="$2" - ;; comctl32-Button_Theming) enable_comctl32_Button_Theming="$2" ;; @@ -2384,21 +2380,6 @@ if test "$enable_browseui_Progress_Dialog" -eq 1; then ) >> "$patchlist" fi -# Patchset cmd-Fix_Sharing -# | -# | This patchset fixes the following Wine bugs: -# | * [#34174] Fix sharing violation on temp file for piped output -# | -# | Modified files: -# | * programs/cmd/tests/test_builtins.cmd.exp, programs/cmd/wcmdmain.c -# | -if test "$enable_cmd_Fix_Sharing" -eq 1; then - patch_apply cmd-Fix_Sharing/0001-cmd-Fix-sharing-permissions-for-pipe-file.patch - ( - echo '+ { "Sebastian Lackner", "cmd: Fix sharing permissions for pipe file.", 1 },'; - ) >> "$patchlist" -fi - # Patchset comctl32-Button_Theming # | # | This patchset fixes the following Wine bugs: @@ -2694,16 +2675,12 @@ fi # | * [#26898] Support for DDS file format in D3DXSaveTextureToFileInMemory # | # | Modified files: -# | * dlls/d3dx9_36/d3dx9_36_private.h, dlls/d3dx9_36/surface.c, dlls/d3dx9_36/tests/surface.c, dlls/d3dx9_36/texture.c +# | * dlls/d3dx9_36/d3dx9_36_private.h, dlls/d3dx9_36/surface.c, dlls/d3dx9_36/texture.c # | if test "$enable_d3dx9_36_DDS" -eq 1; then - patch_apply d3dx9_36-DDS/0001-d3dx9_36-tests-Add-D3DXSaveSurfaceToFileInMemory-D3D.patch - patch_apply d3dx9_36-DDS/0002-d3dx9_36-Fix-several-issues-in-save_dds_surface_to_m.patch - patch_apply d3dx9_36-DDS/0003-d3dx9_36-Add-support-for-FOURCC-surface-to-save_dds_.patch - patch_apply d3dx9_36-DDS/0004-d3dx9_36-Improve-D3DXSaveTextureToFile-to-save-simpl.patch + patch_apply d3dx9_36-DDS/0001-d3dx9_36-Add-support-for-FOURCC-surface-to-save_dds_.patch + patch_apply d3dx9_36-DDS/0002-d3dx9_36-Improve-D3DXSaveTextureToFile-to-save-simpl.patch ( - echo '+ { "Alistair Leslie-Hughes", "d3dx9_36/tests: Add D3DXSaveSurfaceToFileInMemory D3DXIFF_DDS tests.", 1 },'; - echo '+ { "Christian Costa", "d3dx9_36: Fix several issues in save_dds_surface_to_memory.", 1 },'; echo '+ { "Christian Costa", "d3dx9_36: Add support for FOURCC surface to save_dds_surface_to_memory.", 1 },'; echo '+ { "Christian Costa", "d3dx9_36: Improve D3DXSaveTextureToFile to save simple texture to dds file.", 1 },'; ) >> "$patchlist" diff --git a/patches/wined3d-CSMT_Main/0136-wined3d-Create-dummy-textures-through-the-CS.patch b/patches/wined3d-CSMT_Main/0136-wined3d-Create-dummy-textures-through-the-CS.patch index 81f1a91a..ad05c968 100644 --- a/patches/wined3d-CSMT_Main/0136-wined3d-Create-dummy-textures-through-the-CS.patch +++ b/patches/wined3d-CSMT_Main/0136-wined3d-Create-dummy-textures-through-the-CS.patch @@ -1,4 +1,4 @@ -From 410c5748849a9467bd5ee302ea96a20bd770f059 Mon Sep 17 00:00:00 2001 +From e95849bf089a6b93c67e1927a646a4e8bb35a243 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Thu, 10 Oct 2013 16:29:42 +0200 Subject: wined3d: Create dummy textures through the CS. @@ -7,9 +7,9 @@ Hacky version. Just good enough to see if the double context during init is what crash. --- dlls/wined3d/cs.c | 30 ++++++++++++++++++++++++++++++ - dlls/wined3d/device.c | 17 ++++++----------- + dlls/wined3d/device.c | 19 +++++++------------ dlls/wined3d/wined3d_private.h | 4 +++- - 3 files changed, 39 insertions(+), 12 deletions(-) + 3 files changed, 40 insertions(+), 13 deletions(-) diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c index bd83689..383c9a5 100644 @@ -74,7 +74,7 @@ index bd83689..383c9a5 100644 static inline void *_wined3d_cs_mt_require_space(struct wined3d_cs *cs, size_t size, BOOL prio) diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c -index c479b80..04a36a2 100644 +index 1b0226a..df19923 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -651,7 +651,7 @@ out: @@ -134,12 +134,14 @@ index c479b80..04a36a2 100644 /* Clear the screen */ if (swapchain->back_buffers && swapchain->back_buffers[0]) clear_flags |= WINED3DCLEAR_TARGET; -@@ -4503,7 +4498,7 @@ static HRESULT create_primary_opengl_context(struct wined3d_device *device, stru +@@ -4504,8 +4499,8 @@ static HRESULT create_primary_opengl_context(struct wined3d_device *device, stru swapchain->context[0] = context; swapchain->num_contexts = 1; - create_dummy_textures(device, context); +- create_default_sampler(device); + device_create_dummy_textures(device, context); ++ device_create_default_sampler(device); context_release(context); return WINED3D_OK; diff --git a/patches/wined3d-CSMT_Main/0138-wined3d-Recreate-ctx-and-dummy-textures-through-the-.patch b/patches/wined3d-CSMT_Main/0138-wined3d-Recreate-ctx-and-dummy-textures-through-the-.patch index a8bcf440..961d7114 100644 --- a/patches/wined3d-CSMT_Main/0138-wined3d-Recreate-ctx-and-dummy-textures-through-the-.patch +++ b/patches/wined3d-CSMT_Main/0138-wined3d-Recreate-ctx-and-dummy-textures-through-the-.patch @@ -1,17 +1,17 @@ -From bc64eef6fb48de707d8d19cb604e748e207742e4 Mon Sep 17 00:00:00 2001 +From 031a0b58fd0d26fabae25fd1ad9f0030f8e58290 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Thu, 10 Oct 2013 18:40:04 +0200 Subject: wined3d: Recreate ctx and dummy textures through the CS after resets. --- - dlls/wined3d/device.c | 26 ++++---------------------- - 1 file changed, 4 insertions(+), 22 deletions(-) + dlls/wined3d/device.c | 27 ++++----------------------- + 1 file changed, 4 insertions(+), 23 deletions(-) diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c -index 28b1c81..a113e21 100644 +index df19923..fe0a014 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c -@@ -4189,8 +4189,6 @@ static void delete_opengl_contexts(struct wined3d_device *device, struct wined3d +@@ -4457,8 +4457,6 @@ static void delete_opengl_contexts(struct wined3d_device *device, struct wined3d static HRESULT create_primary_opengl_context(struct wined3d_device *device, struct wined3d_swapchain *swapchain) { @@ -20,7 +20,7 @@ index 28b1c81..a113e21 100644 HRESULT hr; if (FAILED(hr = device->shader_backend->shader_alloc_private(device, -@@ -4207,32 +4205,16 @@ static HRESULT create_primary_opengl_context(struct wined3d_device *device, stru +@@ -4475,33 +4473,16 @@ static HRESULT create_primary_opengl_context(struct wined3d_device *device, stru return hr; } @@ -52,11 +52,12 @@ index 28b1c81..a113e21 100644 - swapchain->context[0] = context; - swapchain->num_contexts = 1; - device_create_dummy_textures(device, context); +- device_create_default_sampler(device); - context_release(context); + wined3d_cs_emit_create_dummy_textures(device->cs); return WINED3D_OK; } -- -2.1.3 +2.6.4 diff --git a/patches/wined3d-CSMT_Main/0141-wined3d-Delete-GL-contexts-through-the-CS-in-uninit_.patch b/patches/wined3d-CSMT_Main/0141-wined3d-Delete-GL-contexts-through-the-CS-in-uninit_.patch index 9c2f9fd1..52af0a62 100644 --- a/patches/wined3d-CSMT_Main/0141-wined3d-Delete-GL-contexts-through-the-CS-in-uninit_.patch +++ b/patches/wined3d-CSMT_Main/0141-wined3d-Delete-GL-contexts-through-the-CS-in-uninit_.patch @@ -1,14 +1,14 @@ -From 166fc2ef37010a9e368cd25a1ee2d3e722c087ed Mon Sep 17 00:00:00 2001 +From fd1de8f949ff49edbaff899af7e3a6ce83b99521 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Fri, 11 Oct 2013 10:17:42 +0200 Subject: wined3d: Delete GL contexts through the CS in uninit_3d. --- - dlls/wined3d/device.c | 34 ++++------------------------------ - 1 file changed, 4 insertions(+), 30 deletions(-) + dlls/wined3d/device.c | 33 +++------------------------------ + 1 file changed, 3 insertions(+), 30 deletions(-) diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c -index 039b645..8941632 100644 +index 800944b..8941632 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -1091,8 +1091,6 @@ static void device_free_sampler(struct wine_rb_entry *entry, void *context) @@ -67,15 +67,7 @@ index 039b645..8941632 100644 if (device->back_buffer_view) { -@@ -4432,6 +4404,7 @@ void device_delete_opengl_contexts_cs(struct wined3d_device *device, struct wine - device->blitter->free_private(device); - device->shader_backend->shader_free_private(device); - destroy_dummy_textures(device, gl_info); -+ destroy_default_sampler(device); - - context_release(context); - -@@ -4442,6 +4415,7 @@ void device_delete_opengl_contexts_cs(struct wined3d_device *device, struct wine +@@ -4443,6 +4415,7 @@ void device_delete_opengl_contexts_cs(struct wined3d_device *device, struct wine HeapFree(GetProcessHeap(), 0, swapchain->context); swapchain->context = NULL; diff --git a/patches/wined3d-CSMT_Main/9999-IfDefined.patch b/patches/wined3d-CSMT_Main/9999-IfDefined.patch index 9a1c4760..1dc549bc 100644 --- a/patches/wined3d-CSMT_Main/9999-IfDefined.patch +++ b/patches/wined3d-CSMT_Main/9999-IfDefined.patch @@ -3439,17 +3439,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c if (device->depth_blt_texture) { -@@ -4386,7 +5025,9 @@ - device->blitter->free_private(device); - device->shader_backend->shader_free_private(device); - destroy_dummy_textures(device, gl_info); -+#if defined(STAGING_CSMT) - destroy_default_sampler(device); -+#endif /* STAGING_CSMT */ - - context_release(context); - -@@ -4397,6 +5038,7 @@ +@@ -4397,6 +5036,7 @@ HeapFree(GetProcessHeap(), 0, swapchain->context); swapchain->context = NULL; @@ -3457,7 +3447,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c swapchain->num_contexts = 0; } -@@ -4416,6 +5058,14 @@ +@@ -4416,6 +5056,14 @@ static HRESULT create_primary_opengl_context(struct wined3d_device *device, struct wined3d_swapchain *swapchain) { @@ -3472,7 +3462,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c HRESULT hr; if (FAILED(hr = device->shader_backend->shader_alloc_private(device, -@@ -4432,6 +5082,7 @@ +@@ -4432,6 +5080,7 @@ return hr; } @@ -3480,7 +3470,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c hr = wined3d_cs_emit_create_swapchain_context(device->cs, swapchain); if (FAILED(hr)) { -@@ -4442,6 +5093,34 @@ +@@ -4442,6 +5091,35 @@ } wined3d_cs_emit_create_dummy_textures(device->cs); @@ -3510,12 +3500,13 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c + swapchain->context[0] = context; + swapchain->num_contexts = 1; + create_dummy_textures(device, context); ++ create_default_sampler(device); + context_release(context); +#endif /* STAGING_CSMT */ return WINED3D_OK; } -@@ -4460,9 +5139,11 @@ +@@ -4460,9 +5138,11 @@ TRACE("device %p, swapchain_desc %p, mode %p, callback %p, reset_state %#x.\n", device, swapchain_desc, mode, callback, reset_state); @@ -3527,7 +3518,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c if (!(swapchain = wined3d_device_get_swapchain(device, 0))) { ERR("Failed to get the first implicit swapchain.\n"); -@@ -4477,9 +5158,21 @@ +@@ -4477,9 +5157,21 @@ wined3d_texture_decref(device->logo_texture); device->logo_texture = NULL; } @@ -3549,7 +3540,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c { for (i = 0; i < device->adapter->gl_info.limits.buffers; ++i) { -@@ -4488,6 +5181,7 @@ +@@ -4488,6 +5180,7 @@ } wined3d_device_set_depth_stencil_view(device, NULL); @@ -3557,7 +3548,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c if (reset_state) { state_unbind_resources(&device->state); -@@ -4497,6 +5191,12 @@ +@@ -4497,6 +5190,12 @@ { wined3d_texture_decref(device->cs->onscreen_depth_stencil->container); device->cs->onscreen_depth_stencil = NULL; @@ -3570,7 +3561,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c } if (reset_state) -@@ -4509,6 +5209,7 @@ +@@ -4509,6 +5208,7 @@ } } @@ -3578,7 +3569,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c /* Free implicit resources and wait for the command stream before modifying * swapchain parameters. After modifying the swapchain parameters a new GL * context may be acquired by the worker thread. This causes problems in the -@@ -4530,6 +5231,7 @@ +@@ -4530,6 +5230,7 @@ } device->cs->ops->finish(device->cs); @@ -3586,7 +3577,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c TRACE("New params:\n"); TRACE("backbuffer_width %u\n", swapchain_desc->backbuffer_width); TRACE("backbuffer_height %u\n", swapchain_desc->backbuffer_height); -@@ -4656,6 +5358,13 @@ +@@ -4656,6 +5357,13 @@ swapchain_desc->multisample_type, swapchain_desc->multisample_quality))) return hr; @@ -3600,7 +3591,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c if (swapchain->desc.enable_auto_depth_stencil) { struct wined3d_resource_desc texture_desc; -@@ -4698,6 +5407,13 @@ +@@ -4698,6 +5406,13 @@ wined3d_device_set_depth_stencil_view(device, device->auto_depth_stencil_view); } @@ -3614,7 +3605,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c if (swapchain->desc.backbuffer_count && FAILED(hr = wined3d_rendertarget_view_create_from_surface( surface_from_resource(wined3d_texture_get_sub_resource(swapchain->back_buffers[0], 0)), NULL, &wined3d_null_parent_ops, &device->back_buffer_view))) -@@ -4718,12 +5434,20 @@ +@@ -4718,12 +5433,20 @@ } wined3d_cs_emit_reset_state(device->cs); state_cleanup(&device->state); @@ -3635,7 +3626,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c &device->adapter->d3d_info, WINED3D_STATE_INIT_DEFAULT))) ERR("Failed to initialize device state, hr %#x.\n", hr); device->update_state = &device->state; -@@ -4732,6 +5456,7 @@ +@@ -4732,6 +5455,7 @@ } else if (device->back_buffer_view) { @@ -3643,7 +3634,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c struct wined3d_state *state = &device->state; wined3d_device_set_rendertarget_view(device, 0, device->back_buffer_view, FALSE); -@@ -4747,6 +5472,24 @@ +@@ -4747,6 +5471,24 @@ state->scissor_rect.left = 0; state->scissor_rect.right = swapchain->desc.backbuffer_width; state->scissor_rect.bottom = swapchain->desc.backbuffer_height; @@ -3668,7 +3659,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c wined3d_cs_emit_set_scissor_rect(device->cs, &state->scissor_rect); } -@@ -4822,6 +5565,10 @@ +@@ -4822,6 +5564,10 @@ TRACE("device %p, resource %p, type %s.\n", device, resource, debug_d3dresourcetype(type)); @@ -3679,7 +3670,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c switch (type) { case WINED3D_RTYPE_SURFACE: -@@ -4832,6 +5579,7 @@ +@@ -4832,6 +5578,7 @@ for (i = 0; i < device->adapter->gl_info.limits.buffers; ++i) { @@ -3687,7 +3678,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c if (wined3d_rendertarget_view_get_surface(device->state.fb.render_targets[i]) == surface) { ERR("Surface %p is still in use as render target %u.\n", surface, i); -@@ -4843,6 +5591,19 @@ +@@ -4843,6 +5590,19 @@ { ERR("Surface %p is still in use as depth/stencil buffer.\n", surface); device->state.fb.depth_stencil = NULL; @@ -3707,7 +3698,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c } } break; -@@ -5005,7 +5766,11 @@ +@@ -5005,7 +5765,11 @@ device->blitter = adapter->blitter; @@ -3719,7 +3710,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c &adapter->d3d_info, WINED3D_STATE_INIT_DEFAULT))) { ERR("Failed to initialize device state, hr %#x.\n", hr); -@@ -5104,6 +5869,7 @@ +@@ -5104,6 +5868,7 @@ else return CallWindowProcA(proc, window, message, wparam, lparam); } @@ -3727,7 +3718,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c /* Context activation is done by the caller */ struct wined3d_gl_bo *wined3d_device_get_bo(struct wined3d_device *device, UINT size, GLenum gl_usage, -@@ -5157,3 +5923,4 @@ +@@ -5157,3 +5922,4 @@ wined3d_device_destroy_bo(device, context, bo); } @@ -8360,7 +8351,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c --- a/dlls/wined3d/utils.c +++ b/dlls/wined3d/utils.c -@@ -3733,7 +3733,11 @@ +@@ -3765,7 +3765,11 @@ float y_offset = context->render_offscreen ? (center_offset - (2.0f * y) - h) / h : (center_offset - (2.0f * y) - h) / -h; @@ -8372,7 +8363,7 @@ diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c state->render_states[WINED3D_RS_ZENABLE] : WINED3D_ZB_FALSE; float z_scale = zenable ? 2.0f : 0.0f; float z_offset = zenable ? -1.0f : 0.0f; -@@ -3856,6 +3860,7 @@ +@@ -3888,6 +3892,7 @@ /* case WINED3D_TTFF_COUNT1: Won't ever get here. */ case WINED3D_TTFF_COUNT2: mat._13 = mat._23 = mat._33 = mat._43 = 0.0f; @@ -8380,7 +8371,7 @@ diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c /* OpenGL divides the first 3 vertex coord by the 4th by default, * which is essentially the same as D3DTTFF_PROJECTED. Make sure that * the 4th coord evaluates to 1.0 to eliminate that. -@@ -3868,6 +3873,20 @@ +@@ -3900,6 +3905,20 @@ * A more serious problem occurs if the app passes 4 coordinates in, and the * 4th is != 1.0(opengl default). This would have to be fixed in draw_strided_slow * or a replacement shader. */ @@ -8401,7 +8392,7 @@ diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c default: mat._14 = mat._24 = mat._34 = 0.0f; mat._44 = 1.0f; } -@@ -4325,7 +4344,11 @@ +@@ -4357,7 +4376,11 @@ unsigned int i; DWORD ttff; DWORD cop, aop, carg0, carg1, carg2, aarg0, aarg1, aarg2;