Есть ли ограничение на количество контекстов рендеринга OpenGL, которые вы можете создать одновременно?

Приложение My .Net Winforms создает три контекста рендеринга OpenGL в моем главном окне, а затем позволяет пользователю открывать другие окна, в которых каждое окно имеет еще два контекста рендеринга (с использованием разделителя). Примерно в 26-м контексте рендеринга все начинает идти ДЕЙСТВИТЕЛЬНО медленно. Вместо нескольких миллисекунд для рендеринга кадра, новый контекст рендеринга занимает от 5 до 10 секунд. плохо работает, просто ДЕЙСТВИТЕЛЬНО МЕДЛЕННО! И OpenGL НЕ возвращает никаких ошибок (glGetError).

Остальные окна работают нормально. Просто новые контексты рендеринга после определенного числа замедляются. Если я закрою эти окна, все будет хорошо - пока я снова не открою достаточно окон, чтобы превысить лимит. У каждого контекста рендеринга есть свой поток, и в каждом из них используется простой шейдер. Кажется, что при загрузке текстуры происходит замедление.Но размер текстуры не влияет на то, сколько контекстов я могу создать, как и размер окна OpenGL.

Я использую карты nVidia и вижу это на разных графических процессорах с разным объемом памяти и разными версиями драйверов. В чем дело? Есть ли ограничение на количество контекстов рендеринга, которое может создать приложение?

Есть ли у кого-нибудь еще приложение с МНОЖЕСТВОМ контекстов визуализации, работающих одновременно?

12
задан AZDean 9 February 2011 в 22:35
поделиться