You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
GPU driver handling tweaks that will improve stability for users affected by a range of graphics device-related issues
It includes:
- Better device state validation
- Added device state checking with TestCooperativeLevel() before creating state blocks
- Added error handling and device state validation before restoring render states
- Early exit on device calls if device already lost (Avoids dangerous operations like calling to invalidate a device that's already so, due to Alt-Tab)
- Ensure completion of GPU operations before invalidation
- Properly flushes depth buffers and render targets before invalidation
- Improve SaveReadableDepthBuffer in CRenderItemManager.cpp
- Added critical sync points for Nvidia compatibility
- Added safe depth buffer locking with D3DLOCK_READONLY | D3DLOCK_DONOTWAIT
- OnInvalidate fixes in CDirect3DEvents9.cpp
I want to specifically target the notorious Nvidia Alt+Tab freeze (Desktop lock-up) issue that affects players with Nvidia graphics cards.
1. Alt+Tabbing during gameplay would cause the DirectX device to lose and restore state
2. Nvidia drivers would hang during state block operations if the device was in an invalid state
GPU synchronization issues during depth buffer operations can cause indefinite hangs or suspended waits.
We now have:
- Safe device state validation before any critical DirectX operations
- Proper GPU synchronization during device transitions
- Graceful handling of device loss states
- Relevant debug logging
0 commit comments