Mi aplicación .Net Winforms crea tres contextos de representación OpenGL en mi ventana principal, y luego le permite al usuario mostrar otras ventanas donde cada ventana tiene dos contextos de representación más (usando un divisor). En torno al contexto de representación 26, las cosas comienzan a ir MUY lentas. En lugar de tomar unos pocos milisegundos para renderizar un cuadro, el nuevo contexto de renderización tarda entre 5 y 10 segundos. Todavía funciona, ¡REALMENTE LENTO! Y OpenGL NO devuelve ningún error (glGetError).¿Existe un límite en la cantidad de contextos de representación de OpenGL que puede crear simultáneamente?
Las otras ventanas funcionan bien. Solo los nuevos contextos de representación después de un cierto número disminuyen. Si cierro esas ventanas, todo está bien, hasta que vuelva a abrir suficientes ventanas para pasar el límite. Cada contexto de representación tiene su propio hilo y cada uno usa un sombreador simple. La ralentización parece ocurrir cuando cargo una textura. Pero el tamaño de la textura no tiene ningún efecto en la cantidad de contextos que puedo crear, ni tampoco el tamaño de la ventana de OpenGL.
Estoy usando tarjetas nVidia y veo esto en diferentes GPU con diferentes cantidades de memoria y diferentes versiones de controladores. ¿Cual es el trato? ¿Hay algún límite en la cantidad de contextos de representación que puede crear una aplicación?
¿Alguien más tiene una aplicación con MUCHOS contextos de representación ejecutándose al mismo tiempo?
Consulte también https://community.amd.com/thread/184325 para obtener una referencia sobre AMD, tengo la sensación de que el recuento de AMD es bajo (+/- 20 ctx?) –