D3D11_RESOURCE_MISC_GDI_COMPATIBLE
で作成されたテクスチャの場合、IDXGISurface1
GetDC/ReleaseDC
のスレッドセーフティルールは何ですか?GetDC/ReleaseDCのIDXGISurface1スレッドセーフティ/同期ルール?
は、私がデータ競合または暗黙的な同期のためにブロックすることなく、別のスレッドでGetDC
とReleaseDC
間ID3D11Device
とID3D11DeviceContext
と対話することができますか?または、GDIレンダリングを行っているスレッド用に個別のD3D11Device
を作成し、次にD3D11_RESOURCE_MISC_SHARED_KEYED_MUTEX
にコピーして「メイン」D3D11Device
に転送するGPUアイドリングを回避するにはどうすればよいですか?
つまり、有効なのは以下のとおりですか?
thread 1:
D3D11Device::CreateTexture2D // Create texture 1
IDXGISurface1::GetDC // Get DC for texture 1
... // Draw to texture1 using GDI
IDXGISurtface1::ReleaseDC // Release DC for texture1
thread 2:
// Is this valid if thread 1 is drawing using GDI?
D3D11DeviceContext::OMSetRenderTargets
D3D11DeviceContext::Draw // Draw texture2.