
▲ 출처: PC Perspective, "FRAME RATING: BATTLEFIELD 4 MANTLE CROSSFIRE EARLY PERFORMANCE WITH FCAT" (바로 가기)
FCAT, Frame Capture Analysis Tool은 NVIDIA사가 스터터링 문제를 인지한 후 특히 자사 제품에서 발생하는 문제를 개선하기 위해 개발하고 사용하는 분석 도구입니다. 정확히 언제부터 이런 방법을 개발하기 시작했는지는 내부 담당자만 알겠으나, GDC China 2012에 스터터링에 대한 분석을 발표(바로 가기)한 바 있고 2013년 3월쯤에 FCAT를 세간에 공개하였기 때문에 적어도 2012년 중에는 관련 작업을 하고 있었으리라 생각됩니다. 지금도 구글에서 2013년 조건으로 관련 키워드를 검색하면(예시 바로 가기) 당시의 글들을 볼 수 있습니다. FCAT의 공개 덕분에 2013년도부터 스터터링 문제가 게이머와 PC 부품 벤치마크의 본격적인 이슈로 부상했다고 할 수 있을 정도입니다.
특히 멀티 GPU 환경에서 Fraps의 FPS 측정 결과를 전혀 신뢰할 수 없는 상황이 있다는 점을 적나라하게 노출하여 Fraps 몰락의 결정타가 되기도 했죠. Fraps는 당시까지만 해도 FPS 측정 프로그램으로 유명하여 많은 벤치마크에서 사용하였지만, 이미 2003년에 업데이트가 끝난 고전 도구이기도 하여 새로운 문제에 대처하지 못할 Fraps를 대체할 도구를 찾아 나서는 계기가 되었습니다.
FCAT의 원리 자체는 간단하여 그래픽카드에서 모니터로 출력하는 신호 자체를 그대로 녹화한 후 사후분석으로 모니터상에 보일 화면 하나하나를 싹 다 분석하는 방식입니다. 거기에 매 프레임 왼쪽에 색깔 띠를 표시하는 기능도 사용합니다. 테어링(Screen tearing, 화면 찢김)으로 하나의 화면에 여러 프레임이 표시되는 문제도 정확히 분석하기 위해서입니다. 한 프레임마다 띠의 색깔이 계속 바뀌는데, 분석한 최종 화면에 여러 색의 띠가 섞여 있다면 그만큼 테어링이 생겼다는 뜻이죠. 위에서 보신 PC Perspective의 예시도 제시한 5개의 화면에서 모두 테어링이 발생한 걸 FCAT로 잡아낸 예를 보여드리는 겁니다.
이런 FCAT는 여러 극단적 상황에서도 정확하고 신뢰성 높은 분석을 보장하며, 스터터링과 테어링을 정밀하고도 적나라하게 드러낼 수 있기에 첫 공개 당시 엄청난 충격으로 다가왔습니다. 특히 어중간한 느낌으로 얘기되던 문제를 FCAT가 정확한 실체로 폭로한 대표적인 사례가 바로 런트 프레임Runt frame입니다.

▲ 출처: PC Perspective, "FRAME RATING: AMD IMPROVES CROSSFIRE WITH PROTOTYPE DRIVER" (바로 가기)
런트 프레임은 한 화면에서 빠른 간격으로 여러 번의 테어링이 발생하여 마치 화면이 찢긴 중간에 뭔가를 끼워 넣은 듯한 느낌이 드는 현상을 말합니다. 단순히 화면에 한두 번 테어링이 생겨서 화면이 찢긴 느낌이 드는 것과는 차원이 다른 불편함을 초래하기에 해외에서는 따로 명칭을 붙여서 구별합니다. 주로 SLI나 크로스파이어같이 멀티 GPU를 쓰는 환경에서 여러 GPU들 사이에 교통정리를 하지 못하고 출력 타이밍이 꼬였을 때 발생합니다.
이 문제의 실체가 FCAT를 통해 폭로될 때는 주로 AMD 크로스파이어의 문제로 지목되어 뭇매를 맞았는데요. NVIDIA는 당연히 자사가 개발한 FCAT로 문제의 원인과 특성을 분석하여 Frame Pacing이란 해결책을 개발하고 SLI에 성공적으로 도입한 상황이었습니다. 반면 라데온 그래픽카드를 개발한 ATI나 이를 인수한 AMD는 FCAT가 공개되기 전까지는 이 문제를 잘 몰랐고, 관련 문의에 대한 답변도 'MS 윈도우가 리얼타임 OS가 아니라서 여러 한계와 외부 변인이 개입할 수 있다(아무튼 우리 제품이 원인은 아니다)'라는 취지의 표현에 그치는 등 제대로 대응하지 못했기에 FCAT가 터뜨린 폭로의 후폭풍을 그대로 맞닥뜨리게 됩니다. 결국 외부 기사를 통해 FCAT와 런트 프레임 문제 등을 접한 후 1년이 넘는 기간 자사 제품에 적용할 Frame Pacing을 연구 개발하며 자체 개발 역량으로 해결하지 못하는 부분은 NVIDIA의 도움도 받았다고 합니다. 이후 두 차례에 걸쳐 관련 드라이버 업데이트를 발표하며 런트 프레임 문제는 일단락되었습니다.
이렇게 FCAT는 그 정확한 분석 능력으로 관련 커뮤니티와 회사에 큰 영향을 남겼습니다만, 사용하기 간편한 분석 도구와는 거리가 멀고 여전히 한계가 분명한 모습입니다. 매 프레임을 녹화해서 사후 분석하는 방식이라 비용과 노력이 많이 들어가고, 분석 결과의 데이터양도 매우 많은데 이를 가능한 가장 간단한 그래프로 정리하면 결국 프레임타임 그래프가 되기 때문입니다. 애초 개발 의도부터 NVIDIA 자사 제품의 문제를 정확하게 분석하고 해결하기 위함이었지, 프레임타임 분석을 간편하게 만들려고 하지 않았기 때문에 당연한 결과이기도 합니다. |