# HG changeset patch # User Botanic # Date 1351471594 25200 # Branch ta # Node ID 8ffff0bb82cf9d2865af70103b6dd605a93a065c # Parent 2ccb2115dc331f3c0d2bbe5924f90a99c0f21bc9 Setup Ryzom for PerfHUD diff -r 2ccb2115dc33 -r 8ffff0bb82cf code/nel/src/3d/driver/direct3d/driver_direct3d.cpp --- a/code/nel/src/3d/driver/direct3d/driver_direct3d.cpp Sat Oct 13 17:41:44 2012 -0700 +++ b/code/nel/src/3d/driver/direct3d/driver_direct3d.cpp Sun Oct 28 17:46:34 2012 -0700 @@ -1454,6 +1454,24 @@ return false; } + #if !FINAL_VERSION + // Look for 'NVIDIA PerfHUD' adapter + // If it is present, override default settings + for (UINT gAdapter=0;gAdapter<_D3D->GetAdapterCount();gAdapter++) + { + D3DADAPTER_IDENTIFIER9 Identifier; + HRESULT Res; + Res = _D3D->GetAdapterIdentifier(gAdapter,0,&Identifier); + + if (strstr(Identifier.Description,"PerfHUD") != 0) + { + nlinfo ("Setting up with PerfHUD"); + adapter=gAdapter; + _Rasterizer=D3DDEVTYPE_REF; + break; + } + } + #endif // Create the D3D device HRESULT result = _D3D->CreateDevice (adapter, _Rasterizer, _HWnd, D3DCREATE_HARDWARE_VERTEXPROCESSING|D3DCREATE_PUREDEVICE, ¶meters, &_DeviceInterface); if (result != D3D_OK) @@ -1477,6 +1495,8 @@ } } + + // _D3D->CreateDevice (adapter, _Rasterizer, _HWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, ¶meters, &_DeviceInterface); // Check some caps @@ -2584,13 +2604,15 @@ #ifndef NL_NO_ASM CFpuRestorer fpuRestorer; // fpu control word is changed by "Reset" #endif - HRESULT hr = _DeviceInterface->Reset (¶meters); - if (hr != D3D_OK) - { - nlwarning("CDriverD3D::reset: Reset on _DeviceInterface error 0x%x", hr); - // tmp - nlstopex(("CDriverD3D::reset: Reset on _DeviceInterface")); - return false; + if (_Rasterizer!=D3DDEVTYPE_REF) { + HRESULT hr = _DeviceInterface->Reset (¶meters); + if (hr != D3D_OK) + { + nlwarning("CDriverD3D::reset: Reset on _DeviceInterface error 0x%x", hr); + // tmp + nlstopex(("CDriverD3D::reset: Reset on _DeviceInterface")); + return false; + } } }