1.在该传入非空的地方传入了空指针。通常是因为视图调用某个函数,但是Buffer或者资源没有初始化。
2.在该传入空指针的地方传入了已经存在资源的指针。一般常见于各种Create函数
3.释放资源的时候该资源其实已经被其他地方释放了,可能并非是该资源本身,而是已经被其他的资源给释放了。例如VRWorks里面的 ID3DLateLatchObject就会自动释放对应的所有Buffer资源,试图释放其他Buffer都会导致调用失败
4.多线程调用没对函数进行加锁,外部操作修改被主循环用到的变量会导致抢占问题
5.有些RenderTarget或者Texture,Shader资源在多个不同的device或者context下使用,需要创建共享资源,并对Texture设置相应的flag,否则在同时引用该资源的时候程序就会崩溃,在给Unity做原生的渲染插件扩展的时候尤其需要注意这一点。
DirectX编程中常见崩溃总结
最新推荐文章于 2024-06-13 15:47:59 发布