【发布时间】:2018-11-14 09:11:45
【问题描述】:
它声明我可以从多个线程调用 ID3D11Device(除非使用了 D3D11_CREATE_DEVICE_SINGLETHREADED),但对 ID3D11DeviceContext 的调用必须用临界区包围。
我还没有找到任何关于释放资源的信息,使用他们的“释放”方法,用于纹理、渲染目标、顶点/索引缓冲区、着色器等资源。
ID3D11Texture2D、ID3D11Texture3D、ID3D11ShaderResourceView、ID3D11RenderTargetView、ID3D11DepthStencilView
ID3D11缓冲区。
ID3D11VertexShader、ID3D11HullShader、ID3D11DomainShader、ID3D11PixelShader。
1) 当渲染线程的 ID3D11DeviceContext 未使用这些资源时,我是否可以随时从任何线程调用这些资源的“释放”而不使用临界区?
2) 即使在渲染线程中 ID3D11DeviceContext 正在使用这些资源时,我是否可以从其他线程调用“释放”?
或者我是否需要使用用于访问 ID3D11DeviceContext 的相同关键部分来包围 Release 调用?
【问题讨论】: