Quali sono le regole di sicurezza del thread per IDXGISurface1
GetDC/ReleaseDC
per le trame create con D3D11_RESOURCE_MISC_GDI_COMPATIBLE
?IDXGISurface1 regole di sicurezza del thread/sincronizzazione per GetDC/ReleaseDC?
Posso interagire con ID3D11Device
e ID3D11DeviceContext
tra GetDC
e ReleaseDC
su un altro thread, senza data-razze o bloccando causa sincronizzazione implicita? O sono al fine di evitare che la GPU inattiva venga forzata a creare un D3D11Device
separato per il thread che esegue il rendering GDI e quindi lo trasferisce al "principale" D3D11Device
copiando su un D3D11_RESOURCE_MISC_SHARED_KEYED_MUTEX
?
vale quanto segue?
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.