반응형
Map 함수를 통해서 vertex 버퍼를 잠글려고 하는데 S_OK가 아니라 E_INVALIDARG 결과가 떴다
알고보니 Usage, CPUAccessFlags
부분을 아래와 같이 수정해줬어야 했다
Usage 부분이 어떤 역할을 하는지 알아봤다
D3D11_USAGE_DEFAULT :
GPU에 의해 read/write 가능, CPU 에서 접근 불가
종종 변경하기도 하는 자원에 가장 최적
렌터 타겟 텍스처, 스트림 출력 vertex buffer
D3D11_USAGE_IMMUTABLE :
GPU에 의해 read only, CPU에서 접근 불가
반드시 생성할때 초기화 되어야함, 생성후 변경 불가
D3D11_USAGE_DYNAMIC :
GPU 에서 read 가능, CPU 에서 write 가능
CPU가 자원의 내용을 생산하고 GPU가 자원의 내용을 읽어들임, CPU는 못함,
매프레임 마다 CPU 에서 업데이트 할 때 사용함, Map을 해서 업데이트함
상수버퍼
D3D11_USAGE_STAGING :
GPU 에서 CPU로 데이터 이동(복사)를 지원함, GPU에서 자료를 계산, 조작하고, 저장하거나 CPU로 읽어들여야 하는 경우 사용됨,
반응형
'GameProgramming > DirectX11' 카테고리의 다른 글
DirectX11 COM 객체 메모리 누수 추적하기 (1) | 2021.02.18 |
---|---|
DirectX11 텍스트 폰트 깨짐, 클라이언트 및 전체 윈도우 영역 정하기 (0) | 2021.02.10 |
DirectX11 어처구니 없는 쉐이더 실수 (0) | 2020.05.29 |
DirectX11 plane(평면) test (0) | 2020.05.24 |
DirectX11 Mesh 텍스쳐 적용, 카메라 키보드 + 마우스 컨트롤 (0) | 2020.05.22 |