• Advertisement
Sign in to follow this  

IDXGIKeyedMutex AcquireSync mis-behaving

This topic is 3035 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

DXGI 1.1, D3D11 (feature level 10_0), D2D + DirectWrite (using D10_1 feature level 10_0). All under SlimDX, modified a bit to make it DXGI 1.1 needed for the keyed mutex. Creating a texture in D3D11, shared resource/render target.. keyedmutex flag. Direct2D rendertarget from DXGI surface picks up texture dimensions ok, thus is sharing ok. I can query the two IDXGIKeyedMutex's, AcquireSync, release, etc. Now, have commented out all the D2D/DirectWrite code so just the D3D11 device and keyed mutex... As soon as I do some render code AcquireSync(0, INFINITE) returns -2147024809 / _com_error to debug output. Example: TestKey(); TestKey(); _device.ImmediateContext.OutputMerger.SetTargets(_depthBuffer.DepthView, _renderTarget); TestKey(); these targets are not shared surfaces at all. To get the post OMSetTargets TestKey() to get an S_OK from AcquireSync..., I need to remove the RenderTarget flag on the shared texture. Any idea what is going on here? Results are the same if I uncomment the D2D/DW code... infact the D2D mutex is not failing where the D3D one is. IDXGIKeyedMutex *mutex; IUnknown *r = reinterpret_cast<IUnknown*>(resource->ComPointer.ToPointer()); if (r->QueryInterface(__uuidof(IDXGIKeyedMutex), (void**)&mutex) != S_OK) throw gcnew Exception("Error obtaining IDXGIKeyedMutex"); return gcnew KeyedMutex(mutex);

Share this post


Link to post
Share on other sites
Advertisement
Sign in to follow this  

  • Advertisement