winehq.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2025
February
January
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
January
2003
December
November
October
September
August
July
June
May
April
March
February
January
2002
December
November
October
September
August
July
June
May
April
March
February
January
2001
December
November
October
September
August
July
June
May
April
March
February
List overview
wine-commits
February 2017
----- 2025 -----
February 2025
January 2025
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
January 2004
----- 2003 -----
December 2003
November 2003
October 2003
September 2003
August 2003
July 2003
June 2003
May 2003
April 2003
March 2003
February 2003
January 2003
----- 2002 -----
December 2002
November 2002
October 2002
September 2002
August 2002
July 2002
June 2002
May 2002
April 2002
March 2002
February 2002
January 2002
----- 2001 -----
December 2001
November 2001
October 2001
September 2001
August 2001
July 2001
June 2001
May 2001
April 2001
March 2001
February 2001
wine-commits@winehq.org
2 participants
838 discussions
Start a n
N
ew thread
Bruno Jesus : wlanapi: Add a stub for WlanRegisterNotification.
by Alexandre Julliard
13 Feb '17
13 Feb '17
Module: wine Branch: master Commit: 55649dfa4a1b733df90dc78f9817e9b1701d59b5 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=55649dfa4a1b733df90dc78f9…
Author: Bruno Jesus <00cpxxx(a)gmail.com> Date: Mon Feb 13 00:55:04 2017 -0200 wlanapi: Add a stub for WlanRegisterNotification. Signed-off-by: Bruno Jesus <00cpxxx(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/wlanapi/main.c | 10 ++++++++++ dlls/wlanapi/wlanapi.spec | 2 +- include/wlanapi.h | 12 ++++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/dlls/wlanapi/main.c b/dlls/wlanapi/main.c index 56c5377..bb139a0 100644 --- a/dlls/wlanapi/main.c +++ b/dlls/wlanapi/main.c @@ -137,6 +137,16 @@ DWORD WINAPI WlanScan(HANDLE handle, const GUID *guid, const DOT11_SSID *ssid, return ERROR_CALL_NOT_IMPLEMENTED; } +DWORD WINAPI WlanRegisterNotification(HANDLE handle, DWORD notify_source, BOOL ignore_dup, + WLAN_NOTIFICATION_CALLBACK callback, void *context, + void *reserved, DWORD *notify_prev) +{ + FIXME("(%p, %d, %d, %p, %p, %p, %p) stub\n", + handle, notify_source, ignore_dup, callback, context, reserved, notify_prev); + + return ERROR_CALL_NOT_IMPLEMENTED; +} + void WINAPI WlanFreeMemory(void *ptr) { TRACE("(%p)\n", ptr); diff --git a/dlls/wlanapi/wlanapi.spec b/dlls/wlanapi/wlanapi.spec index aa3dabf..a630e0a 100644 --- a/dlls/wlanapi/wlanapi.spec +++ b/dlls/wlanapi/wlanapi.spec @@ -19,7 +19,7 @@ @ stub WlanQueryAutoConfigParameter @ stub WlanQueryInterface @ stub WlanReasonCodeToString -@ stub WlanRegisterNotification +@ stdcall WlanRegisterNotification(ptr long long ptr ptr ptr ptr) @ stub WlanRenameProfile @ stub WlanSaveTemporaryProfile @ stdcall WlanScan(ptr ptr ptr ptr ptr) diff --git a/include/wlanapi.h b/include/wlanapi.h index f1e302c..f3d3ea6 100644 --- a/include/wlanapi.h +++ b/include/wlanapi.h @@ -58,11 +58,23 @@ typedef struct _WLAN_RAW_DATA BYTE DataBlob[1]; } WLAN_RAW_DATA, *PWLAN_RAW_DATA; +typedef struct _WLAN_NOTIFICATION_DATA +{ + DWORD NotificationSource; + DWORD NotificationCode; + GUID InterfaceGuid; + DWORD dwDataSize; + PVOID pData; +} WLAN_NOTIFICATION_DATA, *PWLAN_NOTIFICATION_DATA; + +typedef void (WINAPI *WLAN_NOTIFICATION_CALLBACK)(WLAN_NOTIFICATION_DATA *, void *); + DWORD WINAPI WlanCloseHandle(HANDLE, void *); DWORD WINAPI WlanEnumInterfaces(HANDLE, void *, WLAN_INTERFACE_INFO_LIST **); DWORD WINAPI WlanOpenHandle(DWORD, void *, DWORD *, HANDLE *); void *WINAPI WlanAllocateMemory(DWORD); void WINAPI WlanFreeMemory(void *); DWORD WINAPI WlanScan(HANDLE, const GUID *, const DOT11_SSID *, const WLAN_RAW_DATA *, void *); +DWORD WINAPI WlanRegisterNotification(HANDLE, DWORD, BOOL, WLAN_NOTIFICATION_CALLBACK, void *, void *, DWORD *); #endif /* _WLAN_WLANAPI_H */
1
0
0
0
Bruno Jesus : wlanapi: Add a stub for WlanScan.
by Alexandre Julliard
13 Feb '17
13 Feb '17
Module: wine Branch: master Commit: 390881b9d6290ed037a8956c344ef125c13ac046 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=390881b9d6290ed037a8956c3…
Author: Bruno Jesus <00cpxxx(a)gmail.com> Date: Mon Feb 13 00:55:03 2017 -0200 wlanapi: Add a stub for WlanScan. Signed-off-by: Bruno Jesus <00cpxxx(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/wlanapi/main.c | 9 +++++++++ dlls/wlanapi/wlanapi.spec | 2 +- include/wlanapi.h | 14 ++++++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/dlls/wlanapi/main.c b/dlls/wlanapi/main.c index 6955245..56c5377 100644 --- a/dlls/wlanapi/main.c +++ b/dlls/wlanapi/main.c @@ -128,6 +128,15 @@ DWORD WINAPI WlanOpenHandle(DWORD client_version, void *reserved, DWORD *negotia return ERROR_SUCCESS; } +DWORD WINAPI WlanScan(HANDLE handle, const GUID *guid, const DOT11_SSID *ssid, + const WLAN_RAW_DATA *raw, void *reserved) +{ + FIXME("(%p, %s, %p, %p, %p) stub\n", + handle, wine_dbgstr_guid(guid), ssid, raw, reserved); + + return ERROR_CALL_NOT_IMPLEMENTED; +} + void WINAPI WlanFreeMemory(void *ptr) { TRACE("(%p)\n", ptr); diff --git a/dlls/wlanapi/wlanapi.spec b/dlls/wlanapi/wlanapi.spec index a11b857..aa3dabf 100644 --- a/dlls/wlanapi/wlanapi.spec +++ b/dlls/wlanapi/wlanapi.spec @@ -22,7 +22,7 @@ @ stub WlanRegisterNotification @ stub WlanRenameProfile @ stub WlanSaveTemporaryProfile -@ stub WlanScan +@ stdcall WlanScan(ptr ptr ptr ptr ptr) @ stub WlanSetAutoConfigParameter @ stub WlanSetFilterList @ stub WlanSetInterface diff --git a/include/wlanapi.h b/include/wlanapi.h index f6ef60d..f1e302c 100644 --- a/include/wlanapi.h +++ b/include/wlanapi.h @@ -45,10 +45,24 @@ typedef struct _WLAN_INTERFACE_INFO_LIST WLAN_INTERFACE_INFO InterfaceInfo[1]; } WLAN_INTERFACE_INFO_LIST, *PWLAN_INTERFACE_INFO_LIST; +#define DOT11_SSID_MAX_LENGTH 32 +typedef struct _DOT11_SSID +{ + DWORD uSSIDLength; + UCHAR ucSSID[DOT11_SSID_MAX_LENGTH]; +} DOT11_SSID; + +typedef struct _WLAN_RAW_DATA +{ + DWORD dwDataSize; + BYTE DataBlob[1]; +} WLAN_RAW_DATA, *PWLAN_RAW_DATA; + DWORD WINAPI WlanCloseHandle(HANDLE, void *); DWORD WINAPI WlanEnumInterfaces(HANDLE, void *, WLAN_INTERFACE_INFO_LIST **); DWORD WINAPI WlanOpenHandle(DWORD, void *, DWORD *, HANDLE *); void *WINAPI WlanAllocateMemory(DWORD); void WINAPI WlanFreeMemory(void *); +DWORD WINAPI WlanScan(HANDLE, const GUID *, const DOT11_SSID *, const WLAN_RAW_DATA *, void *); #endif /* _WLAN_WLANAPI_H */
1
0
0
0
Józef Kucia : d3d10core/tests: Mark sRGB RTV clear test as broken on Nvidia drivers.
by Alexandre Julliard
13 Feb '17
13 Feb '17
Module: wine Branch: master Commit: 0dd6771b623f0cb9929f1aad1747097065ab1c08 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=0dd6771b623f0cb9929f1aad1…
Author: Józef Kucia <jkucia(a)codeweavers.com> Date: Mon Feb 13 13:07:37 2017 +0100 d3d10core/tests: Mark sRGB RTV clear test as broken on Nvidia drivers. Signed-off-by: Józef Kucia <jkucia(a)codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/d3d10core/tests/device.c | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/dlls/d3d10core/tests/device.c b/dlls/d3d10core/tests/device.c index 20a383c..4e19727 100644 --- a/dlls/d3d10core/tests/device.c +++ b/dlls/d3d10core/tests/device.c @@ -844,6 +844,17 @@ static BOOL is_amd_device(ID3D10Device *device) return adapter_desc.VendorId == 0x1002; } +static BOOL is_nvidia_device(ID3D10Device *device) +{ + DXGI_ADAPTER_DESC adapter_desc; + + if (!strcmp(winetest_platform, "wine")) + return FALSE; + + get_device_adapter_desc(device, &adapter_desc); + return adapter_desc.VendorId == 0x10de; +} + static BOOL is_d3d11_interface_available(ID3D10Device *device) { ID3D11Device *d3d11_device; @@ -8130,7 +8141,9 @@ static void test_clear_render_target_view(void) ID3D10RenderTargetView *rtv, *srgb_rtv; D3D10_RENDER_TARGET_VIEW_DESC rtv_desc; D3D10_TEXTURE2D_DESC texture_desc; + struct resource_readback rb; ID3D10Device *device; + unsigned int i, j; HRESULT hr; if (!init_test_context(&test_context)) @@ -8203,15 +8216,20 @@ static void test_clear_render_target_view(void) ID3D10Device_ClearRenderTargetView(device, rtv, color); check_texture_color(texture, expected_color, 1); - if (!is_warp_device(device)) - { - ID3D10Device_ClearRenderTargetView(device, srgb_rtv, color); - todo_wine check_texture_color(texture, expected_srgb_color, 1); - } - else + ID3D10Device_ClearRenderTargetView(device, srgb_rtv, color); + get_texture_readback(texture, 0, &rb); + for (i = 0; i < 4; ++i) { - win_skip("sRGB clears are broken on WARP.\n"); + for (j = 0; j < 4; ++j) + { + BOOL broken_device = is_warp_device(device) || is_nvidia_device(device); + DWORD color = get_readback_color(&rb, 80 + i * 160, 60 + j * 120); + todo_wine ok(compare_color(color, expected_srgb_color, 1) + || broken(compare_color(color, expected_color, 1) && broken_device), + "Got unexpected color 0x%08x.\n", color); + } } + release_resource_readback(&rb); ID3D10RenderTargetView_Release(srgb_rtv); ID3D10RenderTargetView_Release(rtv);
1
0
0
0
Józef Kucia : d3d8: Do not decrease swapchain surface refcount when it is already 0.
by Alexandre Julliard
13 Feb '17
13 Feb '17
Module: wine Branch: master Commit: 2b921fed4bf2e8006af0198bc8856006d5758c7c URL:
http://source.winehq.org/git/wine.git/?a=commit;h=2b921fed4bf2e8006af0198bc…
Author: Józef Kucia <jkucia(a)codeweavers.com> Date: Mon Feb 13 13:07:36 2017 +0100 d3d8: Do not decrease swapchain surface refcount when it is already 0. Signed-off-by: Józef Kucia <jkucia(a)codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/d3d8/surface.c | 6 ++++++ dlls/d3d8/tests/device.c | 28 +++++++++++++++++++--------- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/dlls/d3d8/surface.c b/dlls/d3d8/surface.c index 56f9282..5cdb5e5 100644 --- a/dlls/d3d8/surface.c +++ b/dlls/d3d8/surface.c @@ -90,6 +90,12 @@ static ULONG WINAPI d3d8_surface_Release(IDirect3DSurface8 *iface) return IDirect3DBaseTexture8_Release(&surface->texture->IDirect3DBaseTexture8_iface); } + if (!surface->resource.refcount) + { + WARN("Surface does not have any references.\n"); + return 0; + } + refcount = InterlockedDecrement(&surface->resource.refcount); TRACE("%p decreasing refcount to %u.\n", iface, refcount); diff --git a/dlls/d3d8/tests/device.c b/dlls/d3d8/tests/device.c index 45969fe..6b34ff1 100644 --- a/dlls/d3d8/tests/device.c +++ b/dlls/d3d8/tests/device.c @@ -515,10 +515,10 @@ static void test_refcount(void) */ hr = IDirect3DDevice8_GetRenderTarget(device, &pRenderTarget); CHECK_CALL(hr, "GetRenderTarget", device, ++refcount); - if(pRenderTarget) + if (pRenderTarget) { CHECK_SURFACE_CONTAINER(pRenderTarget, IID_IDirect3DDevice8, device); - CHECK_REFCOUNT( pRenderTarget, 1); + CHECK_REFCOUNT(pRenderTarget, 1); CHECK_ADDREF_REFCOUNT(pRenderTarget, 2); CHECK_REFCOUNT(device, refcount); @@ -527,7 +527,7 @@ static void test_refcount(void) hr = IDirect3DDevice8_GetRenderTarget(device, &pRenderTarget); CHECK_CALL(hr, "GetRenderTarget", device, refcount); - CHECK_REFCOUNT( pRenderTarget, 2); + CHECK_REFCOUNT(pRenderTarget, 2); CHECK_RELEASE_REFCOUNT( pRenderTarget, 1); CHECK_RELEASE_REFCOUNT( pRenderTarget, 0); CHECK_REFCOUNT(device, --refcount); @@ -537,26 +537,30 @@ static void test_refcount(void) CHECK_REFCOUNT(device, ++refcount); CHECK_RELEASE_REFCOUNT(pRenderTarget, 0); CHECK_REFCOUNT(device, --refcount); + CHECK_RELEASE_REFCOUNT(pRenderTarget, 0); + CHECK_RELEASE_REFCOUNT(pRenderTarget, 0); } /* Render target and back buffer are identical. */ hr = IDirect3DDevice8_GetBackBuffer(device, 0, 0, &pBackBuffer); CHECK_CALL(hr, "GetBackBuffer", device, ++refcount); - if(pBackBuffer) + if (pBackBuffer) { CHECK_RELEASE_REFCOUNT(pBackBuffer, 0); ok(pRenderTarget == pBackBuffer, "RenderTarget=%p and BackBuffer=%p should be the same.\n", - pRenderTarget, pBackBuffer); + pRenderTarget, pBackBuffer); + CHECK_RELEASE_REFCOUNT(pBackBuffer, 0); + CHECK_RELEASE_REFCOUNT(pBackBuffer, 0); pBackBuffer = NULL; } CHECK_REFCOUNT(device, --refcount); hr = IDirect3DDevice8_GetDepthStencilSurface(device, &pStencilSurface); CHECK_CALL(hr, "GetDepthStencilSurface", device, ++refcount); - if(pStencilSurface) + if (pStencilSurface) { CHECK_SURFACE_CONTAINER(pStencilSurface, IID_IDirect3DDevice8, device); - CHECK_REFCOUNT( pStencilSurface, 1); + CHECK_REFCOUNT(pStencilSurface, 1); CHECK_ADDREF_REFCOUNT(pStencilSurface, 2); CHECK_REFCOUNT(device, refcount); @@ -571,6 +575,8 @@ static void test_refcount(void) CHECK_REFCOUNT(device, ++refcount); CHECK_RELEASE_REFCOUNT(pStencilSurface, 0); CHECK_REFCOUNT(device, --refcount); + CHECK_RELEASE_REFCOUNT(pStencilSurface, 0); + CHECK_RELEASE_REFCOUNT(pStencilSurface, 0); pStencilSurface = NULL; } @@ -729,6 +735,8 @@ static void test_refcount(void) CHECK_REFCOUNT(device, ++refcount); CHECK_RELEASE_REFCOUNT(pBackBuffer, 0); CHECK_REFCOUNT(device, --refcount); + CHECK_RELEASE_REFCOUNT(pBackBuffer, 0); + CHECK_RELEASE_REFCOUNT(pBackBuffer, 0); pBackBuffer = NULL; } CHECK_REFCOUNT( pSwapChain, 1); @@ -752,12 +760,14 @@ static void test_refcount(void) * Otherwise GetRenderTarget would re-allocate it and the pointer would change.*/ hr = IDirect3DDevice8_GetRenderTarget(device, &pRenderTarget2); CHECK_CALL(hr, "GetRenderTarget", device, ++refcount); - if(pRenderTarget2) + if (pRenderTarget2) { CHECK_RELEASE_REFCOUNT(pRenderTarget2, 0); ok(pRenderTarget == pRenderTarget2, "RenderTarget=%p and RenderTarget2=%p should be the same.\n", - pRenderTarget, pRenderTarget2); + pRenderTarget, pRenderTarget2); CHECK_REFCOUNT(device, --refcount); + CHECK_RELEASE_REFCOUNT(pRenderTarget2, 0); + CHECK_RELEASE_REFCOUNT(pRenderTarget2, 0); pRenderTarget2 = NULL; } pRenderTarget = NULL;
1
0
0
0
Józef Kucia : d3d9: Do not decrease swapchain refcount when it is already 0.
by Alexandre Julliard
13 Feb '17
13 Feb '17
Module: wine Branch: master Commit: 1860208f5fe5ddf3b30cf77667aa3b6d1985538a URL:
http://source.winehq.org/git/wine.git/?a=commit;h=1860208f5fe5ddf3b30cf7766…
Author: Józef Kucia <jkucia(a)codeweavers.com> Date: Mon Feb 13 13:07:35 2017 +0100 d3d9: Do not decrease swapchain refcount when it is already 0. Signed-off-by: Józef Kucia <jkucia(a)codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/d3d9/swapchain.c | 9 ++++++++- dlls/d3d9/tests/device.c | 40 ++++++++++++++++++++++------------------ 2 files changed, 30 insertions(+), 19 deletions(-) diff --git a/dlls/d3d9/swapchain.c b/dlls/d3d9/swapchain.c index 91ceaf0..8f3803a 100644 --- a/dlls/d3d9/swapchain.c +++ b/dlls/d3d9/swapchain.c @@ -90,8 +90,15 @@ static ULONG WINAPI d3d9_swapchain_AddRef(IDirect3DSwapChain9Ex *iface) static ULONG WINAPI d3d9_swapchain_Release(IDirect3DSwapChain9Ex *iface) { struct d3d9_swapchain *swapchain = impl_from_IDirect3DSwapChain9Ex(iface); - ULONG refcount = InterlockedDecrement(&swapchain->refcount); + ULONG refcount; + if (!swapchain->refcount) + { + WARN("Swapchain does not have any references.\n"); + return 0; + } + + refcount = InterlockedDecrement(&swapchain->refcount); TRACE("%p decreasing refcount to %u.\n", iface, refcount); if (!refcount) diff --git a/dlls/d3d9/tests/device.c b/dlls/d3d9/tests/device.c index 27f3a1d..5aba575 100644 --- a/dlls/d3d9/tests/device.c +++ b/dlls/d3d9/tests/device.c @@ -1437,15 +1437,15 @@ static void test_refcount(void) CHECK_CALL(hr, "GetSwapChain", device, ++refcount); if (pSwapChain) { - CHECK_REFCOUNT( pSwapChain, 1); + CHECK_REFCOUNT(pSwapChain, 1); hr = IDirect3DDevice9_GetRenderTarget(device, 0, &pRenderTarget); CHECK_CALL(hr, "GetRenderTarget", device, ++refcount); - CHECK_REFCOUNT( pSwapChain, 1); - if(pRenderTarget) + CHECK_REFCOUNT(pSwapChain, 1); + if (pRenderTarget) { - CHECK_SURFACE_CONTAINER( pRenderTarget, IID_IDirect3DSwapChain9, pSwapChain); - CHECK_REFCOUNT( pRenderTarget, 1); + CHECK_SURFACE_CONTAINER(pRenderTarget, IID_IDirect3DSwapChain9, pSwapChain); + CHECK_REFCOUNT(pRenderTarget, 1); CHECK_ADDREF_REFCOUNT(pRenderTarget, 2); CHECK_REFCOUNT(device, refcount); @@ -1454,9 +1454,9 @@ static void test_refcount(void) hr = IDirect3DDevice9_GetRenderTarget(device, 0, &pRenderTarget); CHECK_CALL(hr, "GetRenderTarget", device, refcount); - CHECK_REFCOUNT( pRenderTarget, 2); - CHECK_RELEASE_REFCOUNT( pRenderTarget, 1); - CHECK_RELEASE_REFCOUNT( pRenderTarget, 0); + CHECK_REFCOUNT(pRenderTarget, 2); + CHECK_RELEASE_REFCOUNT(pRenderTarget, 1); + CHECK_RELEASE_REFCOUNT(pRenderTarget, 0); CHECK_REFCOUNT(device, --refcount); /* The render target is released with the device, so AddRef with refcount=0 is fine here. */ @@ -1484,7 +1484,7 @@ static void test_refcount(void) hr = IDirect3DDevice9_GetDepthStencilSurface(device, &pStencilSurface); CHECK_CALL(hr, "GetDepthStencilSurface", device, ++refcount); - CHECK_REFCOUNT( pSwapChain, 1); + CHECK_REFCOUNT(pSwapChain, 1); if (pStencilSurface) { CHECK_SURFACE_CONTAINER(pStencilSurface, IID_IDirect3DDevice9, device); @@ -1508,14 +1508,18 @@ static void test_refcount(void) pStencilSurface = NULL; } - CHECK_RELEASE_REFCOUNT( pSwapChain, 0); + CHECK_RELEASE_REFCOUNT(pSwapChain, 0); CHECK_REFCOUNT(device, --refcount); + CHECK_RELEASE_REFCOUNT(pSwapChain, 0); + CHECK_RELEASE_REFCOUNT(pSwapChain, 0); /* The implicit swapchwin is released with the device, so AddRef with refcount=0 is fine here. */ CHECK_ADDREF_REFCOUNT(pSwapChain, 1); CHECK_REFCOUNT(device, ++refcount); CHECK_RELEASE_REFCOUNT(pSwapChain, 0); CHECK_REFCOUNT(device, --refcount); + CHECK_RELEASE_REFCOUNT(pSwapChain, 0); + CHECK_RELEASE_REFCOUNT(pSwapChain, 0); pSwapChain = NULL; } @@ -1524,7 +1528,7 @@ static void test_refcount(void) CHECK_CALL(hr, "CreateIndexBuffer", device, ++refcount ); if(pIndexBuffer) { - tmp = get_refcount( (IUnknown *)pIndexBuffer ); + tmp = get_refcount((IUnknown *)pIndexBuffer); hr = IDirect3DDevice9_SetIndices(device, pIndexBuffer); CHECK_CALL( hr, "SetIndices", pIndexBuffer, tmp); @@ -1641,17 +1645,17 @@ static void test_refcount(void) d3dpp.AutoDepthStencilFormat = D3DFMT_D24S8; hr = IDirect3DDevice9_CreateAdditionalSwapChain(device, &d3dpp, &pSwapChain); CHECK_CALL(hr, "CreateAdditionalSwapChain", device, ++refcount); - if(pSwapChain) + if (pSwapChain) { /* check implicit back buffer */ hr = IDirect3DSwapChain9_GetBackBuffer(pSwapChain, 0, 0, &pBackBuffer); CHECK_CALL(hr, "GetBackBuffer", device, ++refcount); - CHECK_REFCOUNT( pSwapChain, 1); - if(pBackBuffer) + CHECK_REFCOUNT(pSwapChain, 1); + if (pBackBuffer) { - CHECK_SURFACE_CONTAINER( pBackBuffer, IID_IDirect3DSwapChain9, pSwapChain); - CHECK_REFCOUNT( pBackBuffer, 1); - CHECK_RELEASE_REFCOUNT( pBackBuffer, 0); + CHECK_SURFACE_CONTAINER(pBackBuffer, IID_IDirect3DSwapChain9, pSwapChain); + CHECK_REFCOUNT(pBackBuffer, 1); + CHECK_RELEASE_REFCOUNT(pBackBuffer, 0); CHECK_REFCOUNT(device, --refcount); /* The back buffer is released with the swapchain, so AddRef with refcount=0 is fine here. */ @@ -1663,7 +1667,7 @@ static void test_refcount(void) CHECK_RELEASE_REFCOUNT(pBackBuffer, 0); pBackBuffer = NULL; } - CHECK_REFCOUNT( pSwapChain, 1); + CHECK_REFCOUNT(pSwapChain, 1); } hr = IDirect3DDevice9_CreateQuery(device, D3DQUERYTYPE_EVENT, &pQuery); CHECK_CALL(hr, "CreateQuery", device, ++refcount);
1
0
0
0
Józef Kucia : d3d9: Do not decrease swapchain surface refcount when it is already 0.
by Alexandre Julliard
13 Feb '17
13 Feb '17
Module: wine Branch: master Commit: d39630fc396b0f732b49e9bbc29669c62338248f URL:
http://source.winehq.org/git/wine.git/?a=commit;h=d39630fc396b0f732b49e9bbc…
Author: Józef Kucia <jkucia(a)codeweavers.com> Date: Mon Feb 13 13:07:34 2017 +0100 d3d9: Do not decrease swapchain surface refcount when it is already 0. Based on a patch by Henri Verbeet. Signed-off-by: Józef Kucia <jkucia(a)codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/d3d9/surface.c | 6 ++++++ dlls/d3d9/tests/device.c | 22 ++++++++++++++++------ 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/dlls/d3d9/surface.c b/dlls/d3d9/surface.c index 07eaf7b..976a7fa 100644 --- a/dlls/d3d9/surface.c +++ b/dlls/d3d9/surface.c @@ -91,6 +91,12 @@ static ULONG WINAPI d3d9_surface_Release(IDirect3DSurface9 *iface) return IDirect3DBaseTexture9_Release(&surface->texture->IDirect3DBaseTexture9_iface); } + if (!surface->resource.refcount) + { + WARN("Surface does not have any references.\n"); + return 0; + } + refcount = InterlockedDecrement(&surface->resource.refcount); TRACE("%p decreasing refcount to %u.\n", iface, refcount); diff --git a/dlls/d3d9/tests/device.c b/dlls/d3d9/tests/device.c index feb1efc..27f3a1d 100644 --- a/dlls/d3d9/tests/device.c +++ b/dlls/d3d9/tests/device.c @@ -1464,16 +1464,20 @@ static void test_refcount(void) CHECK_REFCOUNT(device, ++refcount); CHECK_RELEASE_REFCOUNT(pRenderTarget, 0); CHECK_REFCOUNT(device, --refcount); + CHECK_RELEASE_REFCOUNT(pRenderTarget, 0); + CHECK_RELEASE_REFCOUNT(pRenderTarget, 0); } /* Render target and back buffer are identical. */ hr = IDirect3DDevice9_GetBackBuffer(device, 0, 0, 0, &pBackBuffer); CHECK_CALL(hr, "GetBackBuffer", device, ++refcount); - if(pBackBuffer) + if (pBackBuffer) { CHECK_RELEASE_REFCOUNT(pBackBuffer, 0); ok(pRenderTarget == pBackBuffer, "RenderTarget=%p and BackBuffer=%p should be the same.\n", - pRenderTarget, pBackBuffer); + pRenderTarget, pBackBuffer); + CHECK_RELEASE_REFCOUNT(pBackBuffer, 0); + CHECK_RELEASE_REFCOUNT(pBackBuffer, 0); pBackBuffer = NULL; } CHECK_REFCOUNT(device, --refcount); @@ -1481,7 +1485,7 @@ static void test_refcount(void) hr = IDirect3DDevice9_GetDepthStencilSurface(device, &pStencilSurface); CHECK_CALL(hr, "GetDepthStencilSurface", device, ++refcount); CHECK_REFCOUNT( pSwapChain, 1); - if(pStencilSurface) + if (pStencilSurface) { CHECK_SURFACE_CONTAINER(pStencilSurface, IID_IDirect3DDevice9, device); CHECK_REFCOUNT( pStencilSurface, 1); @@ -1491,7 +1495,7 @@ static void test_refcount(void) CHECK_RELEASE_REFCOUNT(pStencilSurface, 1); CHECK_REFCOUNT(device, refcount); - CHECK_RELEASE_REFCOUNT( pStencilSurface, 0); + CHECK_RELEASE_REFCOUNT(pStencilSurface, 0); CHECK_REFCOUNT(device, --refcount); /* The stencil surface is released with the device, so AddRef with refcount=0 is fine here. */ @@ -1499,6 +1503,8 @@ static void test_refcount(void) CHECK_REFCOUNT(device, ++refcount); CHECK_RELEASE_REFCOUNT(pStencilSurface, 0); CHECK_REFCOUNT(device, --refcount); + CHECK_RELEASE_REFCOUNT(pStencilSurface, 0); + CHECK_RELEASE_REFCOUNT(pStencilSurface, 0); pStencilSurface = NULL; } @@ -1653,6 +1659,8 @@ static void test_refcount(void) CHECK_REFCOUNT(device, ++refcount); CHECK_RELEASE_REFCOUNT(pBackBuffer, 0); CHECK_REFCOUNT(device, --refcount); + CHECK_RELEASE_REFCOUNT(pBackBuffer, 0); + CHECK_RELEASE_REFCOUNT(pBackBuffer, 0); pBackBuffer = NULL; } CHECK_REFCOUNT( pSwapChain, 1); @@ -1669,12 +1677,14 @@ static void test_refcount(void) * Otherwise GetRenderTarget would re-allocate it and the pointer would change.*/ hr = IDirect3DDevice9_GetRenderTarget(device, 0, &pRenderTarget2); CHECK_CALL(hr, "GetRenderTarget", device, ++refcount); - if(pRenderTarget2) + if (pRenderTarget2) { CHECK_RELEASE_REFCOUNT(pRenderTarget2, 0); ok(pRenderTarget == pRenderTarget2, "RenderTarget=%p and RenderTarget2=%p should be the same.\n", - pRenderTarget, pRenderTarget2); + pRenderTarget, pRenderTarget2); CHECK_REFCOUNT(device, --refcount); + CHECK_RELEASE_REFCOUNT(pRenderTarget2, 0); + CHECK_RELEASE_REFCOUNT(pRenderTarget2, 0); pRenderTarget2 = NULL; } pRenderTarget = NULL;
1
0
0
0
Józef Kucia : wined3d: Fix bind count for shader resource views.
by Alexandre Julliard
13 Feb '17
13 Feb '17
Module: wine Branch: master Commit: 94fab4cf1ac7d8a0311ee6284b41949eb7591e1b URL:
http://source.winehq.org/git/wine.git/?a=commit;h=94fab4cf1ac7d8a0311ee6284…
Author: Józef Kucia <jkucia(a)codeweavers.com> Date: Mon Feb 13 13:07:33 2017 +0100 wined3d: Fix bind count for shader resource views. Signed-off-by: Józef Kucia <jkucia(a)codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/wined3d/cs.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c index 1d2870e..3a46a3c 100644 --- a/dlls/wined3d/cs.c +++ b/dlls/wined3d/cs.c @@ -1039,8 +1039,16 @@ void wined3d_cs_emit_set_texture(struct wined3d_cs *cs, UINT stage, struct wined static void wined3d_cs_exec_set_shader_resource_view(struct wined3d_cs *cs, const void *data) { const struct wined3d_cs_set_shader_resource_view *op = data; + struct wined3d_shader_resource_view *prev; + prev = cs->state.shader_resource_view[op->type][op->view_idx]; cs->state.shader_resource_view[op->type][op->view_idx] = op->view; + + if (op->view) + InterlockedIncrement(&op->view->resource->bind_count); + if (prev) + InterlockedDecrement(&prev->resource->bind_count); + if (op->type != WINED3D_SHADER_TYPE_COMPUTE) device_invalidate_state(cs->device, STATE_SHADER_RESOURCE_BINDING); }
1
0
0
0
Józef Kucia : d3d10core/tests: Port test_resinfo_instruction() from d3d11.
by Alexandre Julliard
13 Feb '17
13 Feb '17
Module: wine Branch: master Commit: 2d3e23c60ffdf8d9e1dd5b8461e0e997a778a7d4 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=2d3e23c60ffdf8d9e1dd5b846…
Author: Józef Kucia <jkucia(a)codeweavers.com> Date: Mon Feb 13 13:07:32 2017 +0100 d3d10core/tests: Port test_resinfo_instruction() from d3d11. Signed-off-by: Józef Kucia <jkucia(a)codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/d3d10core/tests/device.c | 315 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 315 insertions(+) Diff:
http://source.winehq.org/git/wine.git/?a=commitdiff;h=2d3e23c60ffdf8d9e1dd5…
1
0
0
0
Nikolay Sivov : d2d1: Create gdi-compatible texture for WIC target when asked for it.
by Alexandre Julliard
13 Feb '17
13 Feb '17
Module: wine Branch: master Commit: 122676540389240e73b3a0f1e0b778483677eb29 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=122676540389240e73b3a0f1e…
Author: Nikolay Sivov <nsivov(a)codeweavers.com> Date: Sun Feb 12 22:14:57 2017 +0300 d2d1: Create gdi-compatible texture for WIC target when asked for it. Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/d2d1/wic_render_target.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/dlls/d2d1/wic_render_target.c b/dlls/d2d1/wic_render_target.c index 07a19ee..57f5d61 100644 --- a/dlls/d2d1/wic_render_target.c +++ b/dlls/d2d1/wic_render_target.c @@ -841,7 +841,8 @@ HRESULT d2d_wic_render_target_init(struct d2d_wic_render_target *render_target, texture_desc.Usage = D3D10_USAGE_DEFAULT; texture_desc.BindFlags = D3D10_BIND_RENDER_TARGET | D3D10_BIND_SHADER_RESOURCE; texture_desc.CPUAccessFlags = 0; - texture_desc.MiscFlags = 0; + texture_desc.MiscFlags = desc->usage & D2D1_RENDER_TARGET_USAGE_GDI_COMPATIBLE ? + D3D10_RESOURCE_MISC_GDI_COMPATIBLE : 0; if (FAILED(hr = ID3D10Device1_CreateTexture2D(device, &texture_desc, NULL, &texture))) { @@ -860,6 +861,7 @@ HRESULT d2d_wic_render_target_init(struct d2d_wic_render_target *render_target, texture_desc.Usage = D3D10_USAGE_STAGING; texture_desc.BindFlags = 0; texture_desc.CPUAccessFlags = D3D10_CPU_ACCESS_READ; + texture_desc.MiscFlags = 0; if (FAILED(hr = ID3D10Device1_CreateTexture2D(device, &texture_desc, NULL, &render_target->readback_texture))) {
1
0
0
0
Nikolay Sivov : wordpad: Clean up IRichEditOleCallback implementation.
by Alexandre Julliard
13 Feb '17
13 Feb '17
Module: wine Branch: master Commit: e492a0d68b297481f9958f451050522d20339c39 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=e492a0d68b297481f9958f451…
Author: Nikolay Sivov <nsivov(a)codeweavers.com> Date: Mon Feb 13 14:16:07 2017 +0300 wordpad: Clean up IRichEditOleCallback implementation. Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- programs/wordpad/olecallback.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/programs/wordpad/olecallback.c b/programs/wordpad/olecallback.c index 8b279ad..dcfef58 100644 --- a/programs/wordpad/olecallback.c +++ b/programs/wordpad/olecallback.c @@ -31,7 +31,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(wordpad); struct IRichEditOleCallbackImpl { - const IRichEditOleCallbackVtbl *vtbl; + IRichEditOleCallback IRichEditOleCallback_iface; IStorage *stg; int item_num; }; @@ -196,7 +196,7 @@ struct IRichEditOleCallbackVtbl olecallbackVtbl = { }; struct IRichEditOleCallbackImpl olecallback = { - &olecallbackVtbl, NULL, 0 + { &olecallbackVtbl }, NULL, 0 }; HRESULT setup_richedit_olecallback(HWND hEditorWnd) @@ -205,6 +205,6 @@ HRESULT setup_richedit_olecallback(HWND hEditorWnd) STGM_READWRITE | STGM_SHARE_EXCLUSIVE | STGM_DELETEONRELEASE, 0, &olecallback.stg); - SendMessageW(hEditorWnd, EM_SETOLECALLBACK, 0, (LPARAM)&olecallback); + SendMessageW(hEditorWnd, EM_SETOLECALLBACK, 0, (LPARAM)&olecallback.IRichEditOleCallback_iface); return hr; }
1
0
0
0
← Newer
1
...
47
48
49
50
51
52
53
...
84
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
Results per page:
10
25
50
100
200