IDXGIDevice1 :: SetMaximumFrameLatencyメソッドをmy dx12appから呼び出して、現在のDirect3D 12デバイスから有効なIDXGIDevice1を取得する必要があります。インターフェイスは、E_NOINTERFACEを返す照会:はIDXGIDeviceまたはIDXGIDevice1をdx12のID3D12Deviceから取得できません
IDXGIDevice * pDXGIDevice;
HRESULT hr = myDevice->QueryInterface(__uuidof(IDXGIDevice), (void **)&pDXGIDevice);
assert(hr != S_OK); // returns E_NOINTERFACE
IDXGIDevice1 * pDXGIDevice1;
HRESULT hr1 = myDevice->QueryInterface(__uuidof(IDXGIDevice1), (void **)&pDXGIDevice1);
assert(hr != S_OK); // returns E_NOINTERFACE
わからない私は何かが欠けていたり、私が有効なIDXGIDevice1インターフェイスを取得するために実装する必要がDXGIロジックのシーケンスがある場合。
アドバイスありがとうございます。&ありがとうございました! KLIP
それが第一歩だと上記のコードは動作しませんので、Direct3Dの12、DXGIファクトリを取得するこの「レガシーパターン」の
返事ありがとうチャック。 'CreateDXGIFactory1(__ uuidof(IDXGIFactory4)&dxgiFactory)' DXGIアダプタをスキャンしてDirect3D 12をサポートしているものを探し、ブログに記載されている手順と同様のデバイスを作成します。 'D3D12CreateDevice(myAdapter、D3D_FEATURE_LEVEL_11_0、__uuidof(ID3D12Device)、&MYDEVICE') だから私はあなたの返事を誤解しない限り、私はまだ私はIDXGIDevice1を取得できない理由はわかりません。 フレームレイテンシについて私が理解しているのは、ドライバの現在のキューを制限するスワップチェーンのバッファ数よりも小さい値です。 –
代わりに '' IDXGISwapChain2 :: SetMaximumFrameLatency''を使うことができます。 –
待機可能なスワップチェーンにのみ '' IDXGISwapChain2 :: SetMaximumFrameLatency''を使うことができます。 –