Sdílet prostřednictvím


Vytváření objektů s více vlákny

K vytváření prostředků a objektů použijte rozhraní ID3D11Device, použijteID3D11DeviceContext pro vykreslování.

Tady je několik příkladů, jak vytvořit prostředky:

Důležité informace o multithreadingu

Míra souběžnosti při vytváření a vykreslování prostředků, které může vaše aplikace dosáhnout, závisí na úrovni podpory multithreadingu, kterou ovladač implementuje. Pokud ovladač podporuje souběžné vytváření, aplikace by měla mít mnohem méně problémů souběžnosti. Pokud však ovladač nepodporuje souběžné vytváření objektů, je množství souběžnosti extrémně omezené. Pokud chcete zjistit rozsah podpory dostupné v ovladači, vyžádejte si od ovladače hodnotu člena DriverConcurrentCreates struktury D3D11_FEATURE_DATA_THREADING. Další informace o kontrole podpory ovladačů multithreading naleznete v tématu Postupy: Kontrola podpory ovladačů.

Souběžné operace nemusí nutně vést k lepšímu výkonu. Například vytvoření a načtení textury je obvykle omezeno šířkou pásma paměti. Pokus o vytvoření a načtení více textur nemusí být rychlejší než načítání jedné textury najednou, i když to nechává více jader CPU nečinných. Vytváření více shaderů pomocí více vláken ale může zvýšit výkon, protože tato operace je méně závislá na systémových prostředcích, jako je šířka pásma paměti.

Pokud ovladač a grafický hardware podporují multithreading, můžete nově vytvořené prostředky inicializovat efektivněji předáním ukazatele na počáteční data v parametru pInitialData (například voláním metody ID3D11Device::CreateTexture2D).

MultiThreading