유니폼 버퍼로 사용하는 구조체에다가 4x4 행렬 변수 하나 추가하려고 했는데.
그걸 C++ 코드에서는 수정을 했는데 깜빡하고 glsl 코드는 수정 안 했음.
솔직히 이 정도 실수는 자주 있을 수 있는 일인데 좀 오류 메시지라도 던져주면 안 되냐?
대신 나타난 오류는 존나 어이가 없음.
vkDeviceWaitIdle 함수 부른 다음에 커맨드 버퍼 지우는데 커맨드 버퍼가 사용되는 중이라 삭제 못 한다고 지랄함. ㅋㅋㅋ
저 함수는 쉽게 말하면 GPU가 모든 일을 마칠 때까지 기다리게 하는 놈인데.
모든 일을 마쳤는데 커맨드 버퍼가 왜 사용중이냐고. ㅋㅋ
안드로이드에서는 저런 개소리 내뱉고는 앱이 크래시되는데, 윈도우에서는 5초 정도 윈도우 전체가 프리징 걸렸다가 화면 잠시 암전됐다 돌아옴.
ㄷㄷ 드라이버 버그인 듯.
이것 때문에 일주일 허비했다.
처음에는 validation layer 덕분에 opengl보다 쉽다 생각했는데, 가면 갈수록 validation layer 때문에 엿을 먹는 경우가 많아지네.
그러니까 D3D12합시다
그거 안드로이드에서 돌아가나연