본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[android] VSYNC 가 뭐하는 녀석인지 간단히 이야기하면?

by 돼지왕 왕돼지 2017. 8. 1.
반응형

 [android] VSYNC 가 뭐하는 녀석인지 간단히 이야기하면?


https://www.youtube.com/watch?v=1iaHxmfZGGc

https://nayaneshguptetechstuff.wordpress.com/2014/07/01/what-is-vsyc-in-android/

100fps, Android 4.1, animation, delay, Device, event, fixed interval, FPS, Frame rate, frame rate gap, Gap, GPU, HZ, Kernel, project butter, vertical synchronization, vsync, vsync interval, window drawing, [android] VSYNC 가 뭐하는 녀석인지 간단히 이야기하면?, 개념


-

VSYNC 는 Vertical Synchronization 을 이야기한다.



-

Android 4.1 에 등장한 것으로 Project Butter ( UI 부드럽게 ) 에 나온 방법이다.



-

VSYNC 는 kernel 에서 fixed interval 로 계속 event 가 오는 것을 이야기한다.

animation 이나 window drawing 등이 VSYNC interval 에 맞춰서 진행된다.



-

GPU 의 fps 와 Device 의 Hz 에 차이가 있을 때 이를 조정해주는 역할을 한다.



-

예를 들어 GPU 는 100fps ( 1초에 100개의 frame 을 그릴 수 있다. ).

그리고 Device 는 75 Hz 라면 ( 1초에 75번 화면에 그릴 수 있다. ),

GPU 에서 그리는 것을 그대로 Device 에 매번 뿌린다면 계속 delay 가 생길 수 있다.

이 때 VSYNC 가 GPU 와 Device 의 이런 gap 을 계산하여 필요한 frame 만 뿌려준다.



-

반대로 GPU 가 30fps 이고, Device 가 60Hz 라면,

GPU 그리는 것보다 Device 가 더 빨리 표시하려고 하기 때문에,

해당 frame 에 GPU 가 미리 그려놓은 것을 한번 더 보여주는 재활용을 하게 된다.

이런 것도 VSYNC  를 통하게 된다.



-

결론적으로 VSYNC 가 없으면, GPU 와 Device 의 frame rate 에 대한 갭이 있을 때

부드럽게 조정하여 뿌려주는 기능이 없어 튀거나, Animation 등이 쌓이거나 하는 현상이 발생할 수 있다.

VSYNC 가 이런 현상을 방지하여 부드럽게 ( like butter ) 만들어준다.




반응형

댓글