2015-05-28 6 views
0

Я реализую алгоритм вычисления через OpenGL и Qt. Все вычисления выполняются в флеш-шейдере.OpenGL: временной интервал рендеринга linux

Иногда, когда я пытаюсь выполнить некоторые жесткие вычисления (это занимает больше, чем 5 секунд на графическом процессоре), OpenGL прерывает вычисление до его завершения. Я полагаю, что это система вроде TDR из Windows.

Я думаю, что я должен разделить входные данные несколькими частями, но мне нужно знать, как долго разрешено вычисление.

Как я могу получить время выполнения рендеринга на linux (это будет круто, если есть кроссплатформенное решение)?

ответ

1

Боюсь, что это невозможно. После многократного прочтения документации как X, так и Wayland, я не смог найти что-нибудь, в котором упоминаются настройки таймера сторожевого таймера GPU, поэтому я считаю, что это зависит от водителя и, вероятно, недоступно для пользователя (что или я ужасен при поиске) ,

Однако можно отключить это сторожевой под X на NVIDIA аппаратных, добавив его в свой xorg.conf, который затем передается на графическом драйвер.

Опция «Интерактивный» «логическое»

Этот параметр управляет поведением сторожевого водителя, который пытается обнаружить и прекратить программы GPU, которые застрять для того, чтобы гарантировать, что ГПУ остается доступен для других процессов. Однако в вычислительных приложениях с графическим процессором часто используются длительные программы GPU, и их убийство было бы нежелательным. Если вы используете вычислительные приложения GPU, и они досрочно прекращаются, попробуйте отключить этот параметр.

Обратите внимание, что даже в документах NVIDIA не указывается числовое значение для таймаута.

+0

Благодарим вас за ответ! –

+0

Этот таймер все еще применяется для вычисления шейдеров? – Jerem

+0

@Jerem Да. Никакой разницы между OpenCL, вычислительными шейдерами, пиксельными шейдерами и т. Д. В отношении драйвера. –

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