DirectX11 CreateSharedHandle - это кросс-устройство? - PullRequest
0 голосов
/ 28 мая 2018

Я использую CreateShaderHandle для создания дескриптора общего ключа с ключом IDXGIResource1.Цель состоит в том, чтобы захватить этот ресурс в потоке и использовать его в другом потоке.

На данный момент я создаю устройство D3D11 в обоих потоках на одном адаптере

hr = D3D11CreateDevice(dxgi_adapter, ...);

и совместное использование этого дескриптора работает.

Кажется, это не сработает, если на потребительском потоке я создаю устройство на другом адаптере.

Итак, мой вопрос: дескриптор CreateShaderHandle в D3D11 работает только на одном адаптере (GPU)?

1 Ответ

0 голосов
/ 28 мая 2018

Статьи MSDN о совместном использовании между устройствами и об использовании мьютексов с ключом DXGI не дают ответа в явном виде, однако MSDN все еще имеет его, в IDXGIFactory2::GetSharedResourceAdapterLuid:

Нельзя делить ресурсы между адаптерами.Поэтому нельзя открыть общий ресурс на адаптере, отличном от адаптера, на котором был создан ресурс.[...] ... перед открытием общего ресурса, чтобы убедиться, что ресурс был создан на соответствующем адаптере.

То есть совместное использование ресурса "только для одного адаптера".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...