一、如果驱动和图形硬件设备(简单来说就显卡和显卡驱动),不支持多线程,可能会限制以下性能
- 同时创建多个可能会受到限制
- 在渲染图形时创建的对象可能受到限制,例如应用程序应避免在后台线程上创建需要很长时间才能创建的对象。 耗时很长的创建操作可能会阻止立即进行上下文渲染,并增加视觉帧频停顿的风险(卡顿)
二、检查方式
- 初始化一个ID3D11Device,默认启用多线程
- 通过ID3D11Device :: CheckFeatureSupport,feature参数=D3D11_FEATURE_THREADING, pFeatureSupportData=D3D11_FEATURE_DATA_THREADING, FeatureSupportDataSize=D3D11_FEATURE_DATA_THREADING
- 如果CheckFeatureSupport成功。则上一步传递的D3D11_FEATURE_DATA_THREADING,将使用的多线程信息进行初始化
- 如果DriverConcurrentCreates 成功,则可以在不同的线程同时创建多个资源
- 如果DriverCommandLists 成功,则驱动程序支持命令列表,上下文渲染指令可以单独在创建对象的同时并发、卡顿的风险很小
- 如果DriverConcurrentCreates失败,则不支持并发创建,意味着并发量很小,图形设备无法并发创建多个对象,而且在创建资源的同时,图形设备不能直接利用上下文渲染