|
2022-10-23 03:24
조회: 1,770
추천: 8
라그 프리징 제거기9월 21일 클라이언트 또는 윈도우 업데이트 이후로 프리징 현상이 있는 분들을 위한 프로그램입니다. 사양 부족으로 인한 렉은 해결하지 않습니다. 참고해주세요. 프리징이 걸리는 조건에 본 프로그램을 실행하면 프리징이 완벽하게, 눈에 띄게 사라집니다. 프로그램을 켰더니 "어 조금 좋아진건가? 애매한데?" 이러면 이 프로그램은 당신을 위한 것이 아닙니다. 사용법: 라그 클라이언트가 있는 모니터 상에 보이도록 띄워주기만 하면 됩니다. 겹칠 필요는 없어요. 최소사양: 윈도우 7 32비트 (정확히는 비스타 SP2 이후) 별도 프로그램 설치 필요 없음. 원리: (추후 다른 개발자를 위해 남겨둡니다.) 정밀 분석 결과 10월 23일 기준 ragexe.exe의 0x005104CB 위치에서 호출되는 ddraw COM 인터페이스의 함수에서 70%가량의 셀프 CPU 시간을 점유하며, 심각한 병목현상을 초래하는 것을 확인하였습니다. 해당 함수는 "IDirectDraw7::WaitForVerticalBlank(DDWAITVB_BLOCKBEGIN, NULL)" 로 추정되었습니다. V-sync 신호가 발생할 때까지 기다리는 함수이므로 원래라면 화면 주사율에 맞춰 블로킹이 해제되어야 하지만, 윈도우의 최근 특정 업데이트 (22H2로 추정) 이후로 별도로 요청하지 않은 한 V-sync 신호를 발생시키지 않습니다. 최신 그래픽 라이브러리를 사용하면 별도 함수를 사용하지 않아도 운영체제에 V-sync를 자동으로 요청하게 되지만, 라그는 Direct3D 7 기반인게 문제입니다. 너무 옛날 라이브러리라 자동으로 요청하지 않아 프리징이 발생합니다. V-sync는 그래픽카드 전역 신호이므로... (다중 모니터라도 동시에 발생) 라그 말고도 다른 프로그램이 요청하면 이 문제는 해결됩니다. 본 프로그램은 운영체제에 V-sync 신호를 요청하며 ddraw의 데드락 문제를 해결합니다. (왜 자꾸 원리가 바뀌었냐구요? 해결되는데 이유를 모르겠어!!! 였기 때문입니다. 현재 정밀 분석 완료하였습니다.) 프로그램 라이선스: 프로그램과 소스코드는 GNU GPL Version 3 (GPLv3) 라이선스를 따릅니다. 프로그램을 구성하는 모든 필수 코드는 동봉된 소스파일에 포함되어 있지만, 빌드에 필요한 아이콘 등의 리소스는 포함되어있지 않습니다. 프로그램 빌드에 사용된 모든 파일을 원하실 경우 댓글로 요청하시거나, 인게임 제로 묘르닐 서버 "슈플레"로 로덱 보내시거나, again[골뱅이]www2.kr으로 이메일 요청 부탁드립니다.
EXP
1,081
(40%)
/ 1,201
|
RozAntifreezer.zip [121Kb]
Miragain