次の方法で共有


マルチスレッドを使用したオブジェクトの作成

ID3D11Device インターフェイスを使用してリソースとオブジェクトを作成し、レンダリングに ID3D11DeviceContext を使用します

リソースを作成する方法の例をいくつか次に示します。

マルチスレッドに関する考慮事項

アプリケーションで実現できるリソースの作成とレンダリングのコンカレンシーの量は、ドライバーが実装するマルチスレッド サポートのレベルによって異なります。 ドライバーが同時実行作成をサポートしている場合、アプリケーションのコンカレンシーの問題ははるかに少なくなります。 ただし、ドライバーが同時オブジェクトの作成をサポートしていない場合、コンカレンシーの量は非常に制限されます。 ドライバーで使用できるサポートの量を理解するには、ドライバーに対して、D3D11_FEATURE_DATA_THREADING構造体の DriverConcurrentCreates メンバーの値を照会します。 マルチスレッドのドライバーサポートの確認の詳細については、「 方法: ドライバーのサポートを確認する」を参照してください。

同時実行操作によってパフォーマンスが向上するとは限りません。 たとえば、テクスチャの作成と読み込みは通常、メモリ帯域幅によって制限されます。 複数の CPU コアがアイドル状態の場合でも、複数のテクスチャを作成して読み込もうとすると、一度に 1 つのテクスチャを実行するよりも高速になる可能性があります。 ただし、複数のスレッドを使用して複数のシェーダーを作成すると、この操作がメモリ帯域幅などのシステム リソースに依存することが少ないため、パフォーマンスが向上する可能性があります。

ドライバーとグラフィックス ハードウェアでマルチスレッドがサポートされている場合は、通常、 pInitialData パラメーター ( ID3D11Device::CreateTexture2D メソッドの呼び出しなど) で初期データへのポインターを渡すことで、新しく作成されたリソースをより効率的に初期化できます。

マルチ スレッド