D3D12 리소스 수명관리 + 디버깅 스토리

렌더링 중 GPU내부에서 크래시를 유발하는 버그를 찾아서 수정했다. 재현이 쉽지 않기 때문에 요 몇 개월 사이에 간헐적으로 나오던 GPU크래시의 원인이라고 단정지을 수는 없지만, 이것까지 해서 적어도 내가 인지하고 있는 GPU크래시 유발 가능한 버그는 다 잡았다. D3D12는 리소스가 gpu에서 사용중인지 아닌지를 판별하지 않고 자동 관리도 하지 않기 때문에 GPU에 명령을 제출하고 나서 작업이 완료됐는지를 확인하지 않고 … More D3D12 리소스 수명관리 + 디버깅 스토리

인프런에 ‘CUDA프로그래밍 입문’강의 올렸습니다.

“CUDA 프로그래밍 입문”이라는 제목으로 인프런에 12챕터짜리 강좌를 올렸습니다.CUDA에 관심이 있지만 어떻게 시작해야 할지 막막하셨던 분들에게 도움이 되리라 생각합니다.인프런에서 검색하지 마시고 아래의 링크를 클릭해서 구입해주시면 제게 경제적으로 더 도움이 됩니다. CUDA프로그래밍 입문– https://inf.run/Ggqn5 다른 강의들도 도움이 될 수 있으므로 살펴보시기 바랍니다. D3D12프로그래밍 기초편 – https://inf.run/WYdmsD3D12프로그래밍 기초플러스 – https://inf.run/dW4QZDirectX Raytracing 프로그래밍 – https://inf.run/ovHNqWindows System 프로그래밍 – https://inf.run/JQMeCWindows Debugging Tips – https://inf.run/8TtQv온라인 게임 개발을 … More 인프런에 ‘CUDA프로그래밍 입문’강의 올렸습니다.

DXR의 BLAS 할당 최적화

최근 기술방송 -D3D12게임프로젝트 로딩성능 개선 ( https://www.youtube.com/live/R_sMY_jjZnE?si=qGerBiAmCkMehLbp )- 에서 언급했다시피 CreateCommittedResource()함수가 엄청 느리기 때문에 할당하는 버퍼 수가 많다면 성능에 상당한 영향을 준다. 이 문제를 해결하기 위해 D3D12Resource를 Heap에 맵핑한 D3DResourceBufferHeap를 만들었고 주요 매시 데이터는 D3DResourceBufferHeap에서 할당하도록 했다. 다만 RayTracing을 위한 BLAS메모리는 아직 처리하지 못했다. DXR렌더러에서 BLAS생성하느라 D3D12Resource를 엄청 많이 할당하는데 이게 성능에 적지 않게 영향을 … More DXR의 BLAS 할당 최적화

D3D Tiled Resources를 이용한 텍스처 스트리밍 – wait제거하기

D3D Tiled Resources를 사용한 텍스처 스트리밍 기능을 D3D11 / D3D12 / DXR 3개의 렌더러에 모두 추가했다. 그 과정에 소소한 깨달음이 있었다. GPGPU를 사용하면 대부분의 경우 결국은 CPU측 메모리로 결과를 가져와야 할 때가 많다. 최근 작업중이었던 텍스처 스트리밍도 마찬가지인데 어쨌든 GPU스레드가 버퍼를 스캔해서 어떤 텍스처를 로딩할지 GPU메모리에 써넣은 후 그걸 CPU측 메모리로 가져와서 CPU가 읽어야 한다. … More D3D Tiled Resources를 이용한 텍스처 스트리밍 – wait제거하기

VOXEL HORIZON iPhone XBOX PC 네트워크 플레이 테스트

VOXEL HORIZON의 XBOX와 PC와 iPhone간의 네트워크 플레이 테스트. [지원 플랫폼]Windows Desktop(DX11/DX12/DXR)XBOX ONE(UWP on XBOX-DirectX11 feature level 11)XBOX Series S/X(UWP on XBOX-DirectX12 feature level 11)iPhone/iPad Devices(A12 Processor 이상 필요)mac(Apple Silicon) [사용된 기술]iOS/macOS – macOS API + metal API + BSD Socket + C++Windows Desktop – DirectX 11/12/DXR + winsock + IOCP + C++XBOX(UWP on XBOX) – … More VOXEL HORIZON iPhone XBOX PC 네트워크 플레이 테스트