d3d:d3d12:multiadapter
差分
このページの2つのバージョン間の差分を表示します。
| 次のリビジョン | 前のリビジョン | ||
| d3d:d3d12:multiadapter [2015/09/20 15:58] – 作成 oga | d3d:d3d12:multiadapter [2015/09/21 03:57] (現在) – [Adapter の列挙] oga | ||
|---|---|---|---|
| 行 2: | 行 2: | ||
| SLI/ | SLI/ | ||
| - | CPU 内蔵 GPU や乗り換えで余っているビデオカードなど、低コストで性能の上乗せできるようになります。 | + | CPU 内蔵 GPU や乗り換えで余っているビデオカードなど、低コストで性能の上乗せができるようになります。 |
| + | ただしアプリケーション側の対応が必要です。 | ||
| + | 通信や同期のコストがかかるため、レンダリング側 GPU と独立したタスクの実行に向いています。 | ||
| + | * 例 | ||
| + | * GeForce + RADEON | ||
| + | * Intel HD Graphics + GeForce/ | ||
| + | * 等 (ただし Direct3D 12 対応 GPU のみ) | ||
| + | ===== 内蔵 GPU を有効にする ===== | ||
| + | CPU 内蔵 GPU は、外付け GPU 利用時に無効化されている場合があります。BIOS 設定で変更できます。 | ||
| - | + | - BIOS -> Advanced 等から Integrated Graphcis を選択 | |
| + | - Integrated GPU (iGPU 等) の有効化を行う | ||
| + | |||
| + | ===== 非対称 Multi-Adapter の概要 ===== | ||
| + | |||
| + | - Adapter を列挙して、それぞれ ID3D12Device を作成。 | ||
| + | - 各 Device 毎にリソースの転送や Object の生成等を行う。Device を跨いで Object の使い回しはできない。 | ||
| + | - 同期用に Device 間で共有可能な Fence の作成 | ||
| + | - 転送用に Device 間でどちらからもアクセス可能な Shared Resource を作成 | ||
| + | - Device 毎に CommandQueue , CommandList それぞれ作成して実行 | ||
| + | - それぞれの Queue では Shared Fence を使って完了待ちが可能 | ||
| + | - 結果を Shared Resource を通して合成 | ||
| + | |||
| + | |||
| + | |||
| + | ===== Adapter の列挙 ==== | ||
| + | |||
| + | |||
| + | <code cpp> | ||
| + | IDXGIFactory1* | ||
| + | CreateDXGIFactory( IID_PPV_ARGS(& | ||
| + | |||
| + | for( unsigned int ai= 0 ; ai< MAX_ADAPTER ; ai++ ){ | ||
| + | IDXGIAdapter1* | ||
| + | if( ifactory-> | ||
| + | break; | ||
| + | } | ||
| + | ~ | ||
| + | } | ||
| + | ifactory-> | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== Shared Resource の作成 ===== | ||
| + | |||
| + | 共有可能な Object は、Resource, | ||
d3d/d3d12/multiadapter.1442732291.txt.gz · 最終更新: by oga
