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 · 最終更新: 2015/09/20 15:58 by oga