D3D11のデバッグレイヤーで出る警告が取れない
以下の警告文が出力ウィンドウに表示されます。
D3D11 WARNING: ID3D11DeviceContext::OMSetRenderTargets: Resource being set to OM RenderTarget slot 0 is still bound on input! [ STATE_SETTING WARNING #9: DEVICE_OMSETRENDERTARGETS_HAZARD]
D3D11 WARNING: ID3D11DeviceContext::OMSetRenderTargets[AndUnorderedAccessViews]: Forcing PS shader resource slot 0 to NULL. [ STATE_SETTING WARNING #7: DEVICE_PSSETSHADERRESOURCES_HAZARD]
ググった所、OMSetRenderTargets()で設定しようとしているビューのリソースが、すでにピクセルシェーダのシェーダリソースビューとして割り当てられている為のようです。
解決策として、OMSetRenderTarget()とPSSetShaderResources()にNULLを渡してステートをリセットすればいいみたいなことが書かれていました。
なので、OMSetRenderTarget()を呼び出す前に、
ID3D11RenderTargetView* dummyRTVs[D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT] = {nullptr};
ID3D11ShaderResourceView* dummySRVs[D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT] = {nullptr};
pImmediateContext->OMSetRenderTargets( _countof(dummyRTVs), dummyRTVs, nullptr);
pImmediateContext->PSSetShaderResources( 0, _countof(dummySRVs), dummySRVs);
という処理を実行しているのですが、相変わらずおなじ警告文を吐いてしまいます。
何か他に原因があるのでしょうか。
よろしくお願いします。