삼중 버퍼링 활성화 여부. 삼중 버퍼링 OpenGl AMD란 무엇인가요? 활성화해야 할까요, 말아야 할까요? (삼중 버퍼링, 삼중 버퍼링)

이번 리뷰의 일환으로 삼중 버퍼링이 무엇인지, 그리고 이와 관련된 기능에 대해 설명하겠습니다.

문제의 본질. 이미지를 형성할 때 먼저 전체 영역을 배경(예: 흰색 또는 특정 그림)으로 대체한 다음 개별 조각만 적용하는 것이 최적이라고 간주됩니다. 데이터를 읽고 쓰는 하나의 버퍼를 사용하면 화면이나 개별 요소의 깜박임, 간격(현재 그림의 위쪽 부분, 이전 그림의 아래쪽 부분)과 같은 문제가 발생합니다. ) 및 기타 결함이 발생할 수 있습니다.

이 문제에 대한 한 가지 해결책은 이중 및 삼중 버퍼링입니다. 그것이 무엇이며 왜 필요한지, 수직 동기화 V-Sync와 어떤 관련이 있는지 더 자세히 고려해 보겠습니다.

삼중 및 이중 버퍼링

이중 버퍼링

이중 버퍼링- 완성된 결과를 동시에 전송하고 다음 결과를 구성할 수 있는 방법입니다.

컴퓨터 그래픽에서 이중 버퍼링은 어떻게 작동합니까?깜박임 문제와 기타 결함을 해결하지만 사진이 찢어지는 문제는 해결하지 못하는 두 가지 옵션이 있다는 점은 주목할 가치가 있습니다. 첫 번째는 이미지가 컴퓨터의 RAM에 먼저 형성된 다음 모니터 버퍼에 복사되는 경우입니다(후자가 이미지를 읽고 화면에 표시함). 두 번째는 비디오 카드가 처음에 두 개의 버퍼를 지원하는 경우로, 이는 데이터 복사 없이 변경되므로 훨씬 더 빠릅니다. 이 경우 파열이 덜 자주 발생합니다.

1차 버퍼는 모니터 화면에 표시되는 이미지가 저장되는 버퍼를 의미한다는 점을 알아 두는 것이 좋습니다. 보조 버퍼란 이미지가 생성되는(렌더링이 발생하는) 버퍼를 의미합니다.

트리플 버퍼링

트리플 버퍼링- 3개의 데이터 버퍼를 사용하는 것을 특징으로 하는 더블 버퍼링의 일종이다.

컴퓨터 그래픽에서 트리플 버퍼링은 어떻게 작동합니까?메커니즘 자체는 여러 면에서 유사하지만 세 개의 데이터 버퍼(기본 버퍼와 두 개의 보조 버퍼)만 사용됩니다. 이 경우 추가 비디오 카드 버퍼가 존재하는 경우 메서드의 보조 버퍼로 사용할 수도 있습니다.

이것이 왜 필요한가요? 사실은 데이터가 복사되는 동안 비디오 카드가 유휴 상태라는 것입니다. 따라서, 추가적인 2차 버퍼를 추가하면 데이터 복사시 다음 이미지를 형성할 수 있으므로 이러한 문제를 해결하게 된다. 이를 통해 fps를 높일 수 있습니다.

그러나 이 두 기술은 일반적으로 V-Sync와 관련이 있으며 그럴 만한 이유가 있습니다. 그 이유는 다음에서 살펴보겠습니다.

V-sync를 통한 이중 및 삼중 버퍼링

V-Sync는 이미지 찢어짐 문제를 해결하기 위해 이중 또는 삼중 버퍼링과 함께 사용됩니다. 일반적인 사용과 유일한 차이점은 데이터 복사가 모니터 주파수와 동기화된다는 것입니다. 간단히 말해서, 모니터가 데이터를 읽고 표시할 때 그림은 변하지 않습니다.

메모참고: 독자는 V-Sync가 입력 지연을 증가시킨다는 점을 알아야 합니다.

V-Sync를 사용한 이중 버퍼링의 장단점은 무엇입니까?

장점 화면에 공백이 표시되지 않습니다. 비디오 카드가 강력하고 fps가 모니터 주파수보다 높으면 애니메이션의 각 프레임이 모니터 화면에 표시되기 전에 렌더링(생성)되므로 fps 감소가 느껴지지 않을 수 있습니다. 복사 지연.

마이너스. 결론은 데이터를 복사할 때 비디오 카드가 유휴 상태인 문제 외에도 모니터가 그릴 때까지 기다리는 시간이 지연된다는 것입니다. 즉, 비디오 카드가 모니터 클럭보다 더 적은 프레임을 생성하면 fps가 크게 떨어질 수 있습니다. 예를 들어, 일부 프레임은 모니터의 1 클록 주기에 표시되고 일부 프레임은 모니터의 2 클록 주기에 표시되므로 40-45fps는 30 실제 fps로 줄일 수 있습니다. fps가 30보다 작으면 최대 15프레임까지 줄일 수 있습니다.

두 번째 중요한 단점은 게임에서 비디오 카드의 실제 fps가 변동하는 경우 눈에 띄게 나타날 수 있으며 추가로 과도한 눈 피로를 유발할 수 있다는 것입니다. 예를 들어, 일부 장면에 40-50fps가 있고 다른 장면에 20-30fps가 있는 경우 이는 fps가 "30 - 15 - 30 - 15 - 15 - 30 - 30" 스타일로 번갈아 나타남을 의미합니다.

V-Sync를 사용한 삼중 버퍼링의 장점과 단점은 무엇입니까?

장점 double과 동일하지만 약간의 차이가 있습니다. 사실 삼중 버퍼링을 사용하면 모니터가 데이터를 기다리거나 복사할 때 비디오 카드가 다음 이미지를 생성하기 때문에 가동 중지 시간 문제를 없앨 수 있습니다. 이는 비디오 카드가 이미지를 빠르게 또는 느리게 생성하는 경우 특히 유용합니다. 단, V-Sync로 인해 영상이 주기적으로 누락되는 형태의 단점이 있을 수 있습니다.

마이너스. 첫 번째 단점은 삼중 버퍼링에 더 많은 컴퓨팅 리소스가 필요하다는 것입니다. 두 번째 단점은 모든 지연을 고려하여 비디오 카드가 항상 이미지를 빠르게 생성하는 경우 삼중 버퍼링의 이점이 상실된다는 것입니다. 제삼. 컴퓨터가 "약한" 경우 이 방법을 활성화하면 실제 fps가 줄어들 수 있습니다. 이는 더 많은 컴퓨팅 리소스가 필요하기 때문에 첫 번째 단점으로 인해 발생합니다. 이 경우 트리플 버퍼링뿐만 아니라 V-Sync도 비활성화하는 것이 좋습니다.

버퍼링은 교환, 즉 컴퓨팅 장치 및 컴퓨터에서 데이터의 입력 및 출력을 구성하는 방법입니다. 버퍼는 데이터를 임시로 저장하는 장소로 사용됩니다. 데이터 입력 중에 일부 장치는 버퍼에 데이터를 쓰는 반면 다른 장치는 버퍼에서 데이터를 읽습니다. 출력할 때 모든 것이 정반대입니다.

버퍼링을 어디서 만나나요?

PC의 거의 모든 프로세스가 이 프로세스와 관련되어 있습니다. 무식한 사람이 버퍼링이 무엇인지 이해하는 것은 쉽지 않습니다. 그러나 관찰하는 것은 매우 간단합니다. 동일한 영화가 온라인으로 다운로드되고 데이터가 버퍼링되고 영화가 컴퓨터에 없지만 CACHE에 로드되어 재생됩니다.

이 작업을 통해 프로세스는 서로 독립적으로 데이터 입력 및 출력을 수행할 수 있습니다. 유용성으로 인해 버퍼링은 다기능 운영 체제에서 사용됩니다.

여러 유형이 입력, 출력 및 이미지 처리를 위해 컴퓨터 그래픽에 사용됩니다. 구현은 하드웨어 또는 소프트웨어에서 발생합니다.

버퍼링의 예로는 수신 및 전송된 파일을 임시로 저장하는 데 사용되는 모뎀의 RAM이 있습니다.
소프트웨어 버퍼링의 예로는 인쇄용 데이터를 입력할 때 파일이 일시적으로 인쇄 대기열에 다운로드되는 멀티태스킹 운영 체제가 있습니다.

고급 PC 사용자는 버퍼링이 무엇인지 알아야 합니다.
정보기술 분야에는 항상 피상적인 정보와 심층적인 정보가 존재합니다. 버퍼링이 무엇인지 이해한 후에는 더 나아가 해당 유형을 더 자세히 고려할 수 있습니다.

이중 및 삼중 버퍼링이 존재하는 것으로 알려져 있습니다. 이에 대해서는 다음 소제목에서 논의할 것입니다.

삼중 버퍼링 - 그게 뭐죠?

컴퓨터 그래픽에서 논의되는 이러한 유형의 프로세스는 일종의 이중 버퍼링입니다. 유일한 차이점은 이미지 출력 방법입니다. 트리플을 사용하면 아티팩트 수를 피하거나 줄일 수 있습니다. 이미지 출력 속도에도 이중 버퍼링과 삼중 버퍼링의 차이가 있습니다.

트리플 버퍼링 방식도 여기서는 전체 그래픽 출력량에서 변경 요청을 위한 여유 공간을 제공하는 방식으로 세 번째 버퍼와의 동기화가 사용됩니다. 일종의 저장시설 역할을 합니다. 삼중 버퍼링 방식은 더 많은 리소스를 필요로 하지만 일관된 프레임 속도를 제공합니다.

버퍼는 3개로 제한되지 않습니다. 그러나 다운로드한 파일을 임시로 저장하기 위해 4개 이상의 장소가 필요하지 않으며 그 중 3개만 항상 활발하게 작동합니다. 따라서 가장 좋은 옵션은 삼중 버퍼링입니다.

게임에서 버퍼링이 무엇인지 살펴 보겠습니다.

버퍼링은 게임 이미지를 전송하는 데에도 사용됩니다. 게임은 더블과 트리플을 모두 사용합니다. 이중 버퍼링은 약한 PC 및 OS를 위한 반면, 삼중 버퍼링은 더 강력한 PC 및 OS를 위한 것입니다.

약한 OS에서 트리플 버퍼링을 사용하면 게임이 중단될 수 있습니다. 즉, 성능은 컴퓨터에서 실행 중인 프로세스 유형에 따라 달라집니다. 게임도 다르며 PC와 OS에 대한 요구 사항도 다릅니다.

게임 제조업체는 다양한 방법을 사용하여 창작물을 만들기 때문에 버퍼링 유형을 선택하는 것은 매우 어렵습니다. 그렇기 때문에 게임 포럼에서 특정 게임이 삼중 버퍼링과 잘 작동하지 않거나 그 반대의 경우도 있다는 이야기를 자주 듣게 됩니다.

이상적으로 제조업체는 특정 게임의 시스템 요구 사항, 다양한 운영 체제와의 호환성, 버퍼링 지원 등을 표시해야 합니다.

제조업체에서 호환성에 대한 구체적인 정보를 제공하지 않은 경우 직접 확인할 수 있습니다. 어쨌든 시간만 낭비할 뿐 컴퓨터에 해를 끼치지는 않습니다. 비호환성은 그래픽 시각화의 억제와 이미지와 사운드의 동기화 불량에 반영되므로 거의 즉시 확인할 수 있습니다.

출력 버퍼링 정보

출력 버퍼링은 매우 유용한 것입니다. 이 기능은 스크립트의 모든 출력을 스택하고 쿠키 헤더 및 기타 결과 특정 스크립트를 추가하는 것으로 구성됩니다. 정보 처리가 완료된 후 모든 데이터는 역순으로 클라이언트에 전송됩니다. 즉, 먼저 헤더, 페이지, 스크립트 결과 순으로 전송됩니다.

출력 버퍼링의 힘

  1. 스크립트의 어느 곳에서나 쿠키를 보냅니다.
  2. 세션은 언제든지 시작됩니다.
  3. 데이터를 클라이언트에 보내기 전에 압축합니다.

압축에는 추가 CPU 리소스가 필요하다는 점에 유의하세요. 하지만 전송 속도는 사진과 텍스트 수에 따라 40% 증가합니다. 그림은 텍스트보다 훨씬 더 심하게 압축되는 것으로 알려져 있습니다. 출력 버퍼링은 기본적으로 활성화되어 있지 않습니다.

출력 버퍼링을 활성화하는 방법에는 두 가지가 있습니다.

  1. 서버 자체를 소유하고 있거나 php.ini 파일에 액세스할 수 있는 사용자에게 적합합니다. 필요한 것은 이 파일에서 output_buffering 지시문을 찾아 On 값을 할당하는 것입니다.
  2. 두 번째 방법은 출력을 버퍼링해야 하는 스크립트에서 ob_start()를 사용하는 것입니다.

그래서 우리는 버퍼링이 무엇인지 알아냈습니다.

; 수를 피하거나 줄이는 이미지 출력 방법 인공물.

트리플 버퍼링을 사용하면 기존에 비해 이미지 출력 속도가 향상됩니다. 이중 버퍼링. 실제 응용 프로그램에서는 새로 고침 빈도와 동기화하여 그래픽 작업을 추상화하려는 시도가 포함되는 경우가 많습니다. 감시 장치. 일반적으로 프레임은 이로 인해 발생하는 일반적인 효과(즉, 깜박임, 이동, 찢어짐) 없이 화면 새로 고침 빈도(가변 프레임 속도)보다 낮거나 높은 속도로 그려집니다. 왜냐하면 프로그램화면 업데이트 이벤트를 수신하기 위해 하드웨어를 폴링할 필요가 없으며 알고리즘은 최대한 빨리 자유롭게 실행됩니다. 이는 사용 가능한 유일한 삼중 버퍼링 방법은 아니지만 아키텍처에서 가장 널리 사용되는 방법입니다. PC, 자동차의 속도가 크게 달라질 수 있습니다.

삼중 버퍼링의 또 다른 방법은 전체 그래픽 출력에서 ​​변경 요청을 위한 여유 공간을 제공하기 위한 방법으로 세 번째 버퍼를 사용하여 화면 새로 고침 빈도와 동기화하는 것입니다. 여기서 버퍼는 저장소 역할을 하는 진정한 의미로 사용됩니다. 이 방법은 더 높은 최소 요구 사항을 적용합니다. 하드웨어, 그러나 일관된(가변 대비) 프레임 속도를 제공합니다.

삼중 버퍼링에는 세 개의 버퍼가 사용되지만 이 방법은 응용 프로그램에 필요한 버퍼 수만큼 확장될 수 있습니다. 일반적으로 4개 이상의 버퍼를 사용해도 아무런 이점이 없습니다.

백과사전 유튜브

    1 / 3

    ✪ YouTube 동영상 버퍼링

    ✪ Mozilla Firefox 브라우저에서 YouTube 동영상 버퍼링

    ✪ 중단 없이 온라인으로 비디오를 시청하세요!!!

    자막

이중 버퍼링의 단점

시스템에 두 개의 버퍼 A와 B가 있는 경우 버퍼 B를 표시하는 동시에 버퍼 A에 새 이미지를 생성할 수 있습니다. 버퍼 A의 이미지가 준비되면 시스템은 모니터 빔이 버퍼를 변경하기 위해 돌아올 때까지 기다려야 합니다. 이 대기 기간은 버퍼가 전혀 건드리지 않는 동안 몇 밀리초가 될 수 있습니다. 수직 스캔이 완료되는 순간 버퍼 A와 B를 교환한 다음 버퍼 B에서 이미지 빌드(페이지 전환)를 시작하거나 버퍼 A를 버퍼 B로 복사하고 버퍼 A에 그릴 수 있습니다.

삼중 버퍼링의 이점

시스템에 세 개의 버퍼(A, B, C)가 있는 경우 버퍼가 변경될 때까지 기다릴 필요가 없습니다. 버퍼 A에 이미지를 구축하여 버퍼 B를 표시할 수 있습니다. 버퍼 A의 이미지가 준비되면 즉시 버퍼 B에 이미지 구축을 시작합니다. 수직 스캔이 일시 중지되면 버퍼 A가 표시되고 버퍼 B는 재사용을 위해 해제되었습니다.

삼중 버퍼링의 한계

시스템이 화면에 버퍼를 표시하는 데 걸리는 시간보다 항상 짧은 시간에 버퍼를 채우면 컴퓨터는 버퍼 수에 관계없이 항상 모니터 신호를 기다립니다. 이 경우 삼중 버퍼링은 더 이상 이점이 없습니다.

새로 고침 빈도가 75Hz이고 초당 100프레임인 예로 돌아가 보겠습니다.
수직 동기화가 활성화되면 이미지 아티팩트가 사라집니다.
특히 복잡한 장면의 렌더링 속도를 약 60fps로 줄이고 VSync를 활성화하면 실제 프레임 계산 속도가 거의 절반으로 떨어집니다.

즉, 이중 버퍼링과 결합된 Vsync는 렌더링 속도가 화면 주사율 이하로 떨어지지 않는 경우에만 적합합니다. 다른 경우에는 성능이 급격히 떨어지기 때문입니다.

엔지니어가 이 문제에 대한 해결책을 찾지 못한다면 이상할 것입니다.
기본 버퍼가 비어 있을 때까지 기다리면서 렌더링 속도가 떨어지는 것을 방지하기 위해 트리플 버퍼링 기술이 개발되었습니다. 즉, 위에서 설명한 방식에 또 다른 프레임 버퍼가 추가되었습니다.
덕분에 카드는 기본 버퍼가 자유로워질 때까지 기다릴 필요가 없으며 이 세 번째 버퍼에서 이미지를 계산합니다.

트리플 버퍼링은 다음과 같이 작동합니다(렌더링 속도는 초당 50프레임, 모니터 새로 고침 빈도는 75Hz).
첫 번째 프레임은 기본 버퍼에 있고 두 번째 프레임의 2/3는 보조 버퍼에서 처리됩니다.

화면이 첫 번째 프레임으로 업데이트된 후 두 번째 프레임의 마지막 1/3이 보조 버퍼에 들어가고 세 번째 프레임의 세 번째 프레임이 세 번째 버퍼에서 "렌더링"되기 시작합니다.
두 번째 화면이 첫 번째 프레임으로 업데이트된 후 두 번째 프레임이 기본 버퍼에 복사되고, 세 번째 프레임의 첫 번째/1/3이 보조 버퍼로 이동됩니다.

프레임 3의 나머지 2/3는 세 번째 버퍼에서 처리되고, 첫 번째 화면 업데이트는 두 번째 프레임에서 발생하며, 프레임 3은 완전히 보조 버퍼로 전송됩니다.
그런 다음 이 과정이 처음부터 반복됩니다.

쉽게 계산할 수 있듯이 이 경우 3번의 새로 고침 주기에 두 프레임이 화면에 표시됩니다. 이는 스캔 속도의 2/3, 즉 초당 50프레임이며 이것이 예제의 최대 잠재 렌더링 속도입니다. 문제의.
트리플 버퍼링 방식 덕분에 비디오 카드의 유휴 시간이 최소화되고 보시다시피 매우 좋은 결과를 제공합니다.

불행하게도 모든 컴퓨터 게임이 삼중 버퍼링을 지원하는 것은 아닙니다.
또한 컴퓨팅 리소스와 비디오 메모리의 특정 부분을 차지합니다.
그러나 현재 낮은 렌더링 속도에서 고품질 이미지를 얻기 위한 이 기술에 대한 대안은 없습니다.

이 자료를 읽은 후 일부 사람들은 비디오 카드 설정에서 수직 동기화를 활성화하는 것이 가치가 있습니까, 아니면 비활성화하는 것이 더 나은지 질문할 수 있습니다.
이 질문에 대한 명확한 대답은 없습니다.
분명히 비디오 카드의 기능을 확인하고 일부 합성 또는 게임 테스트를 실행하려면 VSync를 비활성화하는 것이 좋습니다.

이 경우 사진이나 게임 플레이를 즐기지 않고 단순히 특정 측정 단위에서 비디오 카드의 최대 성능에 대한 정보를 얻고 싶을 것입니다.
그런데 모든 GPU 테스트는 수직 동기화가 비활성화된 상태에서 수행되므로 실제 게임 상황에서는 카드가 특정 테스트에서 설명한 것보다 눈에 띄게 느려질 수 있습니다.

아티팩트 없이 최고 품질의 이미지를 얻으려면 수직 동기화를 활성화해야 합니다.
이 솔루션의 유일한 단점은 렌더링 속도가 모니터의 새로 고침 빈도보다 낮아지는 특히 복잡한 장면에서 성능이 급격히 떨어진다는 것입니다.

이는 특정 응용 프로그램이 삼중 버퍼링을 지원하는 경우에만 처리할 수 있습니다. 그렇지 않으면 VSync를 비활성화하거나 일시적으로 낮은 성능을 피할 수 없는 사실로 받아들여야 합니다.

수직 동기화 및 삼중 버퍼링을 활성화하거나 비활성화하는 방법을 알아보기 위해 ATI(Catalyst Control Center) 비디오 카드용 "제어 센터"의 예를 살펴보겠습니다.
Catalyst Control Center는 Microsoft 웹 사이트에서 무료로 다운로드할 수 있는 .NET Framework 1.1 환경이 시스템에 설치된 경우에만 작동한다는 점을 상기시켜 주십시오.

이 유틸리티를 사용할 필요는 없습니다. 모든 ATI 비디오 카드는 기존의 "제어판"에서 작동할 수 있습니다.

VSync 설정에 액세스하려면 왼쪽의 "트리"에서 3D 항목을 선택하고 "모든 설정" 하위 항목인 "수직 새로 고침 대기" 섹션을 선택해야 합니다.
기본 설정은 다음과 같습니다. Vsync는 비활성화되어 있지만 실행 중인 응용 프로그램을 통해 활성화할 수 있습니다.

이는 가장 합리적인 설정이며 대부분의 경우 변경하면 안 됩니다.
레버를 가장 왼쪽으로 옮기면 VSync가 강제로 비활성화되고, 레버를 가장 오른쪽으로 옮기면 강제로 활성화됩니다.
맨 왼쪽에 있는 위치는 가능한 최고의 성능을 제공하고 맨 오른쪽에 있는 위치는 가장 높은 품질을 제공합니다.

여기에서 수직 동기화를 활성화할 수 있지만 애플리케이션에서 필요하지 않으면 사용되지 않습니다.

"3D" 항목과 "API 특정" 하위 항목으로 이동하여 삼중 버퍼링을 활성화할 수 있습니다.
여기서 모든 게임이 이 기능을 지원하지 않는 이유가 즉시 분명해집니다. 삼중 버퍼링은 OpenGL 프로그래밍 인터페이스(API)와 함께 작동하는 응용 프로그램에서만 가능합니다.
해당 줄은 이 API 설정에 제공됩니다(아래에서 두 번째 항목).
기본적으로 삼중 버퍼링은 비활성화되어 있습니다.

마지막으로 위의 모든 사항이 CRT와 LCD 모니터 모두에 적용된다는 점을 다시 한 번 강조합니다.
이미지 출력 원리의 근본적인 차이점에도 불구하고 비디오 카드(즉, 드라이버, 운영 체제 및 특정 응용 프로그램)의 경우 생성된 프레임이 특정 주파수로 전송되는 동일한 유형의 장치입니다.

그러나 액정 디스플레이 소유자는 운이 좋습니다. 이러한 모니터의 경우 일반적인 스캔 주파수는 60Hz에 불과하며 강력한 비디오 카드가 있는 경우 드물게 렌더링 속도가 60fps 미만으로 떨어집니다.

이 짧은 기사가 비디오 카드 포럼에서 부러워할 만큼 정기적으로 나타나는 질문에 대한 답변을 얻는 데 도움이 되기를 바랍니다.
보시다시피 모든 것이 매우 단순하지만 모호하기도 합니다...

Windows 10 누적 업데이트 1903 KB4515384(추가됨)



 

다음 내용을 읽어보는 것이 도움이 될 수 있습니다.