Como a GPU sabe o endereço de cada pixel em uma tela? Em caso afirmativo, como ele lida com imagens de alta resolução?

0

Eu sei como os bitmaps funcionam e como os pixels são usados (binário 0 ou 1). Eu também estou ciente do RGB, mas o que me surpreende é como as GPUs sabem o endereço de cada pixel em uma tela de alta resolução e como a GPU envia informações para os pixels. Alguém pode responder isso?

    
por CasualGenius 29.09.2016 / 17:12

2 respostas

0

A GPU possui uma memória dedicada à saída de vídeo. Cada pixel tem um endereço preciso. A GPU renderiza imagens e as coloca nesse buffer de vídeo. Em seguida, um bloco de hardware dedicado "varre" essa memória e transmite o conteúdo para a porta de vídeo (VGA, HDMI, DVI, etc.). Um monitor recebe e exibe essas informações. Mas esta informação não está disponível gratuitamente em algum wiki?

    
por 29.09.2016 / 17:25
0

Isso é feito tão simples quanto copiar todo o buffer de memória para o conector de saída na sua taxa de atualização. Ou seja, em um monitor padrão conectado via DVI, ele enviaria 60 quadros por segundo completos de 1920x1080 pixels com 24 bits por pixel (profundidade RGB de 8 bits). Isso é um monte de dados e requer cabos curtos de alta qualidade.

Internamente, pode se tornar muito mais complicado. Normalmente, a RAM de vídeo armazena 2 ou 3 buffers de dados de imagem (buffer duplo ou buffer triplo, para reduzir o tearing, o que significa essencialmente que o buffer enviado para o conector de saída não é modificado pelos drivers do SO).

E isso pode se tornar ainda mais complicado: o conector de saída pode ser analógico, o que significa que haverá um DAC que converte cada sinal em sinais analógicos. Ou, a RAM pode usar uma profundidade de bits maior que o monitor (10 bits por cor = 30 bits por pixel), as placas gráficas podem usar pontilhamento temporal quando o dispositivo de saída tem uma profundidade de bits menor (então o erro de 2 bits é distribuído para a próxima quadro que pode resultar em ruído leve e visível, mas proporciona melhor sombreamento de cor).

E ainda mais complicado: algumas GPUs não organizam a memória da mesma maneira que é exibida no monitor (linhas de pixels da parte superior esquerda para a direita inferior), mas organizam a memória nas células (retângulos dos dados da imagem) - isso precisa ser convertido, mas pode resultar em maior desempenho do acesso à VRAM, porque o acesso simultâneo da GPU, da CPU e do processador de sinal é melhor distribuído entre si.

Assim, no básico, é muito simples: os dados são copiados do buffer de RAM para o conector de saída, pixel por pixel, na maioria das vezes alterando o buffer de imagem entre cópias toda vez que um quadro completo é enviado. O monitor segue o mesmo padrão de tempo e desenha os pixels. Em cada quadro, os timers serão ressincronizados para que o monitor inicie no canto superior esquerdo.

    
por 29.09.2016 / 17:30