glxgears에 대한 수직 동기화 비활성화
때로는 Linux 3D 가속이 실제로 작동하는지 ( glxinfo
출력 외에 ) 확인해야합니다 . 이는 glxgears
도구 로 빠르게 수행 할 수 있습니다 . 그러나 FPS는 종종 디스플레이 수직 재생률 (예 : 60fps)로 제한됩니다. 따라서 소프트웨어 렌더링조차도 최신 CPU에서 60FPS glxgears를 쉽게 생성 할 수 있기 때문에 도구는 다소 쓸모가 없습니다.
나는 이것에 대한 빠르고 쉬운 해결책을 얻는 것이 다소 어려웠다는 것을 알았고 내 질문에 답했습니다. 시간이 절약되기를 바랍니다.
vblank_mode
환경 변수 트릭을 수행합니다. 그런 다음 최신 하드웨어에서 수백 FPS를 얻을 수 있습니다. 이제 결과를 다른 사람과 비교할 수 있습니다.
$> vblank_mode=0 glxgears
NVIDIA 비공개 소스 드라이버를 사용하는 경우 __GL_SYNC_TO_VBLANK
환경 변수를 사용하여 즉시 수직 동기화 모드를 변경할 수 있습니다 .
~$ __GL_SYNC_TO_VBLANK=1 glxgears
Running synchronized to the vertical refresh. The framerate should be
approximately the same as the monitor refresh rate.
299 frames in 5.0 seconds = 59.631 FPS
~$ __GL_SYNC_TO_VBLANK=0 glxgears
123259 frames in 5.0 seconds = 24651.678 FPS
이것은 346.46 NVIDIA 드라이버를 사용하는 Ubuntu 14.04에서 나를 위해 작동합니다.
Intel 그래픽 및 AMD / ATI 오픈 소스 그래픽 드라이버 용
/etc/X11/xorg.conf
다음 지시문 중 하나가 포함 된 "장치"섹션을 찾으십시오 .
Driver "intel"
Driver "radeon"
Driver "fglrx"
해당 섹션에 다음 줄을 추가합니다.
Option "SwapbuffersWait" "false"
그리고 vblank_mode
환경 변수를 다음과 0
같이 설정 하여 애플리케이션을 실행하십시오 .
$ vblank_mode=0 glxgears
독점 Nvidia 드라이버가있는 Nvidia 그래픽의 경우
$ echo "0/SyncToVBlank=0" >> ~/.nvidia-settings-rc
nvidia-settings
에서 옵션을 선택 취소하여 GUI 에서 동일한 변경을 수행 할 수 있습니다 X Screen 0 / OpenGL Settings / Sync to VBlank
. 또는 ~/.nvidia-settings-rc
파일을 수정하지 않고 설정을 테스트하려면 다음과 같이 할 수 있습니다.
$ nvidia-settings --load-config-only --assign="SyncToVBlank=0" # disable vertical sync
$ glxgears # test it out
$ nvidia-settings --load-config-only # restore your original vertical sync setting
다른 답변을 모두 모아서 작동하는 명령 줄은 다음과 같습니다.
env vblank_mode=0 __GL_SYNC_TO_VBLANK=0 glxgears
이는 Mesa 및 NVidia 드라이버 모두에서 작동하는 이점이 있으며 구성 파일을 변경할 필요가 없습니다.
nvidia-settings (OpenGL 설정 탭)에서 VBlank에 동기화 확인란을 비활성화하는 것이 저에게 트릭입니다.
Bumblebee를 사용하여 인텔 카드와 nvidia 카드에서 작동하는 솔루션을 찾았습니다.
> export vblank_mode = 0
glxgears
...
optirun glxgears
...
export vblank_mode = 1
인텔 드라이버의 경우이 방법도 있습니다.
수직 동기화 (VSYNC) 비활성화
인텔 드라이버는 수직 동기화를 위해 트리플 버퍼링을 사용하므로 전체 성능을 허용하고 찢어짐을 방지합니다. 수직 동기화를 끄려면 (예 : 벤치마킹을 위해) 홈 디렉토리에서 다음 .drirc를 사용하십시오.
<device screen="0" driver="dri2">
<application name="Default">
<option name="vblank_mode" value="0"/>
</application>
</device>
참고 URL : https://stackoverflow.com/questions/17196117/disable-vertical-sync-for-glxgears
'Nice programing' 카테고리의 다른 글
NuGet 패키지 관리자 : 'AutoMapper'에 이미 'Microsoft.CSharp'에 대한 종속성이 정의되어 있습니다. (0) | 2020.10.15 |
---|---|
포인터를 정수로 변환 (0) | 2020.10.15 |
Laravel Request :: all ()은 정적으로 호출하면 안됩니다. (0) | 2020.10.15 |
전체 서브넷에 대해 MySQL에 대한 원격 액세스 권한을 부여하는 방법은 무엇입니까? (0) | 2020.10.15 |
SMTP 서버에 보안 연결이 필요하거나 클라이언트가 인증되지 않았습니다. (0) | 2020.10.15 |