diff --git a/dlls/d3d8/tests/device.c b/dlls/d3d8/tests/device.c index 748aa020d97..9be33816458 100644 --- a/dlls/d3d8/tests/device.c +++ b/dlls/d3d8/tests/device.c @@ -327,10 +327,22 @@ static void test_refcount(void) todo_wine CHECK_REFCOUNT( pRenderTarget, 2); todo_wine CHECK_RELEASE_REFCOUNT( pRenderTarget, 1); todo_wine CHECK_RELEASE_REFCOUNT( pRenderTarget, 0); - pRenderTarget = NULL; } CHECK_REFCOUNT( pDevice, --refcount); + /* Render target and back buffer are identical. */ + hr = IDirect3DDevice8_GetBackBuffer(pDevice, 0, 0, &pBackBuffer); + todo_wine CHECK_CALL( hr, "GetBackBuffer", pDevice, ++refcount); + if(pBackBuffer) + { + todo_wine CHECK_RELEASE_REFCOUNT(pBackBuffer, 0); + ok(pRenderTarget == pBackBuffer, "RenderTarget=%p and BackBuffer=%p should be the same.\n", + pRenderTarget, pBackBuffer); + pBackBuffer = NULL; + } + CHECK_REFCOUNT( pDevice, --refcount); + pRenderTarget = NULL; + hr = IDirect3DDevice8_GetDepthStencilSurface(pDevice, &pStencilSurface); todo_wine CHECK_CALL( hr, "GetDepthStencilSurface", pDevice, ++refcount); if(pStencilSurface) @@ -342,17 +354,6 @@ static void test_refcount(void) } CHECK_REFCOUNT( pDevice, --refcount); - hr = IDirect3DDevice8_GetBackBuffer(pDevice, 0, 0, &pBackBuffer); - todo_wine CHECK_CALL( hr, "GetBackBuffer", pDevice, ++refcount); - if(pBackBuffer) - { - todo_wine CHECK_SURFACE_CONTAINER( pBackBuffer, IID_IDirect3DDevice8, pDevice); - todo_wine CHECK_REFCOUNT( pBackBuffer, 1); - todo_wine CHECK_RELEASE_REFCOUNT( pBackBuffer, 0); - pBackBuffer = NULL; - } - CHECK_REFCOUNT( pDevice, --refcount); - /* Buffers */ hr = IDirect3DDevice8_CreateIndexBuffer( pDevice, 16, 0, D3DFMT_INDEX32, D3DPOOL_DEFAULT, &pIndexBuffer ); CHECK_CALL( hr, "CreateIndexBuffer", pDevice, ++refcount );