( 본 게시글은 작성자가 메모용으로 사용하는 용도임을 밝힙니다. 정보가 불확실할 수 있으니 참고 부탁드립니다 )
옛날 방식
CPU에서 RAM에 있는 데이터를 읽고 처리하여 매 프레임마다 GPU로 전달하는 방식이였다. 그런데 이는 전달하지 않아도 될 때에도 데이터를 전달하게 되는 큰 낭비가 발생하게 된다.
현재 방식
GPU한테 데이터를 다 보내놓고 필요할때마다 신호를 주는 방식이다. GPU는 데이터를 VRAM에 저장한 상태에서, CPU에서 그렇게하라는 신호가 오면 VRAM에서 데이터를 가져와서 연산하는 방식이다. GPU의 bus는 PCIE라는 것을 사용한다. 이는 그래픽 카드에서 주로 사용하는데 그만큼 전송할 데이터양이 많아서 그렇다. 또 VRAM은 DDR5를 사용한다. 즉 컴퓨터에서 가장 빠른 메모리와 가장 빠른 버스를 사용하는것이 GPU이다. 그만큼 GPU의 연상량이 많다는 것이다.
GPU 메모리에 공간을 할당하고, 넣어야할 데이터가 많다. 이는 malloc, new로 감당할 수 없을 정도로 많다. 그래서 buffer를 사용하여 GPU를 사용해야 한다. buffer를 만들어 놓고, buffer에 데이터를 미리 보내놓고, 필요할때마다 GPU가 렌더링할 수 있는 구조로 만들어지게 되었다.
'DirectX 2D > DirectX 2D 정리' 카테고리의 다른 글
Projection의 2가지 종류 (0) | 2023.01.12 |
---|---|
렌더링 파이프라인 ( Rendering Pipeline ) (0) | 2022.10.18 |