Конкуренция ресурса

При профилировании моего приложения с помощью Ящика для пробной монеты я заметил, что GPU передает (в режиме DX10) большую часть времени в неактивном ожидании ресурса, не доступного. (и всегда последовательно с ЦП (например, если ЦП обрабатывает кадр X, GPU также обрабатывает кадр X) для этой проблемы),

Некоторое примечание:

1) Приложением является ограниченный GPU (ЦП в основном неактивен (20% использования ЦП в самой тяжелой сцене)),

Мои вопросы:

1) Как я должен интерпретировать эти результаты? В Ящике для пробной монеты каждый кадр на стороне GPU я вижу небольшую красную панель 2-3 (насколько я знаю, что недоступный ресурс средств) и после них средняя/большая серая панель (который означает неактивный GPU). ЦП на другой стороне начинает некоторые операции, большая пустая панель и затем некоторые другие операции (ожидает чего-то?)

Другое примечание, когда GPU обычно неактивен ЦП, работает. (Обратное не допустимо, очевидно),

2) Какие вызовы могут заставить ресурс стать недоступным?

MAP с ОТБРАСЫВАНИЕМ является considerated блокирующийся вызов?
Запрос для получения DESC объекта?
Совместное использование Эффекта Программы построения теней считают конкуренцией?
Какие другие?

Мой общий кадр:

41 DrawPrimitives/DrawIndexedPrimitives (большая часть объекта инстанцируются),
7/8 Соединяет буфер вершины с отбрасыванием
9 изменений пиксельного шейдера / вершинный шейдер
1 setrendertarget

Спасибо!

P.S. Снимок экрана ящика для пробной монеты

http://img191.imageshack.us/img191/6800/42594100.jpg

Если я использую единственный вызов ничьей (с той же загрузкой gpu (например, механизм частицы с x частицами или инстанцированным объектом)) вместо полной игры, я получаю полную синюю панель и GPU правильно кадр 2-3 позади ЦП...

РЕДАКТИРОВАНИЕ: я фокусируюсь все больше на Платформе Эффекта, которая, вероятно, является причиной этой проблемы. Я совместно использую один эффект между большим количеством объектов сохранить память и время для создания их. Действительно ли это безопасно принять без конкуренции?

8
задан feal87 26 February 2010 в 09:54
поделиться

1 ответ

Что приходит на ум с предоставленной информацией:

  • Используете ли вы двойную буферизацию с vsync? Возможно, они оба ждут, когда станет доступен резервный буфер. Попробуйте тройную буферизацию или немедленную презентацию.
  • Вы пробовали заблокировать буфер вершин с помощью круговой стратегии NOOVERWITE вместо 8 раз DISCARD? Возможно, у графического процессора слишком большая нагрузка на память, чтобы перераспределить новый буфер для вашего сброса. Кроме того, некоторое оборудование не позволяет отбрасывать один и тот же буфер вершин более X раз, прежде чем он сможет отрендерить его материал.
  • Поскольку вы используете один и тот же эффект, являются ли параметры также общими?
1
ответ дан 6 December 2019 в 02:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: