2009-02-11 7 views

ответ

3

Да, вы можете совместно использовать ресурсы между D3D9Ex и устройствами D3D10 с использованием методики, описанные здесь:

Feature Summary (Direct3D 9 for Windows Vista) - Sharing Resources

Обратите внимание, что доступ к GPU для общих поверхностей не синхронизированы, - например, если вы предоставляете одной и той же визуализации поверхности на двух устройств одновременно, ожидают всевозможные коррупции и расы.

Чтобы обойти его, убедитесь, что одно устройство завершено рендерингом на общую поверхность, прежде чем другой его использует. Один из вариантов - это запрос события (IDirect3DQuery9), другой - StretchRect на маленькую поверхность и блокировку (если блокировка завершается успешно, GPU завершил всю предыдущую работу)

-1

Кто-то поправьте меня, если я ошибаюсь, но, Нет и Нет

Что вы собираетесь? У вас есть статическая текстура на двух устройствах? Если это так, легко достичь путем загрузки одной и той же текстуры дважды в два разных пула по умолчанию. Просто имейте в виду, что изменение одного не обязательно изменит другое.

Если вы пытаетесь использовать управляемую текстуру на двух устройствах, я не думаю, что это возможно с любым контролем. SLI может сделать это за сценой, но вы не будете контролировать ее.

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

0

Вы можете совместно использовать ресурсы Direct3D9 между устройствами или процессами.

Feature Summary (Direct3D 9 for Windows Vista) - Sharing Resources

Похожий метод работает для Direct3D10 ресурсов (вы также указать дескриптор обмена).

В этом GameDev.net topic обсуждается вопрос о совместном использовании D3D9Ex и D3D10. Выводы в этой теме, по-видимому, заключаются в том, что, хотя на основе документации это должно быть возможно (с некоторыми ограничениями), на практике это вообще не работает (возможно, ограничения настолько серьезны, что они не позволяют использовать какой-либо практический сценарий использования?)

Смежные вопросы