Surface Book에서 60프레임 락 해결방법

이전 포스팅 참고.
https://megayuchi.com/2018/03/29/surface-book%ec%97%90%ec%84%9c-%eb%82%98%ed%83%80%eb%82%98%eb%8a%94-60fps-%ec%a0%9c%ed%95%9c-%ed%98%84%ec%83%81/

이 빌어먹을 현상이 dGPU + 내장 GPU 구성을 가지는 다른 노트북에선 이 현상이 발생하지 않는다. 적어도 내가 테스트한 바로는 오직 서피스북에서만 발생했다.
하여간 엊그제 트위터 타임라인에 DX12개발자 계정이 BLT대신 FLIP방식을 사용하라는 문서를 공유했다. 혹시나 해서 읽어보다가 DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING옵션을 처음 알게 됐다.

오늘 SwapChain만들때 DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING값을 넣어보니 서피스북에서 60프레임 락이 드디어 풀리는걸 확인했다.
이 건을 페이스북에서 짤막하게 공유했는데 김명현님이 다음의 링크를 찾아서 알려주셨다.

https://msdn.microsoft.com/en-us/library/windows/desktop/mt742104.aspx

그래. 이거네.
아 이 MS망할놈들. 이런건 바뀌었을때 바로 알려줘야되는거 아닌가. 게다가 그동안 내가 수많은 채널로 그리 지랄을 했는데 아무런 답변도 하지 않았다.

[요약]
vsync를 끄고 최대 프레임으로 렌더링하고자 한다면
Present()할때 sync interval값을 0으로 주는것 외에, 반드시 SwapChain 생성할때 DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING옵션을 주도록 한다.


답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중