Post Lists

2019년 10월 15일 화요일

NVIDIA G-Sync Review

https://www.anandtech.com/show/7582/nvidia-gsync-review

그것은 CES에서 거의 12달 전에 시작했었다. NVIDIA는 GeForece Experience를 발표했는데, 그것은 너가 플레이하는 게임들에서 너의 PC를 위한 최적의 graphics settings을 골라주는 문제에 대한 소프트웨어 솔루션이다. 콘솔 게임들로는, 그 개발자는 이미 visual quality와 frame rate의 올바른 균형인 것을 고르도록 했다. PC에서, 이러한 결정권은 최종 사용자에게 넘겨진다. 우리는 몇 게임들이 이용가능한 그래픽 옵션들을 제한하여 그 문제를 시도하려 해결했지만, 그것을 제외하고, 많이 널리퍼진 관심을 보지 않은 것이 문제이다. 결국, PC 게이머들은 설정을 만지작 거리는데 익숙하다 - 그것은 경험의 예측된 부분이다. PC gaming user base를 넓히려는 시도로서 (다음 세대 console wins의 부재에 의해 어느정도 동기부여 받은), NVIDIA는 GeForece Experience를 내놓았다. NVIDIA는 이미 넓은 범위의 NVIDIA 하드웨어에 걸쳐서 수 많은 게임들을 테스트 했다. 그래서 그것은 각 게임/PC 조합에 대해 무엇이 가장 좋은 설정인지에 대한 좋은 아이디어를 가지고 있다.

또한 CES 2013에서, NVIDIA는 Project Shield를 발표했는데, 나중에 그냥 Shield로 다시 이름 붙여졌다. 어느정도 이상하지만놀랍게 멋진 portable Android gaming system은 또 다른 기능의 역할을 했다 : 그것은 너의 TV에서 PC 게임들을 플레이하도록 사용될 수 있는데, 너의 PC로부터 직접 스트리밍 한다.

마침내, NVIDIA는 조용히 (최근에 매우 조용히는 아니고), Valve와 함께, 그것의 SteamOS and Steam Machine efforts에 참여했다 (인정하건데, AMD도 그랬다).

내 견해로는, 그것은 확실히, NVIDIA가 콘솔 게임의 어떤 측면들을 PC로 가져오려는 것처럼 보인다. 너는 더 나아가서, NVIDIA가 더 높은 퀄리티의 그래픽스와 더 높은 프레임율을 집중하기 보다는 여러 방식들로 게이밍을 향상시키기 위해 매우 동기부여 받은 것처럼 보인다고 말할 수 있다.

이러한 모든 것은 결국 이해가 된다. ATI와 AMD가 완전히 통합하면서, 그리고 Intel이 마침내 그래피스를 (어느정도) 진지하게 여기면서, NVIDIA는 앞으로 나아가는 산업에서 관련되도록 (그리고 주가 되도록) 좀 더 많은 것을 할 필요가 있었다. 간단히 좋은 GPUs를 만드는 것은 지금까지 그 회사만 필요할 것이다.

NVIDIA의 최신 시도는 G-Sync인데, 지원되는 NVIDIA graphics card에 의해 주도되는 semi-variable refresh rate를 활성화 하는 hardware solution이다. 그 전제는 이해하기에 간단하다. Displays와 GPUs는 본질적으로 비동기적으로 컨텐츠를 업데이트 한다. 한 display panel은 고정된 간격으로 (그것의 refresh rate로) 그 자체를 업데이트 하는데, 보통 대부분의 패널들에 대해 60 times per second (60 Hz) 이다. 게임에 특화된 displays는 120Hz 또는 144Hz의 더 높은 refresh rates를 지원할지도 모른다. 반면 GPUs는 가능한 빠르게 frames를 렌더링하고, 그것들이 처리될 때 마다 그것들을 display에게 보여준다.

너가 refresh 중간에 도착한 한 frame을 가질 떄, 그 display는 동시에 그 스크린에 여러 프레임들의 일부를 그리게 된다. 동시에 여러 frames의 일부를 그리는 것은 visual artifacts, or teras의 결과를 만들 수 있고, 개별 프레임들을 분리한다. 너는 tearing이 screen에 스크롤되는 것처럼 수평의 lines/artifacts된 것을 눈치챌 것이다. 그것은 매우 산만하다.

GPU와 display가 sync를 맞추어 tearing을 피할 수 있다. vsync를 활성화하는 것은 이것을 한다. 그 GPU는 panel의 refresh rate로 display에 sync를 맞추어 frames들을 전달할것이다. Tearing은 사라지지만, 너는 새로운 artifact를 얻는다 : stuttering.

한 게임의 각 frame의 내용은 급격하게 변할 수 있기 때문에, 그 GPU의 frame rate는 비슷하게 가변적일 수 있다. 또 다시, 우리는 GPU가 그 display로 sync없이 한 프레임을 보여주길 원하는 상황에 있는 우리자신을 발견하게 된다. vsync가 활성화 되었을 때, 그 GPU는 다음 refresh period까지 그 frame을 전달하는 것을 기다리는데, 이것은 그 중간에서 한 반복적인 프레임을 만들어 낸다. 이 반복된 frame은 그 자체로 stuttering으로서 명백해진다. 너가 완벽하게 너의 refresh rate와 일치하지 않는 frame rate를 가지는 한, 너는 보이는 stuttering의 잠재성을 얻게 된다.


G-Sync는 두 세계의 최상의 것을 제안한다고 주장한다. 간단히 말해서, G-Sync는 GPU가 새로운 프레임으로 준비가 될 때 까지, 그 display가 refresh 하는 것을 기다리도록 만들려고 시도한다. tearing도 없고, 어떠한 stuttering도 없이 - 그냥 buttery smoothness가 되도록. 물론, G-Sync display가 있는 NVIDIA GPUs들에서만 이용가능 하다. 항상 그렇듯이, 악은 세부사항에 있다.

How it Works
G-Sync는 hardware solution이고, 이 경우에, 그 hardware는 G-Sync가 활성화된 display안에 있다. NVIDIA는 G-Sync board를 위해 display의 scaler를 바꾸는데, 그 panel과 timing controller (TCON)를 손대지 않는다. display chain에서 그것의 physical location에도 불구하고, 현재의 G-Sync board는 실제로 hardware scaler의 특징을 가지지 않는다. 그것의 의도된 목적을 이ㅜ해서, 어떠한 scaling hardware의 결여는 큰 문제가 아니다. 너가 panel을 움직이고 모든 scaling duties를 처리하는 가능한 한 개 이상의 GPU를 가질 것이기 때문이다.

G-Sync는 그 display의 VBLANK (vertical blanking interval)를 조작하여 작동한다. VBLANK는 현재 프레임의 마지막 line을 rasterizing하는 display와 그 다음 프레임의 첫 번째 line을 그리는 display 사이의 시간 주기이다. 이것은 한 interval이라고 불려지는데, 이 주기동안 어떠한 screen updates가 발생하지 않기 때문에 그 display는 static하게 남아 있는데, 다음의 것을 그리기 전에 현재 프레임을 보여주고 있게 된다. VBLANK는 CRT 시절의 남응ㄴ 부분인데, 거기에서 CRTs에게 그 display의 top에서 scanning을 시작할 시간을 주는 것이 필수적이였다. 그 interval은 오늘날 LCD flat panels에서 남아 있는데, 비록 그것이 기술적으로 필수적일지 아니라도. display안의 G-Sync module은 GPU가 새로운 것을 가져다 줄 준비가 될 때 까지 display가 현재의 frame을 유지하도록 VBLANK를 수정한다.

G-Sync가 활성화된 display로, 그 모니터가 현재 프레임을 그리는 게 끝났을 때, 다음의 draw process가 시작하기전에 그것은 그 GPU가 display를 위해 준비된 또 다른 것을 가질 때 까지 기다린다. 그 delay는 순수하게 VBLANK interval를 조정하여 제어디ㅗㄴ다.

근데 너는 VBLANK 조작으로만 그렇게 할 수 있다. 현재의 구현에서, NVIDIA가 단일 프레임을 유지할 수 있는 가장 긴 시간은 33.3ms (30Hz)이다. 만약 그 다음 프레임이 그 때 까지 준비가 되지 않았다면, 그 G-Sync module은 그 display에게 그 마지막 frame을 다시 그리라고 말할 것이다. 상한은 이 시점에서 panel/TCON에 의해서 제한되는데, 오늘날 이용가능한 유일한 G-Sync monitor는 6.94ms(144Hz)까지 올라간다. NVIDIA는 그 144Hz 제한이 G-Sync limit이 아니라, panel limit이라고 언급했다.

그 G-Sync board는 그 자체로 FPGA와 DDR3 memory 768MB 특징을 가진다. NVIDIA는 on-board DRAM이 너가 일반적으로 디스플레이 안에서 보는 scaler보다 더 크지 않다고 주장한다. 그 추가된 DRAM은 부분적으로 메모리에 대해 좀 더 많은 bandwidth를 고려하는데 필수적이다 (추가적인 physical DRAM devices). NVIDIA는 많은 것들을 위해 그 메모리를 사용하는데, 그것 중의 하나는 이전 프레임을 저장하는 것이다. overdrive calculations에 대해 들어오는 frame에 대해 비교될 수 있게 하기 이ㅜ해서이다.

그 첫 번째 G-Sync module은 DisplayPort 1.2에 대해서 output만을 지원하는데, 비록 기술적으로 NVIDIA가 미래 버전의 HDMI/DVI에 대한 지원을 추가하는 것을 막는 것은 없을지라도. 유사하게, 현재 G-Sync board는 audio를 지원하지 않지만, NVIDIA는 그것이 미래 버전에 추ㅏㄱ될 수 있다고 주장한다 (NVIDIA의 생각은 여기에서, 대부분의 게이머들이 그들의 displays에 통합된 스피커보다는 다른 어떤 것을 원할 것이라는 것이다). 그 첫 번째 G-Sync 구현의 마지막 한계는, 그것은 오직 LVDS의 displays에만 연결될 수 있다느 ㄴ것이다. NVIDIA는 G-Sync module의 다음 버전에서 V-by-One 지원을 활성화할 계획인데, 비록 그것이 eDP support를 또한 활성화하는 것을 막을게 없을지라도.

G-Sync를 활성화 하는 것은 작지만 frame rate에 측정할만한 성능의 영향으 락진다. 그 GPU가 G-Sync가 활성화된채로 한 프레임을 렌더링한 후에, 그것은 그 GPU가 scan out의 중간에 scan을 하지 않을 것으 보장하기 위해 그것이 VBLANK period에 있는지 아닌지를 보기위해 display를 조회하기 시작한다. 그 조회는 약 1ms가 걸리는데, 이것은 v-sync on에 비교하여 3-5% 성능 영향을 가진다. NVIDIA는 그 polling을 전적으로 제거하려고 작업중이지만, 현재 그것이 처리되는 방법이다.


... 하드웨어에 대한 주 내요이라 생략...

댓글 없음:

댓글 쓰기