From 41bbfdd0af3caca9531b4cf4b3e74fc5f8513f5e Mon Sep 17 00:00:00 2001 From: Echelon9 Date: Sun, 6 Apr 2014 20:17:56 +1000 Subject: [PATCH] During CreateDevice only clear depth buffer if present, to avoid a DirectX Debug Runtime error report --- src/CxbxKrnl/EmuD3D8.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/CxbxKrnl/EmuD3D8.cpp b/src/CxbxKrnl/EmuD3D8.cpp index 21d109212..e6b1b48e7 100644 --- a/src/CxbxKrnl/EmuD3D8.cpp +++ b/src/CxbxKrnl/EmuD3D8.cpp @@ -970,7 +970,15 @@ static DWORD WINAPI EmuCreateDeviceProxy(LPVOID) } // initially, show a black screen - g_pD3DDevice8->Clear(0, 0, D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER, 0xFF000000, 1.0f, 0); + // Only clear depth buffer if present + // + // Avoids following DirectX Debug Runtime error report + // [424] Direct3D8: (ERROR) :Invalid flag D3DCLEAR_ZBUFFER: no zbuffer is associated with device. Clear failed. + // + if (g_bHasZBuffer) + g_pD3DDevice8->Clear(0, 0, D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER, 0xFF000000, 1.0f, 0); + else + g_pD3DDevice8->Clear(0, 0, D3DCLEAR_TARGET, 0xFF000000, 0.0f, 0); g_pD3DDevice8->BeginScene(); g_pD3DDevice8->EndScene(); g_pD3DDevice8->Present(0, 0, 0, 0);