DirectX11 Map Unmap의 GPU 동작에 대한 차이점

5206 단어 DirectX11
내가 사용하는 노트북에서
DirectX11의 API를 잘 이해하지 못해 발생한 이벤트 로깅
노트북에 GPU가 포함된 환경에서 DX10 이후의 학습을 수행하는 사람
나는 네가 같은 실수를 범하지 않기를 바란다.
여기에 사용된 FBX의 그리기 처리는 아래 사이트의 방법을 참고하였다
http://gameworkslab.jp/프로그램 문서 요약 / 라이브러리 /
3D 모형에 관해서는 이쪽 물건을 빌려 주십시오
http://6b.u5ch.com/others/downloads/index.html
■ PC 사용
・SurfaceBook2
・프로세서: Intel(R) Core(TM) i7-8650U [email protected](8CPUs), ~2.1GHz
・GPU0:Intel(R)UHD Graphics 620
・GPU1:NVIDIA GeForce GTX 1060
■ 환경
・Visual Studio 2017,DirectX11C++

SurfaceBook2에서 다음 그림처럼 Exe 파일을 마우스 오른쪽 버튼으로 눌렀을 때
Intel GPU 및 Nvidia GPU로 전환할 수 있습니다.
   
이 항목을 변경할 때 개인이 그린 프로그램이 올바르지 않은 것을 발견합니다
(왼쪽) Intel(R) UHD Graphics 620에서 드로잉 조사를 위해 모델 확대(오른쪽) GeForce GTX 1060: 작게 표시

GeForce GTX 1060 드라이버는 최신 버전에서도 변경되지 않음
거울로 삼다.
DirectX9 프로그램에서 두 개의 GPU를 전환한 경우 모델이 올바르게 그려질 수 있음
DirectX11의 코드 측면 오류 추정
DirectX11은 Visual Studio의 디버깅 기능을 통해 섀도우 프로그램의 파이프라인을 볼 수 있습니다.
제가 찾아볼게요.
(왼쪽) Intel(R) UHD Graphics 620에서 그리기(오른쪽) GeForce GTX 1060:
http://gameworkslab.jp/프로그램 문서 요약 / 라이브러리 /
비교적 알고 있는 상술한 정보에 근거하여 원인을 확정하다
Intel(R) UHD Graphics 620의 경우 D3D11MAPPED_SUBRESOUR CE의 pData 값 읽기

NVIDIA GeForce GTX 1060에서 읽을 수 없음

이것은 결과에 근거하여 수정된 사선 부분 처리의 예(오른쪽에 두 개의 GPU에서 정상적으로 동작하는 코드)

(이곳에서 new, delete는 당연히 좋지 않습니다. 나중에 처리가 옮겨집니다.)
두 GPU 모두 의도대로 그린 결과(선인장의 위치가 다르니 신경 쓰지 마세요)

■ 위의 결과에서 요약
·Intel의 내장형 그래픽 GPU는 보드에 있으므로 읽을 수 없었던 맵 API로부터 D3D11MAPPED_SUBRESOUR CE로 추정되는 pData가 정보를 읽었습니다.
개작할 수 있는 것으로 여겨지다.(보드의 GPU에서 발생할 수 있음)
→반대로 이해한 뒤 활용
통합형 GPU에 대한 최적의 프로세싱을 작성할 수도 있습니다.
• CPU에서 격자 기울기를 할 때
상기 이유에 따라 각 모델은 정점 정보를 반복적으로 유지한다
(그래서 GPU 스키장으로 옮기고 싶다)
■ 교훈
・D3D 11MAP_WRITE_DISCARD 로고는 GPU 측에서 전역 업데이트를 구상하기 때문에
Map, Unmap으로 작업하려는 정보를 CPU로 유지 및 재작성
• Visual Studio의 그래픽 디버깅에서 처음 정점 정보가 정확하지 않은 경우
전 단계에 이런 현상이 발생한 적이 있는지 의심하다
드디어 SurfaceBook2의 GTX1060을 사용할 수 있게 되었습니다...

좋은 웹페이지 즐겨찾기