비타Cpp

상주성(Residency) 본문

DirectX12/메모

상주성(Residency)

멍C 2021. 7. 26. 15:27

복잡한 게임은 텍스처, 3차원 메시 등 많은 자원들을 사용한다. 그런데 그 자원들 중 항상 GPU에 상주해 있어야 하는것들은 많지 않다. 즉, 필요한 자원은 GPU의 메모리에 '입주' 시켜야 하고, 반대로 한동안 필요 없는 자원은 GPU의 메모리에서 '퇴거' 시킴으로써 자원의 상주성(Residency)를 관리할 필요가 있다.

예를들어, 게임에서 숲과 숲 속에 있는 큰 동굴이 있을때, 숲에서 동굴안을 표현하는 자원은 필요 없으며, 동굴 안에서도 숲의 자원이 필요 없을때 상주성 관리가 필요하다.

상주성 관리의 핵심은 응용 프로그램이 사용하는 GPU 메모리의 양을 최소화 하는데에 있다. 게임에서 사용되는 모든 자원이 메모리에 들어갈수 없을수도 있고, 다른 응용프로그램도 메모리를 사용 해야 할 수도 있기 때문에 이러한 상주성 관리는 반드시 필요하다.

하지만 너무 짧은 시간마다 GPU에서 자원을 넣었다 뺐다 하는것은 지양해야 한다. 왜냐하면 GPU에서 자원을 입주,퇴거 시키는 행위 자체가 비용이 들기 때문이다. 대체로 게임의 레벨이 바뀌는 지점에서 입주, 퇴거가 일어난다.

 

Comments