반응형

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로 읽어들여야 하는 경우 사용됨, 

반응형

+ Recent posts