CPU Affinity handle fixes broke the dashboard again

This only worked because ALL threads were still running on the same core.
Now they correctly run on different cores, the floating point register needs to be set for each thread!
This commit is contained in:
Luke Usher 2017-01-04 21:02:23 +00:00
parent 14e96f6ce1
commit 648337770a
2 changed files with 5 additions and 0 deletions

View File

@ -727,6 +727,8 @@ static DWORD WINAPI EmuUpdateTickCount(LPVOID)
// thread dedicated to create devices
static DWORD WINAPI EmuCreateDeviceProxy(LPVOID)
{
_controlfp(_PC_53, _MCW_PC); // Set Precision control to 53 bits (verified setting)
_controlfp(_RC_NEAR, _MCW_RC); // Set Rounding control to near (unsure about this)
DbgPrintf("EmuD3D8 (0x%X): CreateDevice proxy thread is running.\n", GetCurrentThreadId());
while(true)

View File

@ -119,6 +119,9 @@ static unsigned int WINAPI PCSTProxy
EmuGenerateFS(CxbxKrnl_TLS, CxbxKrnl_TLSData);
_controlfp(_PC_53, _MCW_PC); // Set Precision control to 53 bits (verified setting)
_controlfp(_RC_NEAR, _MCW_RC); // Set Rounding control to near (unsure about this)
// call thread notification routine(s)
if (g_iThreadNotificationCount != 0)
{