윈도우를 4K 모니터로 쓰면서 dpi를 200%로 사용하는 것은 뭔가 시기상조 이면서도, 한번 써보고 난 이후에는 100%로 내리기는 뭔가 아쉬우면서, 가끔 가다가 왜 이 프로그램들은 hidpi를 지원하지 않는걸까 한탄하는 것을 쉽게 볼 수 있습니다.
그리고 게임을 4K로 하는것은 아직은 너무 고사양이라서 프레임을 포기하면서 4K로 하거나 윈도우 해상도를 1080p로 내려서 플레이 하는 경우가 있지요. 하지만 해상도를 단순히 내리는 경우에는 대부분의 모니터들에서 화면이 너무 흐리멍텅하게 나타나는 문제도 있는가 하면, 저가형 uhd tv의 경우 업스케일러에서 ycbcr 444를 미지원 하는 경우도 있습니다. (zen u400이 442로 업스케일링 해줍니다.) 그리고 바탕화면을 들락 날락 할 때 아이콘 크기가 왔다리 갔다리 하면서 조금 번거롭기도 하구요.
테스트에 앞서서 윈도우 10 레드스톤 2 rtm 후보라고 하는 버전을 설치해서 진행 해봤습니다. (아직 1607으로 뜨는걸 봐서 진짜 rtm은 아닌 듯 합니다. 대신 바탕화면에 인사이더 문구가 안 뜨네요.)
레드스톤 2에서 변경된 hidpi용 메뉴입니다. 이전에는 '높은 DPI 설정에서 디스플레이 배율을 사용하지 않음' 이거 하나만 있었죠.
3개로 변했는데 각각의 기능 설명을 해보자면...
응용 프로그램 : 기존의 '높은 DPI 설정...'과 동일한 기능을 수행합니다.
시스템 : 기존에 hidpi를 미지원하는 레거시 프로그램을 실행했을 때 처럼 약간 흐릿하거나,깍두기 스럽지만(설정된 시스템 dpi가 정수배-200%,300% 등...일때 적용됨) 실행되는 프로그램의 ui를 크게 보여줍니다.
시스템 (고급) : 시스템과 비슷하지만 일부 지원되는 부분에 한해서 hidpi처럼 출력해줍니다.
(왱알앵알)
글로만 설명을 들어서는 애매하니 비교 화면을 올립니다.
(제가 응용 프로그램을 기존 프로그램이라고 착각하고 '기'를 썼네요. '응' 입니다.(?))
응용 프로그램 설정은 보시다시피 설정된 dpi를 무시하고 글자 크기를 hidpi로 표시합니다. 결과로 아이콘이 엄청 작게 나옵니다.
시스템은 예전 레거시 앱 실행하던것 처럼 그냥 확대해서 표시합니다. 글자가 깍두기 스럽습니다.
시스템(고급)은 확대해서 표시 하는데, 설정된 dpi로 출력할 수 있는 부분들은 모두 해당 dpi로 출력이 됩니다. 글자는 폰트가 hidpi를 쓸 수 있으니 선명하게, 아이콘은 사이즈 큰게 없으므로 예전 방식대로 크게 표시.
(응용 프로그램과 시스템(고급) 입니다.)
여기서 한번 더 비교할 게 있는데...
응용 프로그램으로 했을 때는 위 스샷과 같은 list 뷰라던가.. 이런게 짤리는 일이 너무 흔했습니다. 그런데 시스템(고급) 으로 설정했을 때는 이런 부분들도 멀쩡하게 표시가 됩니다. (드디어!)
즉 기존의 프로그램들이 hidpi를 지원하지 않더라도, 비록 스까 방식이지만 리소스가 없는 부분(아이콘 등), 구조상 적용이 되지 않는 부분을 제외하면 일부 부분에서 hidpi가 적용된 프로그램을 사용할 수 있게 되었습니다.
그리고 처음에 게임 얘기를 한 것은 다름아닌 '사용자 마음대로 원하는 프로그램에 레거시 확대 모드를 사용할 수 있다'는 점 때문이었습니다. 제가 zen u400 (4k 40인치 uhdtv)을 사용하면서 가장 짜증났던 점은 사양이 안되서 1080p 전체화면으로 게임을 하자니 1080p로 해상도를 설정 후 게임 화면이 모니터 화면에 꽉 차게 설정하면 ycbcr 442로 출력이 되고
(업스케일러 때문에 그렇습니다. 안 쓰면 444로 나옵니다. 근데 안 쓰면 1080p는 모니터 한가운데에 화면이 나와요.)
지포스 제어판에 들어가니 이 모니터에 대한 gpu 스케일링이 없고 모니터로만 되는 문제가 있었는데..
그냥 원하는 게임에다가 시스템으로 해 놓고 해상도는 1080p, 창모드로 실행후 창모드 전체화면 (borderless gaming)을 돌려버리면
이렇게 실행이 됩니다. 뒤에 저 프레임을 보시면 아시겠지만 실제로 렌더링 되는 해상도는 1080p입니다. 마치 50% 렌더스케일을 적용한 것과 비슷하게 보입니다.
시스템(고급) 으로 설정하면 d3d의 경우 게임 화면이 실행중인 창 크기의 4분의 1로 나타나는 경우가 있습니다. 시스템으로 설정하면 잘 나옵니다.
게임에 따라서 커서가 어긋나는 등의 문제가 있을 수 있는데, borderless gaming 설정 기준으로 no size change를 설정 후 set window size 를 한 다음 모니터 해상도를 입력하고 나머지는 0으로 설정하면 됩니다. (좌표 문제가 완전히 없는 것은 아니나 최대한 최소화 해줍니다.)
opengl 게임으로 해볼려니 vallery 벤치마크 밖에 없어서... vallery 기준으로 상단에 빈 공간이 같이 나와서 약간 이상하게 돌아가긴 하네요. 아무튼 이런 방법을 시도라도 해 볼수 있게 되어서 정말 좋습니다.
요약
1. 레드스톤 2에 hidpi 지원 강화 됨.
2. HIDPI를 미지원하는 레거시 앱들도 (최소한) 정상적인 기능을 수행하는 반쪽짜리 HIDPI로 사용 가능해짐.
3. 2.를 원하는 프로그램에다가 모두 시도, 적용할 수 있음. 또한 임의로 HIDPI를 미적용하면서 윈도우 자체의 업스케일러로도 사용 가능.