D3D12 그래픽칩별 이런저런 현상
<intel HD520>
<intel HD520>
- 이전 드라이버에선 GPU메모리 사용랑이 1GB넘어가면 드라이버가 hang되어버렸음. 현재 최신 베타드라이버에선 돌아는 감.
- 심.각.하게 느림. GPU 에서 땡겨갈 수 있는 데디케이트 메모리가 부족해서 시스템 메모리로 스왑이 자주 일어나는게 원인일거라고 추측함. 참고로 같은 사이즈의 리소스를 사용할때 D3D12는 데디케이트 메모리를 3배쯤 쳐먹음.
D3D12에선 리소스 -> 리소스 전송도 Command List를 사용하는데 이 부분도 엄.청 느림. 렌더링 뿐 아니라 Command List를 execute()하는게 다 느린걸로 보임. - 화면 z-fighting비슷한 현상이 일어남. z-fighting으로 보이는데 모자이크 형태로 지글거림. 점이 아니고 상자형으로.
<nvidia Desktop – GTX970>
- D3D12 Debug Layer를 활성화시키면 엉뚱한 디버그 메시지를 출력할때가 있음. 주로 IASetVertexBuffer()관련.
- D3D11에선 GPU클럭이 최대로 올라가는데 D3D12에선 1/3선으로 떨어지고 그만큼 성능도 안나옴. D3D11보다 무조건 느림. 그냥 화면 플립핑만 해도 D3D11보다 느림.
<nvidia Optimus – Surface Book dGPU, GTX980M>
- 만족할만 정도는 아니지만 대체로 D3D11보다 D3D12에서 성능이 잘 나오는 편. 적으면 20% 많으면 50%까지.
- Present()를 호출하면 Command 가 완료되지 않았다는 에러를 발생. Present()하기 전에 모든 Command List의 수행이 완료되길 대기해도 똑같음. 삼각형 하나 그리는 MS의 기본 샘플에서도 똑같은 에러 발생. 무시해도 그냥 돌아가는데 프레임이 높게 나올 경우(200프레임 이상) 화면에 갈라짐이 발생함.
<AMD>
- 내가 AMD GPU를 지인짜 싫어해서 한번도 안돌려봄. 현재 DX12로 출시된 게임들의 벤치마크를 보면 제일 멀쩡하게 돌아가는 모양? 멘틀이 DX12랑 유사한데 그래서 드라이버쪽에서 미리 준비가 되었었다고 추측함.
인텔은 기대도 안한다.
AMD는 어차피 안쓸거다.
nvidia각성해라.