c++ - installing - opengl windows
Seleccione un dispositivo gráfico en Windows+OpenGL (4)
Sé cómo abrir una ventana con OpenGL (usando Win32 u otros toolkits). Pero cuando el sistema tiene 2 tarjetas gráficas. ¿Cómo selecciono un dispositivo gráfico para renderizar? Mi lenguaje de programación es C ++ y me estoy enfocando en Windows, pero cualquier muestra será bienvenida.
Editar: Tal vez es una buena idea explicar mejor mi problema, para agregar algo de perspectiva: Mi nueva computadora portátil tiene dos tarjetas gráficas. Un Intel HD integrado y un GeForce GT 540M. La tarjeta intel funciona la mayor parte del tiempo para procesar SO, ya que ahorra batería. Cuando se inicia un juego, entonces GeForce se inicia automáticamente. Este sistema se llama "optimus" por nvidia ( http://www.nvidia.com/object/optimus_technology.html ). El problema es que cuando inicio mi aplicación, el controlador de opengl detectado es 2.1 y el proveedor es Intel, y no sé cómo cambiar al otro dispositivo.
Finalmente encontré esta información. No es demasiado útil si no está usando nvidia pero se lo dejo a cualquiera que pueda leer http://developer.download.nvidia.com/compute/cuda/3_2/toolkit/docs/CUDA_Developer_Guide_for_Optimus_Platforms.pdf
debe usar la extensión WGL_NV_gpu_affinity para programar con múltiples GPU con OpenGL. (en el caso, tarjeta NVIDIA). Pero solo es compatible con la serie QUADRO. Desafortunadamente, no puede seleccionar la representación de la tarjeta gráfica en su sistema.
La solución más simple de Nvidia Optimus es pegar este fragmento de código en algún lugar de su aplicación. Esto le indicará al controlador de Nvidia que cambie a la potente GPU cuando se inicie la aplicación.
// enable optimus!
extern "C" {
_declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001;
}
Vaya a Panel de control de Nvidia> Gestionar configuraciones de 3D> seleccione el procesador de gráficos preferido. Por defecto, puede ver la selección automática. Cámbielo a su GPU deseada.
No estoy 100% seguro, pero parece recordar que en Windows esto no es posible, aparte de crear una ventana en una pantalla específica.
NVidia proporcionó una extensión llamada WGL_NV_gpu_affinity . No estoy seguro si esto todavía está disponible y si funciona como te gustaría.
Editar:
Veo que ya se proporciona información similar en otro hilo , con un enlace adicional a este PDF . No es una respuesta satisfactoria tal vez, pero al menos algo de información.