GameProgramming/DirectX11
DirectX11, Map 함수, E_INVALIDARG
디벨로프드림
2021. 2. 7. 01:07
반응형
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로 읽어들여야 하는 경우 사용됨,
반응형