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:
parent
14e96f6ce1
commit
648337770a
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue