Производительность при использовании окон D3D10 / 11 и MDI - PullRequest
1 голос
/ 08 июля 2011

Я работаю над приложением MDI, которое может содержать много (> 40) графиков обновления в реальном времени (30 кадров в секунду);каждый график должен потенциально отображать трехмерную геометрию.Я пытался использовать Direct2D для каждого окна с использованием SlimDX (на каждом), но производительность сильно падает при добавлении более 16 окон.Кто-нибудь имеет опыт работы с этим, чья обратная связь может быть полезна?

  • В настоящее время я использую API D3D10 / 11, который в соответствии с документацией имеет одну цепочку обмена на окно.На документах D3D9 вы можете переключить окно перед тем, как представить, и это рекомендуемое использование.Стоит ли просто переключиться на D3D9?Может ли это быть проблемой переключения цепочки подкачки?
  • Если это не проблема цепочки подкачки, возможно, было бы лучше для меня пропустить D2D и просто управлять моими собственными буферами вершин и рендерингом с использованием D3D?

С уважением!

1 Ответ

0 голосов
/ 08 июля 2011

Какую производительность вы получаете для одного большого окна / контекста, разделенного на> 40 ячеек, с графиком, нарисованным в каждой (вы можете использовать ножничное тестирование для контроля границ ячеек)?Плохо, вам нужно уменьшить сложность или каким-то образом оптимизировать рисование.

Если одно окно может визуализировать весь контент достаточно быстро, рассмотрите возможность сделать это - одно окно.Реализация собственного максимизируемого / перетаскиваемого поведения сплиттера не так уж и сложна.

...