GetDC/ReleaseDC
के लिए D3D11_RESOURCE_MISC_GDI_COMPATIBLE
के साथ बनाए गए बनावट के लिए थ्रेड-सुरक्षा नियम क्या हैं?IDXGISurface1 थ्रेड-सुरक्षा/सिंक्रनाइज़ेशन नियम GetDC/ReleaseDC के लिए?
मैं डेटा-दौड़ के बिना ID3D11Device
और ID3D11DeviceContext
GetDC
और ReleaseDC
एक और धागा पर बीच के साथ बातचीत, या अस्पष्ट तुल्यकालन के कारण अवरुद्ध कर सकते हैं? या क्या मैं जीपीयू आईडीलिंग को जीडीआई प्रतिपादन करने वाले थ्रेड के लिए एक अलग D3D11Device
बनाने के लिए मजबूर होना चाहता हूं और फिर इसे D3D11_RESOURCE_MISC_SHARED_KEYED_MUTEX
पर कॉपी करके इसे "मुख्य" D3D11Device
पर स्थानांतरित कर रहा हूं?
यानी निम्नलिखित मान्य है?
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.