From 9bd708d8f5ea136f084b9d5d7e28be76715db304 Mon Sep 17 00:00:00 2001 From: FunkyFr3sh Date: Sat, 11 Nov 2017 23:32:07 +0100 Subject: [PATCH] fully separate render thread to prevent slowdowns in main thread --- build.bat | 10 ++++++++-- ddraw.dll | Bin 188416 -> 170496 bytes main.c | 54 ++++---------------------------------------------- palette.c | 6 ------ render.c | 6 ++---- render_soft.c | 3 +-- surface.c | 33 ++++++++++++------------------ 7 files changed, 28 insertions(+), 84 deletions(-) diff --git a/build.bat b/build.bat index 24c19b4..85a89a6 100644 --- a/build.bat +++ b/build.bat @@ -1,2 +1,8 @@ -make EXT=.exe -pause \ No newline at end of file +@echo off +REM +REM cnc-patch environment config +REM +set PATH=C:\win-builds-patch-32\bin +gmake clean +gmake +pause diff --git a/ddraw.dll b/ddraw.dll index 0f87748544982be6343df9b07ca799a9b6e38c47..d35c5b352980f86f5ba87f3387967ba1e2a847e4 100644 GIT binary patch delta 59370 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 == render_main) - { - EnterCriticalSection(&This->cs); - This->render.run = FALSE; - ReleaseSemaphore(ddraw->render.sem, 1, NULL); - LeaveCriticalSection(&This->cs); - - WaitForSingleObject(This->render.thread, INFINITE); - This->render.thread = NULL; - } - if(!ddraw->windowed) { ChangeDisplaySettings(&This->mode, 0); @@ -209,15 +197,6 @@ HRESULT __stdcall ddraw_SetDisplayMode(IDirectDrawImpl *This, DWORD width, DWORD This->render.run = TRUE; - if (This->renderer == render_dummy_main) - { - if(This->render.thread == NULL) - { - This->render.thread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)This->renderer, NULL, 0, NULL); - } - return DD_OK; - } - mouse_unlock(); const HANDLE hbicon = LoadImage(GetModuleHandle(0), MAKEINTRESOURCE(IDR_MYMENU), IMAGE_ICON, GetSystemMetrics(SM_CXICON), GetSystemMetrics(SM_CYICON), 0); @@ -275,11 +254,6 @@ HRESULT __stdcall ddraw_SetDisplayMode(IDirectDrawImpl *This, DWORD width, DWORD } } - if(This->render.thread == NULL) - { - This->render.thread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)This->renderer, NULL, 0, NULL); - } - return DD_OK; } @@ -429,17 +403,9 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) } break; - /* make sure we redraw when WM_PAINT is requested */ - case WM_PAINT: - EnterCriticalSection(&ddraw->cs); - ReleaseSemaphore(ddraw->render.sem, 1, NULL); - LeaveCriticalSection(&ddraw->cs); - break; - case WM_ERASEBKGND: EnterCriticalSection(&ddraw->cs); FillRect(ddraw->render.hDC, &rc, (HBRUSH) GetStockObject(BLACK_BRUSH)); - ReleaseSemaphore(ddraw->render.sem, 1, NULL); LeaveCriticalSection(&ddraw->cs); break; } @@ -545,15 +511,11 @@ ULONG __stdcall ddraw_Release(IDirectDrawImpl *This) PostMessage(This->hWnd, WM_USER, 0, 0); } - if(This->render.run) + if (This->render.thread) { - EnterCriticalSection(&This->cs); - This->render.run = FALSE; - ReleaseSemaphore(ddraw->render.sem, 1, NULL); - LeaveCriticalSection(&This->cs); - - WaitForSingleObject(This->render.thread, INFINITE); + HANDLE thread = This->render.thread; This->render.thread = NULL; + WaitForSingleObject(thread, INFINITE); } if(This->render.hDC) @@ -562,12 +524,6 @@ ULONG __stdcall ddraw_Release(IDirectDrawImpl *This) This->render.hDC = NULL; } - if(This->render.ev) - { - CloseHandle(This->render.ev); - ddraw->render.ev = NULL; - } - if(This->real_dll) { FreeLibrary(This->real_dll); @@ -664,8 +620,6 @@ HRESULT WINAPI DirectDrawCreate(GUID FAR* lpGUID, LPDIRECTDRAW FAR* lplpDD, IUnk } InitializeCriticalSection(&This->cs); - This->render.ev = CreateEvent(NULL, TRUE, FALSE, NULL); - This->render.sem = CreateSemaphore(NULL, 0, 1, NULL); /* load configuration options from ddraw.ini */ char cwd[MAX_PATH]; @@ -741,7 +695,7 @@ HRESULT WINAPI DirectDrawCreate(GUID FAR* lpGUID, LPDIRECTDRAW FAR* lplpDD, IUnk This->boxing = TRUE; } - This->render.maxfps = GetPrivateProfileIntA("ddraw", "maxfps", 0, ini_path); + This->render.maxfps = GetPrivateProfileIntA("ddraw", "max_fps", 60, ini_path); This->render.width = GetPrivateProfileIntA("ddraw", "width", 0, ini_path); This->render.height = GetPrivateProfileIntA("ddraw", "height", 0, ini_path); diff --git a/palette.c b/palette.c index a8a305e..d50814c 100644 --- a/palette.c +++ b/palette.c @@ -59,12 +59,6 @@ HRESULT __stdcall ddraw_palette_SetEntries(IDirectDrawPaletteImpl *This, DWORD d } } - /* FIXME: only refresh the screen when the primary palette is changed */ - if(ddraw->primary && ddraw->render.run) - { - ReleaseSemaphore(ddraw->render.sem, 1, NULL); - } - return DD_OK; } diff --git a/render.c b/render.c index 024515e..9555b5f 100644 --- a/render.c +++ b/render.c @@ -92,7 +92,7 @@ DWORD WINAPI render_main(void) - while(ddraw->render.run && WaitForSingleObject(ddraw->render.sem, INFINITE) != WAIT_FAILED) + while(ddraw->render.thread) { scale_w = (float)ddraw->width/tex_width; scale_h = (float)ddraw->height/tex_height; @@ -159,10 +159,8 @@ DWORD WINAPI render_main(void) if(tick_end - tick_start < frame_len) { Sleep( frame_len - (tick_end - tick_start)); - } + } } - - SetEvent(ddraw->render.ev); } timeEndPeriod(1); diff --git a/render_soft.c b/render_soft.c index 3ad42f9..da0dcee 100644 --- a/render_soft.c +++ b/render_soft.c @@ -97,7 +97,7 @@ DWORD WINAPI render_soft_main(void) frame_len = 1000.0f / ddraw->render.maxfps; } - while (ddraw->render.run && WaitForSingleObject(ddraw->render.sem, INFINITE) != WAIT_FAILED) + while (ddraw->render.thread) { if(ddraw->render.maxfps > 0) { @@ -162,7 +162,6 @@ DWORD WINAPI render_soft_main(void) Sleep( frame_len - (tick_end - tick_start) + 1); } } - SetEvent(ddraw->render.ev); } timeEndPeriod(1); diff --git a/surface.c b/surface.c index 026a737..131ccb5 100644 --- a/surface.c +++ b/surface.c @@ -120,13 +120,6 @@ HRESULT __stdcall ddraw_surface_Blt(IDirectDrawSurfaceImpl *This, LPRECT lpDestR } } - if(This->caps & DDSCAPS_PRIMARYSURFACE && !(This->flags & DDSD_BACKBUFFERCOUNT) && ddraw->render.run) - { - ReleaseSemaphore(ddraw->render.sem, 1, NULL); - WaitForSingleObject(ddraw->render.ev, INFINITE); - ResetEvent(ddraw->render.ev); - } - return DD_OK; } @@ -201,13 +194,6 @@ HRESULT __stdcall ddraw_surface_Flip(IDirectDrawSurfaceImpl *This, LPDIRECTDRAWS printf("IDirectDrawSurface::Flip(This=%p, ...)\n", This); #endif - if(This->caps & DDSCAPS_PRIMARYSURFACE && ddraw->render.run) - { - ResetEvent(ddraw->render.ev); - ReleaseSemaphore(ddraw->render.sem, 1, NULL); - WaitForSingleObject(ddraw->render.ev, INFINITE); - } - return DD_OK; } @@ -316,7 +302,11 @@ HRESULT __stdcall ddraw_surface_Lock(IDirectDrawSurfaceImpl *This, LPRECT lpDest } #endif - return ddraw_surface_GetSurfaceDesc(This, lpDDSurfaceDesc); + HRESULT ret = ddraw_surface_GetSurfaceDesc(This, lpDDSurfaceDesc); + + EnterCriticalSection(&ddraw->cs); + + return ret; } HRESULT __stdcall ddraw_surface_ReleaseDC(IDirectDrawSurfaceImpl *This, HDC a) @@ -370,11 +360,8 @@ HRESULT __stdcall ddraw_surface_Unlock(IDirectDrawSurfaceImpl *This, LPVOID lpRe #if _DEBUG printf("DirectDrawSurface::Unlock(This=%p, lpRect=%p)\n", This, lpRect); #endif - - if(This->caps & DDSCAPS_PRIMARYSURFACE && !(This->flags & DDSD_BACKBUFFERCOUNT) && ddraw->render.run) - { - ReleaseSemaphore(ddraw->render.sem, 1, NULL); - } + + LeaveCriticalSection(&ddraw->cs); return DD_OK; } @@ -486,6 +473,12 @@ HRESULT __stdcall ddraw_CreateSurface(IDirectDrawImpl *This, LPDDSURFACEDESC lpD Surface->Ref = 0; ddraw_surface_AddRef(Surface); + + if(lpDDSurfaceDesc->ddsCaps.dwCaps & DDSCAPS_PRIMARYSURFACE) + { + This->render.thread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)This->renderer, NULL, 0, NULL); + SetThreadPriority(This->render.thread, THREAD_PRIORITY_ABOVE_NORMAL); + } return DD_OK; }