X Window Server que atua como uma passagem

2

Existe uma configuração para o Xorg (ou qualquer servidor de janelas X) que crie um "stub" de um servidor X de forma que ele aceite chamadas de API de aplicativos e os desconsidere ao invés de processar as chamadas, atualizando o buffer de quadros, e escrevendo para a memória? Eu preciso ser capaz de executar uma aplicação gráfica (como o Firefox), mas eu realmente não me importo com a saída gráfica e gostaria de reduzir o overhead de renderização, tanto quanto possível. Eu estou tentando obter horários de página da web que são inalterados por renderização gráfica.

Alternativamente, existe alguma maneira de "gravar" todas as chamadas da API do servidor X, despejá-las em disco e reproduzi-las mais tarde, de modo a separar os timings da renderização gráfica, mas ainda criar capturas de tela do que aplicação olhou em vários pontos no tempo?

    
por Suever 14.06.2017 / 18:57

2 respostas

3

Você está procurando por Xvfb . Do manual:

   Xvfb  is  an X server that can run on machines with no display hardware
   and no physical input devices.  It emulates a  dumb  framebuffer  using
   virtual memory.
    
por 14.06.2017 / 19:15
1

Costumava haver um programa para fazer isso em 1996 e apenas recentemente removido do debian, chamado xmon , que estava em duas partes, xmond que filtrava as solicitações e respostas para um servidor X11 e xmonui que era um gui no qual você poderia alternar quais solicitações seriam suprimidas e, portanto, não desenhar nada. Foi um desdobramento do programa xscope (para rastrear as solicitações e respostas) que ainda é distribuído. No entanto, para encontrar as fontes e compilar xmon hoje você precisa ser um pouco entusiasta. Eu suponho que foi removido porque não havia mais erros do X11 para serem depurados ...

man xmon : O diagrama a seguir mostra a relações entre xmon e o xmon   daemon. e os clientes e o servidor.

                             ----------
                             | xmonui |
                             ----------
                                 |
                                 v
        ------------         ----------
        | client 1 |<------->|        |
        ------------         |        |       ----------
             :               | xmond  |<----->| server |
             :               |        |       ----------
        ------------         |        |
        | client n |<------->|        |
        ------------         ----------
                                 |
                                 v
                       monitor output to stdout

Uma otimização alternativa que você pode tentar com Xvfb é criar uma tela muito pequena de, digamos, 64x64 pixels e talvez de profundidade 1 (monocromática), e colocar a janela do firefox fora da tela, portanto não será renderizada muita coisa não será visível.

    
por 14.06.2017 / 20:35