{{ label!='' ? 'Label : ' : (q!='' ? '검색 : ' : '전체 게시글') }} {{ label }} {{ q }} {{ ('('+(pubs|date:'yyyy-MM')+')') }}

[Troubleshooting] DirectX12 Resoucre 소멸 시 오류

설명

  리소스 소멸 시 하드웨어 측에서 예상할 수 없는 행위를 함. 

  다음은 에러 로그의 일부임:

D3D12 ERROR: ID3D12CommandList::Close: An ID3D12Resource object (0x000001EB6DBDFF70:'Unnamed Object'), referenced in the command list being closed (0x000001EB6DAAEED0:'Unnamed ID3D12GraphicsCommandList Object'), was deleted prior to closing the command list.  This is invalid and can result in application instability. [ EXECUTION ERROR #921: OBJECT_DELETED_WHILE_STILL_IN_USE]


원인

  Commnad List를 통해 Resource를 생성하고 빠른 시간 안에 소멸시키는 경우, 명령이 제출되면서 GPU에서 해당 Resource에 대한 작업을 하지만 해당 Resouce는 소멸된 것이기 때문에 비정상적인 작업을 수행함.


해결

  생성과 소멸 시기를 적절히 조절하여 해결할 수 있었음: Fence 값을 이용한 동기화

댓글

이 블로그의 인기 게시물

[코딩의탑] 4층: 툰 쉐이딩

[코딩의탑] 3층: 바다 렌더링

[코딩의탑] 5층: 포탈(Portal), 더 나아가기