22 Сентября 2024, 13:26:46
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Навигация по форуму







guest3d
Quest3D - Русскоязычное сообщество > Quest3D > Визуализация, Шейдеры > [Графика]Как проверить скорость работы приложения? (Есть ответ)
[Графика]Как проверить скорость работы приложения? (Есть ответ)
(Прочитано 19415 раз)
  [1] 2
Печать
Sqwer | ***** | Ветеран | Сообщений: 540 | « 24 Апреля 2009, 15:08:02 »
[Графика]Как проверить скорость работы приложения? (Есть ответ) |
0
HLSL

Как проверить скорость выполнения шейдера?
Существует ли  софт для этого?
« Последнее редактирование: 24 Июня 2009, 19:01:11 от Sqwer »
Viik | **** | Старожил | Сообщений: 302 | «Ответ #1 24 Апреля 2009, 16:20:47 »
Re: Как проверить скорость шейдера |
1
NvPerfHud, сайт нвидии раздел Developers.
Viik | **** | Старожил | Сообщений: 302 | «Ответ #2 24 Апреля 2009, 17:45:47 »
Re: Как проверить скорость шейдера |
2
Забыл расказать, там прикол с запуском.
Перетаскиваеш откомпиленную екзешку на ярлык NVPerfHud, появиться окно выбора разрешения, ставиш вот такие настройки (разрешение естественно по выбоору):


* NVPerfHud.jpg (86.13 Кб, 371x351 - просмотрено 1650 раз.)
Sqwer | ***** | Ветеран | Сообщений: 540 | «Ответ #3 25 Мая 2009, 21:14:09 »
Re: Как проверить скорость шейдера |
3
Наконец-то дошли руки до шейдеров. Но , к сожалению,  данная программа NvPerfHud отказывается работать. Делаю как описано выше: компилю в экзешник, экзешник кидаю на ярлык. Появлятся на мгновение консольное окно ... и на этом всё.

Пробовал запускать и Intel® Graphics Performance Analyzers.
Тоже без результатов.
Viik | **** | Старожил | Сообщений: 302 | «Ответ #4 25 Мая 2009, 22:39:30 »
Re: Как проверить скорость шейдера |
4
Утилитные дрова поставил?
Обязательно нужно компилить с дефолтовым Start3DScene - чтобы выводилось окно выбора разрешения и т.д.
Sqwer | ***** | Ветеран | Сообщений: 540 | «Ответ #5 26 Мая 2009, 15:34:23 »
Re: Как проверить скорость работы приложения? |
5
Всё решилось переустановкой Винды.  Смеющийся

Прога - супер, рекомендую всем.


После тестирования возник вопрос:
"почему рисуются (Draw Call) все шейдерные объекты, даже если они не попадают в область видимости ?"
Вроде как все объекты отсекает , а шейдерные нет.

Это нормально?, Или мы нашли "узкое" место Quest'а ?

* Untitled-1.jpg (132.54 Кб, 1024x768 - просмотрено 1648 раз.)
« Последнее редактирование: 27 Мая 2009, 11:16:14 от Sqwer »
Viik | **** | Старожил | Сообщений: 302 | «Ответ #6 26 Мая 2009, 17:54:14 »
Re: Как проверить скорость шейдера |
6
фрустум куллинг работает, но чтобы он работал более менее правильно нужно чтобы пивот поин объекта стоял по центру объекта а не в нолях сцены. И нужно пересчитывать баундинг бокс ("Calculated Now" в 3д обжекте) если после импорта геометри подменялась.
Den_ya | **** | Старожил | Сообщений: 360 | «Ответ #7 26 Мая 2009, 20:54:05 »
Re: Как проверить скорость шейдера |
7
у меня тоже получилось запустить эту программу,обьясните пожалуйста в каких целях ее можно применять и как с ней работать
Sqwer | ***** | Ветеран | Сообщений: 540 | «Ответ #8 27 Мая 2009, 11:30:35 »
Re: Как проверить скорость шейдера |
8
Цитировать
каких целях ее можно применять
применять для контроля всех показателей рендеринга сцены:
вот вам и ФПС
вот вам и загруженность ЦПУ
вот вам и загруженность памяти видео карты
вот вам и время прорисовки каждого объекта сцены
вот вам и кол-во вызовов прорисовки объекта
вот вам и загруженность шейдерных конвееров
 и много другое

По данной проге можно оценить параметры сцены и узнать, где можно что-то увеличить (размер текстур, сложность шейда, нагруженность геометрией) без потери производительности. Или наоборот, узнать и далее устранить причину низкой производительности.

Цитировать
как с ней работать
оказалось очень просто:
запускаем ярлык, устанавливаем горяч клавиши, которые активируют/деактивируют управление PerfHud в приложении.

запускаем приложение с PerfHud, во время исполнения приложения нажимаем гор клавиши и рРАДУЕМСЯ. Оценка проводится активная и пофремовая.

Sorry for my bad Russian
Sqwer | ***** | Ветеран | Сообщений: 540 | «Ответ #9 27 Мая 2009, 11:54:01 »
Re: Как проверить скорость работы приложения? (Есть ответ) |
9
Основные факторы, влияющие на производительность:

Скорость заполнения и пиксельные шейдеры (Fill Rate & Pixel Shaders)
Для увеличения скорости заполнения следует сосредоточиться на уменьшении числа обрабатываемых пикселей. Для оптимизации работы следует попытаться:
- Сконфигурировать игру под меньшее разрешение.
- Уменьшить сложность пиксельных шейдеров.
- Использовать Z-Only проход для уменьшения пикселей, для которых исполняется шейдер.
- Перенести линейные вычисления в вершинные шейдеры.
- Ограничить использование эффектов требующих двухпроходной отрисовки.
- Использовать аппаратный тест буфера глубины (Z-test) для эффективного уменьшения числа пикселей, обсчитываемых шейдерами. Упорядочить список отрисовки так, чтобы объекты располагались от камеры в глубину сцены.
- Использовать проверку на загораживание (Occlusion Query). Такая проверка используется для определения числа потенциально видимых пикселей объекта при помощи рисования не самого объекта, а его ограничивающего объема. Если Occlusion Query возвращает ноль, это значит, что ни один пиксель ограничивающего объема, а значит, и самого объекта, не был виден, следовательно, объект можно не рисовать. Такая проверка максимально эффективна для сложных объектов с большим количеством вершин.

Вершинные шейдеры (Vertex Shaders)
Для оптимизации работы с геометрией следует попытаться:
- Уменьшить сложность вершинных шейдеров.
- По возможности, использовать triangle strips вместо списка треугольников и triangle fan.
- Использовать встроенные DXUT функции по оптимизации геометрии для увеличения эффективности кеша вершин.
- Использовать LOD для высокополигональных моделей.

Текстуры (Textures)
Для оптимизации работы с текстурами следует попытаться:
- Уменьшить использование текстур высокого разрешения.
- Использовать анизотропную фильтрацию только там, где она действительно нужна.
- Максимально использовать сжатые форматы текстур.
- Использовать FP (floating-point) текстуры только там, где это необходимо.
- Использовать FP текстуры с минимально возможной точностью и числом каналов.

Количество вызовов функций отрисовки и смены состояний
(DP Сalls & State Changes)
Большое количество вызовов отрисовки, смены состояний конвейера могут существенно замедлить работу приложения, поэтому следует:
- Использовать более оптимальный алгоритм проверки на видимость объектов в игровом движке.
- По возможности объединять геометрические объекты в один.
- Использовать инстансинг.
- Сортировать объекты по материалам, шейдерам для уменьшения числа смен стейтов графического конвейера.

Контроль задержек между графическими функциями (Inter Erg Stalls)
Важным аспектом оптимизации может стать уменьшение времени, которое программа проводит непосредственно между графическими вызовами. Следует контролировать количество изменений состояний DirectX (DirectX State Changes) и время изменения ресурсов (Index/Vertex Buffer Locks). В некоторых случаях GPU может оказаться недозагруженным.
Рассмотрите возможность использования CPU-ориентированных средств оптимизации (Intel® VTune™ Performance Analyzer, Intel® Parallel Studio) для уменьшения времени проводимого игрой на CPU.

Особенности GMA® X4500
- Использование uber шейдеров предпочтительнее многопроходного рисования.
- Уменьшение fill-rate является одной из основных стратегий оптимизации.
- Наиболее оптимальное количество примитивов в вызове рисования: 200-1K.
- Используйте максимально возможную версию шейдера (нет преимуществ по исполнению шейдеров ниже 2.0)
- Используйте шейдеры, а не FF конвейер.
- При использовании тумана используйте шейдерный туман (SM3.0).
- Шейдер компилируется при первом использовании, поэтому предпочтительнее загружать и использовать все шейдеры во время загрузки в невидимом буфере.
- Старайтесь использовать не более 32 констант в шейдере.
- Старайтесь минимизировать использование индексированных шейдерных констант.
- Минимизируйте число вызовов Clear(). Очищайте Z и Color в одно и тоже время (если очистка обоих буферов необходима).
- Теневые карты (Shadow Maps) более предпочтительны, чем теневые объемы (Stencil Shadows).
Den_ya | **** | Старожил | Сообщений: 360 | «Ответ #10 28 Мая 2009, 17:11:47 »
Re: Как проверить скорость работы приложения? (Есть ответ) |
10
Sqwer спасибо за ответ,сейчас нет времени,у меня есть еще вопросы
vap2008 | * | Новичок | Сообщений: 35 | «Ответ #11 16 Июня 2009, 11:08:32 »
Re: Как проверить скорость работы приложения? (Есть ответ) |
11
 Перетаскиваю ЕХЕшник на ярлык NVIDIA PerfHUD 6,выбираю размер окна, запускается и по середине текст-This application is not configured to use PerfHUD.
 Это в PerfHUD проблемма,или ЕХЕ файл не такой?НепонимающийНепонимающийНепонимающий?
 
 
Viik | **** | Старожил | Сообщений: 302 | «Ответ #12 16 Июня 2009, 12:04:32 »
Re: Как проверить скорость работы приложения? (Есть ответ) |
12
Это нужно внимательней читать и смотерть на картинки в которых показано где что нужно нажимать.
vap2008 | * | Новичок | Сообщений: 35 | «Ответ #13 16 Июня 2009, 13:17:27 »
Re: Как проверить скорость работы приложения? (Есть ответ) |
13
 ВОТСПАСИБАТА
 Если ставлю внизу галочку,в окне выбора разрешения, у меня всё вылетает с ошибкой.
« Последнее редактирование: 16 Июня 2009, 14:01:00 от vap2008 »
Viik | **** | Старожил | Сообщений: 302 | «Ответ #14 16 Июня 2009, 16:11:49 »
Re: Как проверить скорость работы приложения? (Есть ответ) |
14
А с какой именно ошибкой? Тут как бы форум не телепатов.
Остальные настройки верно ставиш? Покажи скриншот.
 
  [1] 2
Печать
 
Quest3D - Русскоязычное сообщество > Quest3D > Визуализация, Шейдеры > [Графика]Как проверить скорость работы приложения? (Есть ответ)
Перейти в: