IDXGIKeyedMutex :: ReleaseSync, когда выполняется рендеринг «готово»?

Я смотрю на документация для IDXGIKeyedMutex и я немного не уверен относительно следующего:

Вы должны вызвать метод ReleaseSync, когда закончите рендеринг в
поверхность.

Мой вопрос: что значит «когда вы закончите рендеринг»? Это после того, как удалить текстуру в качестве цели рендеринга для непосредственного контекста, когда я вызываю Flush в ближайшем контексте или мне нужна какая-то другая форма ограждения / синхронизации графического процессора, прежде чем я могу позвонить ReleaseSync?

И почему D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX предпочтительнее D3D11_RESOURCE_MISC_SHARED?

1

Решение

Вы должны вызывать IDXGIKeyedMutex :: ReleaseSync после того, как вы вызвали вызовы ID3D11DeviceContext :: Draw или другие вызовы для выдачи команд графического процессора для записи в буфер (то есть ID3D11DeviceContext :: CopyResource). Вам не нужно явно вызывать Flush. Для примера использования AcquireSync / ReleaseSync, пожалуйста, посмотрите на http://code.msdn.microsoft.com/DXGISyncSharedSurf

D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX предпочтительнее, чем D3D11_RESOURCE_MISC_SHARED, потому что его можно использовать с D3D11_RESOURCE_MISC_SHARED_NTHANDLE, что обеспечивает лучшую безопасность для совместного использования поверхности между процессами.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]