진단 매트릭스: 오버레이 훅 경합 증상, 충돌 패턴 및 해결책
많은 PC 게이머들이 게임 실행 시 튕김, Alt + Tab 화면 전환 시 검은 화면 먹통, 또는 프레임이 20% 이상 급락하는 현상을 겪습니다. 여러 프로그램을 함께 띄워두는 환경의 70% 이상에서 주원인은 디스코드 인게임 오버레이와 다른 백그라운드 인젝터(OBS 게임 캡처, 리바튜너/애프터버너, 지포스 익스피리언스) 간의 그래픽 API 훅(Hook) 충돌입니다.
| 활성화된 인젝터 조합 | 게임 내 오류 증상 | 충돌 메커니즘 | 심각도 | 권장 해결 조치 |
|---|---|---|---|---|
| 디스코드 오버레이 + OBS 게임 캡처 | 메인 메뉴 진입 즉시 널 포인터 참조 오류로 강제 종료 | 두 프로그램이 DirectX의 Present() 함수를 동시에 가로챔 | 치명적 | RTSS에서 인젝션 딜레이 5초 설정, 또는 OBS 윈도우 캡처 사용 |
| 디스코드 하드웨어 가속 (크로미움) | 간헐적 검은 화면 깜빡임, 주사율이 다른 듀얼 모니터 프리징 | 크로미움 GPU 프로세스가 그래픽 드라이버와 데드락 발생 | 보통 | 디스코드 '고급' 설정에서 '하드웨어 가속' 완전 비활성화 |
| 디스코드 오버레이 + RTSS (애프터버너) | 미세한 화면 끊김, 음성 위젯 잔상 및 깜빡임 | DirectX 12 렌더링 큐 내부에서 훅 우선권 경합 | 보통 | RTSS 프로필에서 'Custom Direct3D support' 체크 활성화 |
| 디스코드 오버레이 + 보안 안티치트 | Untrusted system file: DiscordHook64.dll 경고 후 실행 차단 | 안티치트 드라이버가 인가되지 않은 DLL 메모리 침범으로 감지 | 실행 불가 | 디스코드 설정에서 해당 게임의 오버레이만 핀포인트로 끄기 |
그래픽 API 후킹(Hooking) 충돌의 기술적 원리
디스코드가 게임 화면 위에 통화 중인 유저의 아바타나 채팅창을 그리는 원리:
- 디스코드는 게임 프로세스의 메모리 공간에
DiscordHook64.dll을 강제로 주입(Injection)합니다. - 스왑 체인의 프레임 전송 함수(DirectX의
IDXGISwapChain::Present등)를 가로챕니다(Hook). - 게임이 모니터로 화면을 보내기 직전 찰나의 순간에 투명 오버레이를 덧씌웁니다.
- 이때 OBS 게임 캡처나 RTSS가 완벽히 동일한 메모리 주소를 같은 시간에 가로채려 시도하면, 메모리 접근 위반(Access Violation)이 발생하여 게임이 즉각 튕겨버립니다.
시스템 안정화 실전 3단계 프로토콜
1단계: 디스코드 하드웨어 가속 비활성화
- 디스코드 좌측 하단 톱니바퀴(사용자 설정)를 클릭합니다.
- '앱 설정' 하위의 고급(Advanced) 메뉴로 이동합니다.
- 하드웨어 가속(Hardware Acceleration) 토글을 꺼짐(OFF) 으로 변경하고 재실행합니다.
2단계: RTSS 인젝션 딜레이(지연 시간) 부여
- MSI 애프터버너와 함께 실행되는 RTSS 창을 엽니다.
- 우측 하단의 Setup 버튼을 클릭합니다.
- General 탭에서 Injection delay (milliseconds) 값을 찾아
5000(5초)으로 수정합니다. 게임이 안정적으로 그래픽 파이프라인을 구축한 뒤 훅이 붙도록 합니다.
3단계: 튕기는 게임의 오버레이 단독 해제
- 디스코드 설정 -> 등록된 게임(Registered Games) 으로 이동합니다.
- 오류가 발생하는 게임 우측의 모니터 모양 오버레이 아이콘을 클릭하여 비활성화합니다.