낮 은 지연 시간 프레임 동기 화 | Unreal Engine Documentation 
 언리얼 엔진 4 문서 > 플랫 폼 개발 > 낮 은 지연 시간 프레임 동기 화 
 낮 은 지연 시간 프레임 동기 화 
 스레드 동기 화 방식 을 수정 하 여 입력 지연 시간 을 크 게 단축 하 는 방법 입니다 . 
 Low - latency frame syncing ( 낮 은 지연 시간 프레임 동기 화 ) 모드 는 게임 , 렌더링 , RHI 스레드 , GPU 사이 스레드 동기 화 방식 을 수정 하 여 입력 지연 시간 을 크 게 단축 하 고 제어 할 수 있 습니다 . 이전 엔진 버전 에서 게임 스레드 와 렌더링 스레드 동기 화 는 프레임 끝 에서 일어났 습니다 . r . OneFrameThreadLag 콘솔 변수 를 활성 화 하 면 ( 기본 값 입니다 ) 게임 스레드 가 렌더링 스레드 보다 한 프레임 전체 를 앞서 가 지 않 도록 합니다 . 
 플랫 폼 별 그래픽 드라이버 는 보통 Present ( ) 를 호출 하 는 스레드 를 멈춰 표시 되 는 프레임 보다 게임 스레드 실행 이 빨라 지 는 것 을 막 습니다 . 드라이버 는 스왑 체인 을 채우 다가 더 이상 공간 이 없 으면 스레드 호출 을 멈출 수 있 습니다 . UE 4 의 병렬 렌더링 도입 전 이 동기 화 방식 은 정확 했 는데 , 게임 스레드 가 렌더링 스레드 를 기다리 면 그래픽 드라이버 / OS 가 멈췄 기 때문 입니다 . 
 하지만 병 럴 렌더링 도입 이후 Present ( ) 호출 을 하 는 스레드 는 RHI 스레드 , 즉 드라이버 가 스로틀 조절 을 하 게 되 었 습니다 . 게임 스레드 는 계속 해서 렌더링 스레드 하고 만 동기 화 하 므로 , 두 프레임 모두 GPU 보다 훨씬 앞서 가 다 사용 하 던 프레임 을 교체 ( flip ) 할 수 있 게 되 었 습니다 . 이 는 rhi . SyncInterval 을 2 로 설정 한 30 hz 타이틀 에서 최악 의 경우 입력 지연 시간 이 최장 130 ms 까지 생길 수 있 습니다 . 
 UE 4 병렬 렌더링 이전 과 같 은 입력 지연 시간 을 얻 기 위해서 는 게임 스레드 를 RHI 스레드 에 댛신 동기 화 시킬 필요 가 있 습니다 . 하지만 여기 서 더 나아갈 수 있 습니다 . vsync 활성 화 시 스왑 체인 의 동기 화 간격 , 즉 앞 / 뒤 버퍼 교체 시기 가 정기 적 으로 예측 가능 합니다 . 게임 스레드 프레임 시작 을 vsync 기준 임의 시점 으로 동기 화 시켜 입력 지연 시간 을 정확히 제어 할 수 있 습니다 . 이 시점 을 신중 하 게 선택 하 면 입력 지연 시간 과 퍼포먼스 사이 균형 지점 을 선택 할 수 있 습니다 . 
 새로운 낮 은 지연 시간 프레임 동기 화 모드 에 는 r . GTSyncType 라는 ( 게임 스레드 동기 화 대상 스레드 ) 콘솔 변수 가 새로 추가 됩니다 . 이 콘솔 변수 는 새 프레임 동기 화 메커니즘 의 작동 방식 을 정의 합니다 . 사용 되 는 값 은 다음 과 같 습니다 . 
 게임 스레드 가 렌더링 스레드 와 동기 화 합니다 ( 예전 기본 방식 입니다 ) . 
 게임 스레드 가 RHI 스레드 와 동기 화 합니다 ( 병렬 렌더링 이전 UE 4 방식 입니다 ) . 
 게임 스레드 가 밀리 초 단위 +/- 오프셋 으로 스왑 체인 표현 과 동기 화 합니다 . 
 모드 2 동기 화 를 달성 하 기 위해 엔진 은 표현 되 는 프레임 에 인덱스 를 붙여 트래킹 하 다 Present ( ) 가 호출 되 면 드라이버 에 전달 합니다 . 이 인덱스 는 각 프레임 정확 한 교체 시간 을 나 차내 는 플랫 폼 프레임 교체 통계 에서 구했 습니다 . 이 값 을 사용 하 여 다음 프레임 교체 예정 시기 를 예측 한 다음 그 시점 에 맞춰 다음 게임 스레드 프레임 을 시작 합니다 . 
 rhi . SyncSlackMS 콘솔 변수 는 다음 예측 vsync 시간 에 적용 할 오프셋 을 설정 합니다 . 이 값 을 줄이 면 입력 지연 시간 이 줄 지만 엔진 파이프라인 이 짧 아 지 는 비용 때문 에 멈춤 현상 이 발생 해 프레임 속도 가 낮 아 질 확률 이 높 습니다 . 반 대로 이 값 을 늘리 면 엔진 파이프라인 이 길 어 져 멈춤 현상 에 강해 지 지만 입력 지연 시간 이 늘어납니다 . 
 보통 이 프레임 동기 화 시스템 을 사용 하 는 타이틀 은 일정 한 프레임 속도 를 유지 한 상태 에서 rhi . SyncSlackMS 를 최대 한 줄 입니다 . 
 예 를 들 어 30 hz 타이틀 에 다음 과 같 은 콘솔 변수 세팅 이 라면 : 
 입력 지연 시간 을 ( 30 hz 에서 두 프레임 인 ) 66 ms 이내 로 하 는 것 이 최적 일 것 입니다 . rhi . SyncSlackMS 를 10 으로 올리 면 입력 지연 시간 이 최대 76 ms 이내 로 나올 것 입니다 . 
 r . GTSyncType 2 는 ( rhi . SyncInterval 을 1 로 설정 한 ) 60 hz 타이틀 에 도 통합니다 만 , 30 hz 에 비해 프레임 수 가 두 배 라 애초 에 입력 지연 시간 이 절반 이 므로 이 점 이 눈 에 띄 지 않 습니다 . 
 지원 되 지 않 는 플랫폼 에서 r . GTSyncType 2 는 모드 1 로 돌아갑니다 .