From 93e5b6ebd7088ce631352cc0a966aef7894ca709 Mon Sep 17 00:00:00 2001 From: Elisha Riedlinger Date: Thu, 12 Sep 2024 23:27:59 -0700 Subject: [PATCH] Remove CheckSurfaceExists() on SetTexture() --- ddraw/IDirect3DDeviceX.cpp | 16 +++++++++------- ddraw/IDirectDrawX.cpp | 2 +- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/ddraw/IDirect3DDeviceX.cpp b/ddraw/IDirect3DDeviceX.cpp index 72f34322..fc50b6ff 100644 --- a/ddraw/IDirect3DDeviceX.cpp +++ b/ddraw/IDirect3DDeviceX.cpp @@ -922,6 +922,10 @@ HRESULT m_IDirect3DDeviceX::SetTexture(DWORD dwStage, LPDIRECTDRAWSURFACE7 lpSur return DDERR_INVALIDOBJECT; } +#ifdef ENABLE_PROFILING + auto startTime = std::chrono::high_resolution_clock::now(); +#endif + m_IDirectDrawSurfaceX* lpDDSrcSurfaceX = nullptr; HRESULT hr; @@ -932,12 +936,6 @@ HRESULT m_IDirect3DDeviceX::SetTexture(DWORD dwStage, LPDIRECTDRAWSURFACE7 lpSur } else { - if (!CheckSurfaceExists(lpSurface)) - { - LOG_LIMIT(100, __FUNCTION__ << " Error: could not find source surface! " << lpSurface); - return DDERR_INVALIDPARAMS; - } - lpSurface->QueryInterface(IID_GetInterfaceX, (LPVOID*)&lpDDSrcSurfaceX); if (!lpDDSrcSurfaceX) { @@ -961,6 +959,10 @@ HRESULT m_IDirect3DDeviceX::SetTexture(DWORD dwStage, LPDIRECTDRAWSURFACE7 lpSur CurrentTextureSurfaceX[dwStage] = lpDDSrcSurfaceX; } +#ifdef ENABLE_PROFILING + Logging::Log() << __FUNCTION__ << " (" << this << ") hr = " << (D3DERR)hr << " Timing = " << Logging::GetTimeLapseInMS(startTime); +#endif + return hr; } @@ -978,7 +980,7 @@ HRESULT m_IDirect3DDeviceX::SetRenderTarget(LPDIRECTDRAWSURFACE7 lpNewRenderTarg if (Config.Dd7to9) { - if (!lpNewRenderTarget || !CheckSurfaceExists(lpNewRenderTarget)) + if (!lpNewRenderTarget) { return DDERR_INVALIDPARAMS; } diff --git a/ddraw/IDirectDrawX.cpp b/ddraw/IDirectDrawX.cpp index 28f1733e..d254f5c7 100644 --- a/ddraw/IDirectDrawX.cpp +++ b/ddraw/IDirectDrawX.cpp @@ -4541,7 +4541,7 @@ HRESULT m_IDirectDrawX::Present(RECT* pSourceRect, RECT* pDestRect) } // Use WaitForVerticalBlank for wait timer - if (EnableWaitVsync && !Config.EnableVSync && !Config.ForceVsyncMode && !IsUsing3D()) + if (EnableWaitVsync && !Config.EnableVSync && !Config.ForceVsyncMode) { // Check how long since the last successful present LARGE_INTEGER ClickTime = {};