Войти
ПрограммированиеФорумГрафика

Проблема с FPS при DrawInstancedIndirect на Radeon когда режим CrossFireX включен

#0
16:25, 26 мар. 2013

Вывожу 1000 раз модель состоящую из 432 треугольника(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST) простым шейдером с помощю команд Draw и DrawInstancedIndirect. В случае 2х hd7970 и на hd6990 получаю 1000 фпс при выводе с помощью Draw и 200 фпс с помощью DrawInstancedIndirect. Как в оконном режиме так и на полный экран. Если в Catalist Control Center->Gaming->3D Application Setting добавить профиль моего приложения и в CrossFireX Mode поставить в значение Disable то фпс становиться 1000 как при вызове Draw так и для DrawInstancedIndirect. Все необходимые буферы создаются в начале и не меняются  процессе выполнения теста.

Вопрос - почему при CrossFireX Mode Disable команда DrawInstancedIndirect работает правильно а при включении получаю падение с 1000 фпс до 200 фпс, не зависимо в окне или на полный экран?


#1
17:13, 27 мар. 2013

Что неужели ни кто не юзает команду DrawInstancedIndirect(или аналоги с Inderect на конце) в directx11? Кто нибудь может сталкивался с чем то подобным?

#2
17:18, 27 мар. 2013

asmzx
> Что неужели ни кто не юзает команду DrawInstancedIndirect(или аналоги с
> Inderect на конце) в directx11?

Расскажи, для чего использует indirect draw ?

#3
17:41, 27 мар. 2013

2innuendo
В compute shader'e обновляется индерект буфер, а DrawInstancedIndirect отображает результат, но фпс получился сильно ниже ожидаемого + запросы D3D11_QUERY_TIMESTAMP_DISJOINT возращают большие и не стабильные значения. Это приводит к тому что расчетная загрузка ГПУ больше реальной (загрузку гпу можно мониторить с помощью MSI Afterburner, Gpu-Z и т.д.). Пришлось написать синтетический тест вывода простой геометрии с помощью 2х команд Draw и DrawInstancedIndirect. Геометрия низкополигнальна. Индерект буфер создается и заполняется один раз в начале, потом вывод с помощью одной из 2х выше названных команд.  В итоге при выключении в драйверах режима CrossFireX все приходит в норму. В полноэкранном режиме я еще могу списать что включается режим Crossfire но в оконном режиме всегда работает 1 карта. Тот кто использовал индерект команды у себя в проекте наверняка должен был сталкиваться с подобной проблемой.

ПрограммированиеФорумГрафика

Тема в архиве.