Skip to content

Compust 0.3.0-beta.1

Pre-release
Pre-release

Choose a tag to compare

@hashdefault hashdefault released this 04 Oct 20:08

Compust 0.3.0-beta.1

English | Português (Brasil)

English

The fourth beta of Compust, for controlled testing, and the first on the path to 1.0. Read the beta guide before installing: it lists the declared scope, how to return to your previous compositor, and how to report a problem.

Declared scope

One recorded machine has run this beta: XLibre 25.1.9 on an AMD Radeon RX 9060 XT with radeonsi, at 1920×1080 and 60 Hz. Its desktop sessions passed every scenario under Xmonad 0.18.1, Openbox 3.6.1, i3 4.25.1, and bspwm 0.9.12, with Present, with direct XRender, and with fades, translucency, and blur. Benchmark scenes at earlier commits cover dwm 6.8 on one and two monitors. The two machines qualified for 0.2.0-beta.3, a Radeon Vega desktop and an Intel Iris Plus laptop, have not run it. NVIDIA GPUs, other window managers, and clearly different refresh rates are untested; reports are welcome.

Changes since 0.2.0-beta.3

  • Configuration: without --config, Compust reads compust/compust.toml from $XDG_CONFIG_HOME, by default ~/.config, and then from $XDG_CONFIG_DIRS. SIGUSR1 reloads it without a restart; an invalid file is rejected with a warning and the running settings stay.
  • Per-window rules: [[rules]] tables choose windows by class, EWMH type, or title and set their opacity, blur, and fade duration.
  • Weighted blur: the blurred background shows through each pixel as strongly as the window covers it. The transparent margin around a browser's menu no longer gets a frosted halo, and blur behind a half-opaque window is half as strong as before.
  • Region repaint: only the area that changed is painted and presented, instead of the whole screen.
  • Blur reuse and occlusion: a blurred window keeps its blurred background until something beneath it changes, and windows hidden behind opaque ones are not painted.
  • Event handling: stacking is tracked from the server's events instead of a tree query for each one, and a frame is painted only for events that change what is shown, so a new window appears one frame after its map request.
  • GPU renderer: backend = "gl" draws with OpenGL ES on the X server's GPU through DRI3 and falls back to XRender where it cannot. It is opt-in, and XRender stays the default.
  • Tools: tools/bench.sh runs fixed benchmark scenes under Compust and picom, the probe gains --bench and --snapshot modes, and the desktop checks also run under bspwm.

The desktop qualification guide records what these changes cost and save on the recorded desktop, including the scenes they do not help. No performance advantage over picom is claimed: the only comparison with it predates region repaint.

Known limits

No fullscreen unredirection, no shadows or rounded corners, rules that match exact text only, and a GPU renderer recorded on one desktop. The beta guide has the full list.

Files

compust-0.3.0-beta.1-x86_64-linux.tar.gz contains the binary, BUILDINFO, the README in both languages, the example configuration, and the license. Verify it with sha256sum -c SHA256SUMS. The binary needs x86_64 Linux with glibc 2.34 or newer. The GPU renderer loads the system's EGL library when it starts; without one, Compust draws with XRender.

Português (Brasil)

A quarta beta do Compust, para testes controlados, e a primeira no caminho até a 1.0. Leia o guia da beta antes de instalar: ele traz o escopo declarado, como voltar ao compositor anterior e como relatar um problema.

Escopo declarado

Uma máquina registrada rodou esta beta: XLibre 25.1.9 em uma AMD Radeon RX 9060 XT com radeonsi, em 1920×1080 a 60 Hz. Suas sessões de desktop passaram em todos os cenários com Xmonad 0.18.1, Openbox 3.6.1, i3 4.25.1 e bspwm 0.9.12, com Present, com XRender direto e com fades, translucidez e desfoque. Cenas de benchmark em commits anteriores cobrem o dwm 6.8 em um e dois monitores. As duas máquinas validadas na 0.2.0-beta.3, um desktop com Radeon Vega e um laptop Intel com Iris Plus, não a rodaram. GPUs NVIDIA, outros gerenciadores de janelas e taxas de atualização claramente diferentes não foram testados; relatos são bem-vindos.

Mudanças desde a 0.2.0-beta.3

  • Configuração: sem --config, o Compust lê compust/compust.toml em $XDG_CONFIG_HOME, por padrão ~/.config, e depois em $XDG_CONFIG_DIRS. SIGUSR1 recarrega o arquivo sem reiniciar; um arquivo inválido é rejeitado com um aviso, e as opções em uso continuam valendo.
  • Regras por janela: tabelas [[rules]] escolhem janelas por classe, tipo EWMH ou título e definem sua opacidade, seu desfoque e a duração do fade.
  • Desfoque ponderado: o fundo desfocado aparece em cada pixel com a força com que a janela o cobre. A margem transparente em volta do menu de um navegador não ganha mais um halo fosco, e o desfoque atrás de uma janela com metade da opacidade tem metade da força de antes.
  • Repintura por regiões: apenas a área que mudou é pintada e apresentada, em vez da tela inteira.
  • Reaproveitamento do desfoque e oclusão: uma janela desfocada guarda seu fundo desfocado até que algo abaixo dela mude, e janelas escondidas atrás de janelas opacas não são pintadas.
  • Tratamento de eventos: o empilhamento é acompanhado pelos eventos do servidor, em vez de uma consulta à árvore para cada um, e um quadro só é pintado para eventos que mudam o que é exibido; assim, uma janela nova aparece um quadro depois do seu pedido de mapeamento.
  • Renderizador de GPU: backend = "gl" desenha com OpenGL ES na GPU do servidor X por DRI3 e volta ao XRender onde não puder. Ele é opcional, e o XRender continua como padrão.
  • Ferramentas: o tools/bench.sh roda cenas fixas de benchmark com o Compust e com o picom, o probe ganha os modos --bench e --snapshot, e as verificações de desktop também rodam com o bspwm.

O guia de validação em desktops registra quanto essas mudanças custam e economizam no desktop registrado, incluindo as cenas em que não ajudam. Nenhuma vantagem de desempenho sobre o picom é alegada: a única comparação com ele é anterior à repintura por regiões.

Limitações conhecidas

Sem suspensão da composição em tela cheia, sem sombras ou cantos arredondados, com regras que só comparam texto idêntico e com um renderizador de GPU registrado em um único desktop. O guia da beta traz a lista completa.

Arquivos

compust-0.3.0-beta.1-x86_64-linux.tar.gz contém o binário, BUILDINFO, o README nos dois idiomas, a configuração de exemplo e a licença. Verifique-o com sha256sum -c SHA256SUMS. O binário exige Linux x86_64 com glibc 2.34 ou mais recente. O renderizador de GPU carrega a biblioteca EGL do sistema ao iniciar; sem ela, o Compust desenha com XRender.