[FrontPage] [TitleIndex] [WordIndex

Home

TiNDC 2006

TiNDC 2007

TiNDC 2008

Old Logs

Current Logs

DE/EN/ES/FR/RU/Team

Informe irregular sobre el desarrollo de Nouveau

Edición del 30 de mayo

1. Introducción

Aquí estamos de nuevo. El número 34 vuelve para vuestro placer. Muchas gracias por vuestro interés continuado en nuestro controlador y el TiNDC.

Como demostración de lo importantes que son para nosotros las pruebas de funcionamiento, tanto rindolf como AndrewR informaron sobre algunas regresiones en los últimos 14 días. Rindolf encontró problemas con los jitter tras largos periodos en las X, mientras que AndrewR tuvo un kernel panic. Ambos problemas se introdujeron alrededor de una semana antes de que se informase sobre elllos, lo que permitió localizar el parche problemático con bastante facilidad.

Así, incluso cuando no se hayan anunciado correcciones o mejoras para vuestra tarjeta, por favor haced alguna prueba de funcionamiento al menos una vez a la semana para asegurarnos de que todo sigue funcionando correctamente.

En las últimas semanas se debatió sobre si deberíamos trabajar en sacar una versión sólo de 2D. Hubo partidarios y detractores de la medida, se intercambiarion opiniones, y se pospuso la decisión :).

Argumentos a favor:

Contra-argumentos:

Ya que cada posición tiene puntos válidos, no se llegó a una decisión final. Por lo que decidimos esperar un par de semanas más y discutir nuestras opciones en el FOSDEM, el próximo mes.

Y para que quede constancia: No, no se nos ha aproximado NVidia ofreciendo especificaciones (y, para ser honestos, tampoco lo esperamos).

2. Estado actual

Parece que MMioTrace seguirá sin funcionar en el kernel 2.6.24 ya que el hacker del kernel implicado no pretende recuperar los enlaces necesarios. Las buenas noticias vienen del hecho de que pq está empezando a trabajar en la integración de MMioTrace en el kernel estándar y está siendo ayudado por ese hacker del kernel para localizar las funcionalidades equivalentes a las que fueron eliminadas. Hay consenso sobre la utilidad de una herramienta como MMioTrace en el kernel estándar.

Si todo sale bien, veremos MMioTrace en marcha en la versión 2.6.25 o 2.6.26 en adelante.

Stillunknown añadió un sistema experimental de restauración del modo de vídeo que se puede activar usando el valor "true" en la opción "NewRestore". AndrewR no dudó en probarlo, aportando información inmediatamente a stillunknown. Los resultados fueron variados, ya que para algunos funcionaba, mientras que para otros no. Stillunknown reaccionó añadiendo al menos dos correcciones a su código.

Todavía no cansado de añadir funcionalidades a Nouveau, stillunknown hizo algunas pruebas con el adaptador de texturas y vio que se producian algunas perturbaciones y roturas de la imagen en su tarjeta. Tras comentarlo con Marcheu y Ahuillet, además de algunas pruebas más, descubrió que el driver binario muestra los cuadriláteros 2D grandes (mayores a 512x512 píxeles, aproximadamente) mostrando un triángulo mayor y realizando el recorte para hacer la visualización ajustada al cuadrilátero necesario. Esto tiene el efecto de realizar la visualización de arriba-hacia-abajo (en lugar de la teselación en dos triángulos que tiene lugar cuando se solicita directamente a la tarjeta la visualización de un cuadrilátero), lo que suprime los recortes (tearing). Implementó dicha estrategia para el adaptador de texturas de las NV40 y la visualización resultó correcta. (http://gitweb.freedesktop.org/?p=nouveau/xf86-video-nouveau.git;a=commit;h=d9149bddc758cc0644630b26fe10fc563ba38ce9)

Visualización correcta

Pensando algo más sobre este asunto, llegó a la idea de aplicar este método también EXA para NV40. Funcionó de maravilla y debería eliminar también los recortes (tearing) en eXA, aunque nadie se había quejado por ello hasta el momento. http://gitweb.freedesktop.org/?p=nouveau/xf86-video-nouveau.git;a=commit;h=71435dde5b2fd1c197ef5dc31b22ba40abcbca7e

Tras el parón de las vacaciones, algunos de nuestros anteriores probadores volvieron y anunciaron cómo les iban las cosas. chownmeined anunció que el código normal y el RandR1.2 funcionaba perfectamente. seventhguardian anunció una regresión al iniciar las X: la pantalla permanecía negra. Stillunknown localizó el fallo y subió una corrección que arregló el problema para seventhguardian. Darktama todavía tiene problemas con su portátil y Nouveau. La pantalla se queda negra. Algunas correcciones aportadas por Malc0 lograron al menos que funcionase la retroiluminación, pero la pantalla seguía negra. Así que se hizo necesaria una sesión de depuración, lo que proporcionó a malc0 algunos datos más sobre los que reflexionar. Todavía falta encontrar una solución.

Además, Malc0 mejoró el intérprete de la BIOS para las tarjetasNV4x, ya que éstas pueden mostrar algunos códigos de operación que todavía no son manejados por nuestro intérprete.

SeventhGuardian trabajó algo más en la detección de la salida de TV tras charlar con Thunderbird, malc0 y stillunknown. Los primeros intentos resultron en la detección aleatoria, pero tras pelearse un poco más con el asunto, al final localizó los registros que deben activarse y qué información devuelve la tarjeta. Así que ahora tenemos funcionando la detección de carga. La "carga" en esto caso se refiere a una línea conectada, bien sea VGA, TV-OUT, DVI, etc. Resumió sus hallazgos en nuestro wiki: http://nouveau.freedesktop.org/wiki/Load_Detection

SeventhGuardian pretende comenzar a trabajar en la salida de TV ahora.

Y ahora, nuestra retahila habitual de temas cortos:

Tuvimos algunas quejas de que el difuminado en las pantallas planas era incorrecto (hughsie, egn and tango_). Malc0 dijo que Nouveau usa los mismos valores que NV en los registros de difuminado, pero no los mismos que el driver privativo. Sospecha que NV usa valores por defecto (seguros) mientras que el driver binario usa valores que se ajustan al tipo de tarjeta. Algunas pruebas rápidas hechas por hughsie y tango con radeontool (rama nvidia) y los valores del driver binario confirmaron estas sospechas. La solución, mientras que funcionó para hughsie no lo hizo para tango.

Radeontool es otra herramienta para la lectura de los registros MMIO. Se desarrolló originalmente para radeon, pero también tiene una rama de desarrollo para tarjetas NVidia.

Tuvimos algunos informes sobre la lentitud del 2D de las NV1x. Parece que es una regresión y estamos intentando localizar qué la produjo exactamente.

Y, finalmente, un poco más de información sobre el estado de nuestro código Gallium. Como ya mencionamos, darktama está trabajando en ello para NV4x. Básicamente funciona, aunque tiene algún código ah-hoc que impide que funcione bien en todas las situaciones. Solucionarlo llevará algún tiempo. La buena noticia es que Nouveau 3D es mucho más rápido que la versión software (softpipe).

3. Ayuda necesaria

Como siempre:

Además:

Ya que el código RandR1.2 cambia a menudo, haced las pruebas a menudo. Indicad las regresiones también a malc0 y stillunknown, si os encontráis con ellas.


2013-03-24 13:16