domingo, 22 de octubre de 2017

BIOS en gráficos híbridos y OpenGL

Ejemplo de un BIOS desbloqueado.
Un tema importante para las notebooks con gráficos híbridos (tanto para AMD y Nvidia) es el control total del dGPU por parte del usuario y para los que buscan aprovechar al máximo su notebook, necesitan un BIOS con ciertas características, hace unos 4 años dicha característica era muy común, pero en la actualidad es todo lo contario.

I. ¿Cuál es la característica que permite un mejor rendimiento?
La respuesta es la posibilidad de seleccionar el Modo Fijo y el Modo Discreto en el BIOS. Con ambos será posible utilizar el dGPU como principal, lo que evitará pérdidas de rendimiento.

Modo Fijo y Dinámico. En el año 2012 los fabricantes sabían hacer bien las cosas.
Lamentablemente, con la llegada de Windows 10 el Modo Fijo ya no es una opción, pero aquí surge la interrogante:

II. ¿Qué es el Modo discreto?
Si solo tenemos en cuenta gráficos híbridos, entonces solo existe Modo Fijo y Dinámico; pero si vamos más allá, entonces podemos usar un notebook desactivando el iGPU como si de un PC de escritorio se tratase, esto último se conoce como modo discreto.
Modo discreto, ni Nvidia Optimus ni AMD Enduro igualan un GPU a máxima potencia.
III. ¿Todas las notebooks cuentan con esta característica?
Lamentablemente no, es el fabricante quien decide incluirla. Pero eso no es todo, no solo basta poseer dicha característica por software, es 100% necesario estar soportado por Hardware.
Como ya saben con el Modo Fijo y por extensión el Modo discreto, el dGPU puede ser el principal. Para que se entienda mejor, asumamos que tienen una tarjeta gráfica dedicada en una PC de escritorio, y para que represente contenido en la pantalla si o si debe estar conectada con un cable VGA, DVI o HDMI a un monitor; lo mismo ocurre con el Modo Fijo y discreto, para que se pueda usar el dGPU este necesita estar conectado a la pantalla.

En resumen, la tecnología de gráficos intercambiables original de AMD utilizaba al iGPU y al dGPU como dispositivos discretos e independientes. Ambos estaban conectados a la salida de pantalla a través de Muxes de Hardware y ello permitía seleccionar el GPU que deseábamos (es lo que se conoce como el Modo Fijo = Muxed). Esto requeriría un mayor costo en la placa base de nuestros equipos por parte del fabricante.

Incrementar costos, esta información es la que debe llegar al usuario final, así podríamos elegir laptops gamer.
Entonces:
Si el fabricante o un tercero habilitan dicha característica en un notebook que no está soportado por hardware y nosotros de manera ingenua activamos o el Modo Fijo o el Discreto, el resultado final será una pantalla negra sin señal, ya que el dGPU no está conectado a la pantalla.
Ahora, asumamos que somos fabricantes de notebooks y para reducir costos, evitamos conectar el dGPU a la pantalla, en consecuencia únicamente podremos utilizar el Modo Dinámico.
Simplemente reducir costos :(
Tanto AMD Enduro como Nvidia optimus son similares, a continuación publicaré dos capturas, de las conexiones para el Modo Fijo y Dinámico respectivamente:
Antes: Es es lo que se conoce como gráficos intercambiables, ambos GPUs conectados a la pantalla, sin perder rendimiento. Esta implementación nos permite obtener en el BIOS tanto el Modo Dinámico como el Fijo. En la actualidad  AMD es capaz de emular por software AMD Enduro.
Después: Disculpen por publicar una imagen de Optimus, es la mejor imagen explicada, pero es básicamente lo mismo. Ahora la mayoría de los equipos tienen esta implementación, imposibilitando el Modo Fijo ya que el dGPU no está conectado a la pantalla, ¿Ahora entienden por qué nunca será posible obtener un BIOS con modos gráficos? Los que tenemos equipos de esta forma (como yo) no tenemos mas remedio que seguir así.
De esto, se infiere que de nada sirve poseer un BIOS con una característica especial para seleccionar el tipo de Modo gráfico si no poseemos el hardware que lo soporte.

IV. ¿Cómo puedo obtener dicha característica asumiendo que tengo el hardware que lo soporte?
Si el notebook está soportado por hardware, entonces el principal impedimento es:
El fabricante del portátil bloqueó dicha característica del BIOS por considerarla peligrosa para el usuario. Aunque no siempre es así y puede estar habilitada en una actualización de BIOS o en una simple combinación de teclas.

Antes de arriesgarse a instalar algún BIOS, se debe verificar si el fabricante dispuso de una combinación de teclas que "muestre" la pestaña "Avanzado" del BIOS. Es en esta pestaña donde se encuentra la característica deseada.
Pestaña "Advanced" del BIOS.
Normalmente, se ingresa al BIOS presionando una tecla al encender el equipo, pero, dicha tecla varía según el modelo de BIOS y también el fabricante del portátil, siendo los casos más comunes [F1], [F2], [DEL], [F12], etc. Y sin esta información, no será posible continuar, así que es necesaria.

En el caso de HP, modelos del 2012, la tecla es [F10] y el procedimiento para acceder a las opciones avanzadas es el siguiente:
  1. Encender el equipo.
  2. Presionar al tecla [ESC] para mostrar el menú principal.
  3. Presionar la tecla [F10] para ingresar al BIOS.
  4. Justo después del paso anterior, antes que cargue el BIOS (durante la pantalla negra), presionar la tecla [A].

NOTA: Si el paso 4 no funciona, intentar ingresar al BIOS utilizando la combinación [F10] + [A] (al mismo tiempo).
ADVERTENCIA: El procedimiento anterior funciona únicamente con BIOS del tipo "Insyde H2O" y con portátiles HP DV5, DV6, DV7, DM4. Consulten con su fabricante si dispuso de otra combinación de teclas para acceder a las opciones avanzadas.

De esta forma verán una nueva pestaña: "Advanced". Si este método funciona, entonces no es necesario instalar BIOS alguno.

Pero, si el fabricante no proporciona este tipo de BIOS, existen terceros que desbloquean todas las opciones ocultas para BIOS de varios notebooks (Incluída la opción de interés "Advanced"), esto se conoce como BIOS-MOD.

Pueden encontrar más información en el Foro de Leshcatlabs, donde encontrarán 02 enlaces a los principales modificadores de BIOS, uno de ellos es @Donovan6000, quién explica detalladamente cómo modificar el BIOS; además, si el BIOS que están buscando ya se modificó con anterioridad, lo más probable es que se encuentre listo para su descarga en su repositorio. Sin más detalles, les comparto el enlace del Foro UnifL:

Finalmente, con la pestaña "Advanced" o "Avanzado" desbloqueada, será posible desactivar el iGPU para utilizar el Modo Discreto.
ADVERTENCIA: 
Actualizar el BIOS puede traer consecuencias si no se realiza correctamente, utilicen siempre el cargador AC conectado. No me hago responsable de la instalación de algún BIOS-MOD, porque puede dejar el notebook inutilizable.
Si realizaron algún cambio en el BIOS y la pantalla del portátil no reacciona, remuevan la pila de la placa madre y vuelvan a colocarla a su posición original para restaurar la configuración.

V. Tengo instalado Catalyst Control Center y en una pestaña muestra la opción de alternar entre Modo Fijo y Dinámico, entonces ¿Para qué tocar algo en el BIOS si dentro del Catalyst puedo hacer lo mismo?
Esta es una pregunta muy común, la respuesta es que posees un BIOS especial con ciertas modificaciones ocultas que permiten esta característica en el Catalyst, si llegaras a desbloquear el BIOS, lo que verías sería la primera captura en esta publicación.
Si posees dicha opción en el Catalyst, bien por ti, pero esto es un gran problema ya que muchos usuarios creen que el BIOS no tiene nada que ver con dicha pestaña que tiene que aparecer si o si en todas las notebooks, claramente están equivocados.
En fin, la pestaña se llama "Método de Gráficos intercambiables", les mostraré una captura.

La primera opción de la captura es el Modo Dinámico y la segunda es el Modo Fijo.
Una opción del Catalyst que en la actualidad no existe.
VI. ¿Y qué tiene que ver OpenGL en todo esto?
En el año 2011 comenzaron a fabricar notebooks con el Modo Dinámico por defecto sin la característica de la que estamos hablado y también por obvias razones no existía Windows 10, entonces el Modo Fijo si era una opción. Además, un dato a tener en cuenta, esas notebook estaban soportadas por hardware para utilizar el Modo Fijo.
Entonces, los usuarios se dieron cuenta que aplicaciones OpenGL no utilizaban el dGPU, por tal motivo se ejecutaban en el iGPU con ralentizaciones.

El crecimiento de AMD Enduro, pero aún en la actualidad dicho algoritmo es ineficiente. Se puede observar que la implementación de OpenGL para Enduro ocurrió en el 2012.
Entonces, en el 2012 obtuvimos soporte OpenGL por parte de AMD, pero antes de ello los fabricantes como HP publicaron una actualización del BIOS para habilitar el Modo Fijo porque que el Dinámico en ese entonces no cumplía con las expectativas de los usuarios; pero sólo lo hizo para ciertas notebooks que lo soportaban.

Información proporcionada por HP:
Aquí viene otro problema, los fabricantes no actualizan su información y según ellos OpenGL aún no es compatible con el Modo Dinámico (AMD Enduro) como es el caso de HP y esto trae confusión al usuario.

Como prueba final, pueden ver una captura de Minecraft utilizando mi dGPU AMD 7600M, claramente dice OGL que es OpenGL.
Minecraft ejecutándose en Java x64, se utiliza mi AMD 7670M y en el cuadro superior izquierdo se ve claramente que es una aplicación OpenGL. "javaw.exe" debe estar en "Alto rendimiento".
VII. ¿Cómo alternar entre distintos Modos?
Siempre y cuando se cuente con las opciones disponibles, es tan fácil como entrar al BIOS (la forma de ingresar depende de cada fabricante, consultar el manual del notebook) y seleccionar el Modo Fijo / Modo Dinámico / Modo Discreto.
En este caso, el Modo de gráficos intercambiables está seleccionado en Fijo.
Palabras finales
Hola a todos, aquí quantum-phy en otra publicación, unificar y editar toda la información es un tanto complicada, espero haber cumplido el objetivo: que se entienda xD.
Hablemos sobre Windows 10, mencioné que el Modo Fijo no es compatible con esta versión, pero en sus primeras Builds de prueba (creo que la 9926) si lo era, pero luego malograron todo xD. Hablaré de este tema más adelante y sobre el gran daño que hace Microsoft a usuarios como nosotros con cada Build.
En cuanto a los fabricantes, ellos deberían informar si el notebook posee Modo Discreto para poder utilizarlo, muchas aplicaciones necesitan exclusivamente el dGPU para funcionar en óptimas condiciones.
Finalmente, tengan cuidado con el BIOS, si van a actualizar o instalar uno modificado, que sea bajo su propio riesgo y responsabilidad, infórmense bien antes de instalarlo.
Un agradecimiento a Ernesto Orellana ("orerfi" del Foro HP) por el detalle de la combinación de teclas para ingresar el BIOS mostrando la pestaña "Avanzado".

Espero que esta información sea de ayuda.
Un saludo.

Estado

=======================================
Recomiendo este post donde se recopila mucho contenido útil y en español para jugar en Linux.
-¿Jugar en Linux?, están locos estos pingüinos

[Linux] ¿Fidelity FX Super Resolution (FSR) en cualquier juego?
- Pruebas en el canal de YouTube

[Linux] GalliumToggle publicado en GitHub.
=======================================

quantum-phy (NestorBase11)

Videos Destacados

Entradas recientes