atuq: la serie con UNA sola tarjeta — 2 de 10, y el hueco resulta real
Con -vga none la captura ya no tiene punto ciego, asi que un ✗ significa «la ventana no esta». Clasificado el ultimo cuadro de las 10: 2 con la pagina pintada, 1 con la ventana en blanco y 7 con SOLO el escritorio. Las dos salidas explicaban los ✗ inflados de las series VGA=1, no el fenomeno. El MOZ_LOG separa los dos regimenes: las que tienen ventana escriben 952-1505 lineas hasta el apagado; las 7 sin ventana se cortan a los ~40s y quedan 6 minutos de silencio, sin crash (WebRender arranca). Quedan como hipotesis NO medida los frame callbacks que el compositor no manda. Ademas: tasa-primera-pintura.sh nombra el log por VGA (la serie nueva habia sobrescrito los crudos de la anterior).
This commit is contained in:
@@ -1855,7 +1855,67 @@ cada corrida, y `scripts/vigia-imagen.py` **no cuenta las ciegas** — las nombr
|
||||
|
||||
**Lo que sigue**, y ahora es otra pregunta: no «por qué no pinta» sino **por qué el escritorio abre la
|
||||
ventana en la salida que no tiene el foco** —y si con una sola salida (`-vga none`, que es como se va
|
||||
a usar la imagen de verdad) eso desaparece—. Es barato: la misma serie con una tarjeta.
|
||||
a usar la imagen de verdad) eso desaparece—. Es barato: la misma serie con una tarjeta. **Hecha: §6.10.nonies — y el hueco es real, 2 de 10.**
|
||||
|
||||
#### 6.10.nonies Con UNA sola salida: **2 de 10** — y el hueco resulta ser real (2026-09-14)
|
||||
|
||||
El §6.10.octies cerró pidiendo exactamente esta serie: las mismas diez corridas pero con `-vga none`,
|
||||
una sola tarjeta (`drm: card0`), que es como se usa la imagen de verdad. Con una sola salida la
|
||||
captura es COMPLETA, así que por primera vez **un ✗ significa «la ventana no está»** y no «no está en
|
||||
la que fotografié».
|
||||
|
||||
| vídeo | pintaron | qué dice el ✗ |
|
||||
|---|---|---|
|
||||
| `vga+virtio-gpu` (dos DRM) | 4 de 14 | nada: la cámara miraba una de dos pantallas |
|
||||
| **`virtio-gpu` solo (`-vga none`)** | **2 de 10** | **concluyente** |
|
||||
|
||||
Y como la captura ya no tiene punto ciego, se puede clasificar **el último cuadro de cada corrida** por
|
||||
su color dominante, que separa dos fallos que hasta ahora eran el mismo ✗:
|
||||
|
||||
| último cuadro | corridas | qué es |
|
||||
|---|---|---|
|
||||
| `#ff00ff` 68 % | 2 | ✓ la página, pintada |
|
||||
| `#f9f9fb` 68 % | 1 | la **ventana está** —misma geometría que la que pinta— pero **en blanco** |
|
||||
| `#214a87` 91 % | 7 | **sólo el escritorio**: fondo, panel y dock. **No hay ventana** |
|
||||
|
||||
⇒ **el hueco del §6.10.ter existe y no era la cámara.** Las dos salidas explicaban el número inflado
|
||||
de ✗ de las series con `VGA=1`, no el fenómeno.
|
||||
|
||||
**Y el `MOZ_LOG` separa los dos regímenes con un número, no con una impresión:**
|
||||
|
||||
| | líneas de `moz.moz_log` | último apunte del log |
|
||||
|---|---|---|
|
||||
| las 3 con ventana | 952 – 1505 | sigue escribiendo hasta que se apaga la VM |
|
||||
| las 7 sin ventana | 573 – 727 | **se corta a los ~40 s del lanzamiento**, y quedan **6 minutos de silencio** |
|
||||
|
||||
No es que dibuje invisible: **deja de trabajar**. Y no muere por un crash — `atuq.log` de una fallida
|
||||
llega hasta `WebRender - OpenGL version new 3.2` / `Renderer: Software WebRender` sin una sola línea
|
||||
de error. Las últimas líneas que escribe son justo el bucle de vsync emulado:
|
||||
|
||||
WaylandSurface::VSyncCallbackHandler() marked as visible & has buffer
|
||||
WaylandSurface::SetVSyncCallbackLocked(), enabled 1 mapped 1
|
||||
WaylandSurface::Commit() allowed [1] needs commit 1
|
||||
fire VSync callback aEmulated [0] cb.mEmulated [1] ← y aquí se acaba
|
||||
|
||||
Que es la forma que tiene Gecko de decir «commiteo a ciegas porque **nadie me devuelve frame
|
||||
callbacks**». La hipótesis que queda —**no medida todavía**, y hay que decirlo así— es que
|
||||
`cosmic-comp` nunca le da a esa superficie el estado de visible, así que el cliente se queda sin
|
||||
callbacks y se detiene. Lo contesta el log del compositor, no el del navegador.
|
||||
|
||||
⚠ **Condición de la medida:** anfitrión a **load ~15** (la tanda de KDE del otro agente más VMs de
|
||||
otra sesión, en 4 cores) — más alta que el ~10 de la serie anterior. Las dos que pintaron lo hicieron
|
||||
a **+175 s** y **+319 s**, en línea con los +184…+312 de antes. Y hay un orden sospechoso que la serie
|
||||
no puede resolver sola: las 3 con ventana son las corridas 1-3 y las 7 sin ventana las 4-10, todas
|
||||
seguidas. Eso puede ser la carga subiendo o puede ser estado que dejan las corridas entre sí; **con
|
||||
diez corridas no se separa**.
|
||||
|
||||
⚠ **Dos deudas del arnés que esta serie dejó a la vista**, ninguna barrida:
|
||||
· la cuenta de «procesos atuq» **nunca volvió**: el eco del serial se come la salida, así que no se
|
||||
puede afirmar si el proceso seguía vivo en las fallidas (el `atuq.log` sin crash es evidencia
|
||||
indirecta, no la misma cosa);
|
||||
· `tasa-primera-pintura.sh` quedó parametrizado por `VGA` pero **el nombre del log no**: la serie
|
||||
nueva sobrescribió los crudos de la anterior (se salvaron 9 de 10 en `work/serie-dos-tarjetas/`).
|
||||
Arreglado después de la serie — no durante: bash lee el guion a medida que lo ejecuta.
|
||||
|
||||
### 6.11 Y ahora la pregunta que faltaba: ¿REPRODUCE? (2026-09-07)
|
||||
|
||||
|
||||
@@ -256,6 +256,166 @@
|
||||
"pantallas_fotografiadas": 2,
|
||||
"pantalla": "vga0",
|
||||
"nota": "la ventana apareció en vga0 mientras gpu0 seguía mostrando el escritorio sin navegador"
|
||||
},
|
||||
{
|
||||
"medido": "2026-09-14T19:14:09Z",
|
||||
"imagen": "/mnt/cosecha/takana-cosmic-qemu.img",
|
||||
"segundos_primera_pintura": null,
|
||||
"pantalla": null,
|
||||
"pantallas_fotografiadas": 1,
|
||||
"presupuesto_s": 420,
|
||||
"ventana_s": 480,
|
||||
"cadencia_s": 30,
|
||||
"lanzamiento": "perfil del usuario",
|
||||
"video": "virtio-gpu solo (-vga none)",
|
||||
"mem_mb": 2560,
|
||||
"vcpus": 2,
|
||||
"acel": "tcg",
|
||||
"guion": "scripts/cosmic/atuq-en-imagen.py"
|
||||
},
|
||||
{
|
||||
"medido": "2026-09-14T19:23:09Z",
|
||||
"imagen": "/mnt/cosecha/takana-cosmic-qemu.img",
|
||||
"segundos_primera_pintura": 175,
|
||||
"pantalla": "gpu0",
|
||||
"pantallas_fotografiadas": 1,
|
||||
"presupuesto_s": 420,
|
||||
"ventana_s": 480,
|
||||
"cadencia_s": 30,
|
||||
"lanzamiento": "perfil del usuario",
|
||||
"video": "virtio-gpu solo (-vga none)",
|
||||
"mem_mb": 2560,
|
||||
"vcpus": 2,
|
||||
"acel": "tcg",
|
||||
"guion": "scripts/cosmic/atuq-en-imagen.py"
|
||||
},
|
||||
{
|
||||
"medido": "2026-09-14T19:34:16Z",
|
||||
"imagen": "/mnt/cosecha/takana-cosmic-qemu.img",
|
||||
"segundos_primera_pintura": 319,
|
||||
"pantalla": "gpu0",
|
||||
"pantallas_fotografiadas": 1,
|
||||
"presupuesto_s": 420,
|
||||
"ventana_s": 480,
|
||||
"cadencia_s": 30,
|
||||
"lanzamiento": "perfil del usuario",
|
||||
"video": "virtio-gpu solo (-vga none)",
|
||||
"mem_mb": 2560,
|
||||
"vcpus": 2,
|
||||
"acel": "tcg",
|
||||
"guion": "scripts/cosmic/atuq-en-imagen.py"
|
||||
},
|
||||
{
|
||||
"medido": "2026-09-14T19:47:56Z",
|
||||
"imagen": "/mnt/cosecha/takana-cosmic-qemu.img",
|
||||
"segundos_primera_pintura": null,
|
||||
"pantalla": null,
|
||||
"pantallas_fotografiadas": 1,
|
||||
"presupuesto_s": 420,
|
||||
"ventana_s": 480,
|
||||
"cadencia_s": 30,
|
||||
"lanzamiento": "perfil del usuario",
|
||||
"video": "virtio-gpu solo (-vga none)",
|
||||
"mem_mb": 2560,
|
||||
"vcpus": 2,
|
||||
"acel": "tcg",
|
||||
"guion": "scripts/cosmic/atuq-en-imagen.py"
|
||||
},
|
||||
{
|
||||
"medido": "2026-09-14T20:02:02Z",
|
||||
"imagen": "/mnt/cosecha/takana-cosmic-qemu.img",
|
||||
"segundos_primera_pintura": null,
|
||||
"pantalla": null,
|
||||
"pantallas_fotografiadas": 1,
|
||||
"presupuesto_s": 420,
|
||||
"ventana_s": 480,
|
||||
"cadencia_s": 30,
|
||||
"lanzamiento": "perfil del usuario",
|
||||
"video": "virtio-gpu solo (-vga none)",
|
||||
"mem_mb": 2560,
|
||||
"vcpus": 2,
|
||||
"acel": "tcg",
|
||||
"guion": "scripts/cosmic/atuq-en-imagen.py"
|
||||
},
|
||||
{
|
||||
"medido": "2026-09-14T20:15:20Z",
|
||||
"imagen": "/mnt/cosecha/takana-cosmic-qemu.img",
|
||||
"segundos_primera_pintura": null,
|
||||
"pantalla": null,
|
||||
"pantallas_fotografiadas": 1,
|
||||
"presupuesto_s": 420,
|
||||
"ventana_s": 480,
|
||||
"cadencia_s": 30,
|
||||
"lanzamiento": "perfil del usuario",
|
||||
"video": "virtio-gpu solo (-vga none)",
|
||||
"mem_mb": 2560,
|
||||
"vcpus": 2,
|
||||
"acel": "tcg",
|
||||
"guion": "scripts/cosmic/atuq-en-imagen.py"
|
||||
},
|
||||
{
|
||||
"medido": "2026-09-14T20:28:09Z",
|
||||
"imagen": "/mnt/cosecha/takana-cosmic-qemu.img",
|
||||
"segundos_primera_pintura": null,
|
||||
"pantalla": null,
|
||||
"pantallas_fotografiadas": 1,
|
||||
"presupuesto_s": 420,
|
||||
"ventana_s": 480,
|
||||
"cadencia_s": 30,
|
||||
"lanzamiento": "perfil del usuario",
|
||||
"video": "virtio-gpu solo (-vga none)",
|
||||
"mem_mb": 2560,
|
||||
"vcpus": 2,
|
||||
"acel": "tcg",
|
||||
"guion": "scripts/cosmic/atuq-en-imagen.py"
|
||||
},
|
||||
{
|
||||
"medido": "2026-09-14T20:41:17Z",
|
||||
"imagen": "/mnt/cosecha/takana-cosmic-qemu.img",
|
||||
"segundos_primera_pintura": null,
|
||||
"pantalla": null,
|
||||
"pantallas_fotografiadas": 1,
|
||||
"presupuesto_s": 420,
|
||||
"ventana_s": 480,
|
||||
"cadencia_s": 30,
|
||||
"lanzamiento": "perfil del usuario",
|
||||
"video": "virtio-gpu solo (-vga none)",
|
||||
"mem_mb": 2560,
|
||||
"vcpus": 2,
|
||||
"acel": "tcg",
|
||||
"guion": "scripts/cosmic/atuq-en-imagen.py"
|
||||
},
|
||||
{
|
||||
"medido": "2026-09-14T20:53:55Z",
|
||||
"imagen": "/mnt/cosecha/takana-cosmic-qemu.img",
|
||||
"segundos_primera_pintura": null,
|
||||
"pantalla": null,
|
||||
"pantallas_fotografiadas": 1,
|
||||
"presupuesto_s": 420,
|
||||
"ventana_s": 480,
|
||||
"cadencia_s": 30,
|
||||
"lanzamiento": "perfil del usuario",
|
||||
"video": "virtio-gpu solo (-vga none)",
|
||||
"mem_mb": 2560,
|
||||
"vcpus": 2,
|
||||
"acel": "tcg",
|
||||
"guion": "scripts/cosmic/atuq-en-imagen.py"
|
||||
},
|
||||
{
|
||||
"medido": "2026-09-14T21:06:15Z",
|
||||
"imagen": "/mnt/cosecha/takana-cosmic-qemu.img",
|
||||
"segundos_primera_pintura": null,
|
||||
"pantalla": null,
|
||||
"pantallas_fotografiadas": 1,
|
||||
"presupuesto_s": 420,
|
||||
"ventana_s": 480,
|
||||
"cadencia_s": 30,
|
||||
"lanzamiento": "perfil del usuario",
|
||||
"video": "virtio-gpu solo (-vga none)",
|
||||
"mem_mb": 2560,
|
||||
"vcpus": 2,
|
||||
"acel": "tcg",
|
||||
"guion": "scripts/cosmic/atuq-en-imagen.py"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
# tasa-primera-pintura.sh — corre N veces `atuq-en-imagen.py` y saca la TASA, no una anécdota.
|
||||
#
|
||||
# scripts/cosmic/tasa-primera-pintura.sh [N] (def 10)
|
||||
# VGA=0 scripts/cosmic/tasa-primera-pintura.sh 10 una sola salida (así se usa la imagen de verdad)
|
||||
#
|
||||
# ── POR QUÉ UNA TASA ───────────────────────────────────────────────────────────────────────────
|
||||
# El §6.10.sexies del SDD 26 midió cinco corridas sobre la MISMA imagen: pintó en tres (+197, +197,
|
||||
@@ -18,13 +19,17 @@ set -u
|
||||
ROOT="$(cd "$(dirname "$0")/../.." && pwd)"; cd "$ROOT"
|
||||
N="${1:-10}"
|
||||
WAIT="${WAIT:-480}"; CADENCE="${CADENCE:-30}"
|
||||
# ⚠ Con `VGA=1` hay DOS salidas y la ventana cae en cualquiera (§6.10.octies): la serie de diez del
|
||||
# 2026-09-14 midió con eso puesto y su «2 de 10» era dónde apuntaba la cámara. Con `VGA=0` hay una
|
||||
# sola salida y la captura es completa ⇒ el ✗ sí significa «no está».
|
||||
VGA="${VGA:-1}"
|
||||
ok=0; fallo=0; aborto=0; i=1
|
||||
echo "== $N corridas · --as-user · VGA=1 · ventana ${WAIT}s · cadencia ${CADENCE}s"
|
||||
echo "== $N corridas · --as-user · VGA=$VGA · ventana ${WAIT}s · cadencia ${CADENCE}s"
|
||||
while [ "$i" -le "$N" ]; do
|
||||
log="work/tasa-$i.txt"
|
||||
VGA=1 MEM="${MEM:-2560}" SMP="${SMP:-2}" timeout 2400 \
|
||||
log="work/tasa-vga$VGA-$i.txt"
|
||||
VGA="$VGA" MEM="${MEM:-2560}" SMP="${SMP:-2}" timeout 2400 \
|
||||
python3 scripts/cosmic/atuq-en-imagen.py --as-user --until-paint \
|
||||
--wait "$WAIT" --cadence "$CADENCE" --out "work/tasa-corrida-$i" > "$log" 2>&1
|
||||
--wait "$WAIT" --cadence "$CADENCE" --out "work/tasa-corrida-vga$VGA-$i" > "$log" 2>&1
|
||||
if grep -qa "PRIMERA PINTURA" "$log"; then
|
||||
t=$(grep -a "primera pintura:" "$log" | head -1)
|
||||
ok=$((ok+1)); echo " [$i/$N] ✓ ${t#*✓ }"
|
||||
|
||||
Reference in New Issue
Block a user