Radeon R100
# Radeon R100

O Radeon R100 é a primeira geração de chips gráficos Radeon da ATI Technologies. A linha apresenta aceleração 3D baseada em Direct3D 7.0 e OpenGL 1.3, e todas, exceto as versões básicas, descarregam os cálculos de geometria do host para um mecanismo de transformação e iluminação de hardware (T&L), uma grande melhoria em recursos e desempenho em comparação com o design Rage anterior. Os processadores também incluem aceleração GUI 2D, vídeo aceleração e várias saídas de exibição. "R100" refere-se ao codinome de desenvolvimento da GPU inicialmente lançada da geração. É a base para uma variedade de outros produtos sucessivos.

## Desenvolvimento
### Arquitetura

A GPU Radeon de primeira geração foi lançada em 2000 e inicialmente recebeu o nome de código Rage 6 (posteriormente R100), como sucessora do envelhecido Rage 128 Pro da ATI, que não conseguia competir com a GeForce 256. A placa também foi descrita como Radeon 256 nos meses anteriores ao seu lançamento, possivelmente para fazer comparações com a placa Nvidia concorrente, embora o apelido tenha sido descartado com o lançamento do produto final.
O R100 foi construído em um processo de fabricação de semicondutores de 180 nm. Como a GeForce, a Radeon R100 apresentava um mecanismo de transformação e iluminação de hardware (T&L) para realizar cálculos de geometria, liberando a CPU do computador host. Na renderização 3D, o processador pode gravar 2 pixels no framebuffer e amostrar 3 mapas de textura por pixel por clock. Isso é comumente referido como uma configuração 2 × 3 ou um projeto de pipeline duplo com 3 TMUs por tubo. Quanto aos concorrentes da Radeon, a GeForce 256 é 4×1, a GeForce2 GTS é 4×2 e a 3dfx Voodoo 5 5500 é um projeto SLI 2×1+2×1. Infelizmente, a terceira unidade de textura não foi muito usada em jogos durante a vida útil da placa porque o software frequentemente não executava mais do que a texturização dupla.
Em termos de renderização, sua arquitetura "Pixel Tapestry" permitia o mapeamento de relevo mapeado por ambiente (EMBM) e o mapeamento de relevo de produto de ponto (Dot3), oferecendo o suporte de mapeamento de relevo mais completo da época, juntamente com o antigo método Emboss. A Radeon também introduziu uma nova tecnologia de otimização de largura de banda de memória e redução de overdraw chamada HyperZ. Basicamente, melhora a eficiência geral dos processos de renderização 3D. Consistindo em 3 funções diferentes, permite que a Radeon tenha um desempenho muito competitivo em comparação com designs concorrentes com taxas de preenchimento e largura de banda mais altas no papel.
A ATI produziu uma demonstração em tempo real para sua nova placa, para mostrar seus novos recursos. A demonstração Radeon's Ark apresenta um ambiente de ficção científica com uso intenso de recursos, como várias camadas de textura para efeitos e detalhes de imagem. Entre os efeitos estão o mapeamento de relevo mapeado pelo ambiente, texturas detalhadas, reflexos de vidro, espelhos, simulação realista de água, mapas de luz, compressão de textura, superfícies reflexivas planares e visibilidade baseada em portal.
Em termos de desempenho, a Radeon pontua abaixo da GeForce2 na maioria dos benchmarks, mesmo com o HyperZ ativado. A diferença de desempenho foi especialmente perceptível em cores de 16 bits, onde tanto a GeForce2 GTS quanto a Voodoo 5 5500 estavam muito à frente. No entanto, a Radeon pode fechar a lacuna e ocasionalmente superar seu concorrente mais rápido, a GeForce2 GTS, em cores de 32 bits.
Além do novo hardware 3D, a Radeon também introduziu o desentrelaçamento de vídeo por pixel no mecanismo MPEG-2 compatível com HDTV da ATI.

### Pixel shaders do R100

As GPUs baseadas em R100 têm capacidade de sombreamento programável voltada para o futuro em seus pipelines; no entanto, os chips não são flexíveis o suficiente para suportar a especificação Microsoft Direct3D para Pixel Shader 1.1. Uma postagem no fórum de um engenheiro da ATI em 2001 esclareceu isso:
   Além disso, você deve entender que a frase "shader" é um termo gráfico incrivelmente ambíguo. Basicamente, nós, fabricantes de hardware, começamos a usar muito a palavra "shader" quando conseguimos fazer produtos de ponto por pixel (ou seja, a geração de chips RADEON / GF). Mesmo antes disso, "ATI_shader_op" era nossa extensão OpenGL de multitextura no Rage 128 (que foi substituída pela extensão EXT_texture_env_combine de vários fornecedores). Quake III tem arquivos ".shader" que usa para descrever como os materiais são iluminados. Estes são apenas alguns exemplos do uso da palavra shader na indústria de jogos (esqueça a indústria de produção de filmes que usa muitos tipos diferentes de shaders, incluindo aqueles usados ​​pelo RenderMan da Pixar).

## Implementação
### R100

As primeiras versões do Radeon (R100) foram o Radeon DDR, disponível na primavera de 2000 com configurações de 32 MB ou 64 MB; o cartão de 64 MB tinha uma velocidade de clock um pouco mais rápida e adicionou capacidade VIVO (video-in video-out). A velocidade do núcleo era de 183Mhz e a velocidade do clock da memória SDRAM DDR de 5,5 Ns era de 183 MHz DDR (366 MHz efetivos). O R100 introduziu o HyperZ, uma tecnologia de seleção inicial (talvez inspirada no Tile Rendering presente nos chips St Microelectronics PowerVR) que se tornou o caminho a seguir na evolução gráfica e na otimização de renderização geração a geração e pode ser considerada a primeira renderização não baseada em tile (e assim compatível com DX7) para usar uma otimização Z-Buffer. Essas placas foram produzidas até meados de 2001, quando foram essencialmente substituídas pela Radeon 7500 (RV200).
Uma Radeon SDR mais lenta e de curta duração (com 32 MB de memória SDRAM) foi adicionada em meados de 2000 para competir com a GeForce2 MX.
Também em 2000, um OEM-somente Radeon LE 32MB DDR chegou. Comparado com o Radeon DDR regular da ATI, o LE é produzido pela Athlon Micro a partir de GPUs Radeon que não atendiam às especificações e originalmente destinadas ao mercado OEM asiático. A placa funciona a uma taxa de clock inferior de 143 MHz para RAM e GPU, e sua funcionalidade Hyper Z foi desativada. Apesar dessas desvantagens, o Radeon LE era competitivo com outros contemporâneos, como o GeForce 2 MX e o Radeon SDR. Ao contrário de seus rivais, no entanto, o LE tem um potencial de desempenho considerável, pois é possível habilitar o HyperZ por meio de uma alteração no registro do sistema, além de ter um espaço considerável para overclock. Drivers posteriores não diferenciam a Radeon LE de outras placas Radeon R100 e o hardware HyperZ é habilitado por padrão, embora possa haver anomalias visuais em placas com hardware HyperZ com defeito.
Em 2001, uma Radeon R100 de curta duração com 64 MB SDR foi lançada como Radeon 7200. Depois que esta e todas as placas R100 Radeon mais antigas foram descontinuadas, a série R100 foi posteriormente conhecida como Radeon 7200, de acordo com o novo esquema de nomenclatura da ATI.

### RV100

Uma variante de orçamento do hardware R100 foi criada e chamada de Radeon VE, mais tarde conhecida como Radeon 7000 em 2001, quando a ATI renomeou seus produtos.
O RV100 tem apenas um pixel-pipeline, nenhum T&L de hardware, um barramento de memória de 64 bits e nenhum HyperZ. Mas adicionou suporte de monitor duplo HydraVision e integrou um segundo RAMDAC no núcleo (para Hydravision).
Do ponto de vista do desempenho 3D, a Radeon VE não se saiu bem contra a GeForce2 MX da mesma época, embora seu suporte a vários monitores fosse claramente superior ao da GeForce2 MX. O Matrox G450 tem o melhor suporte de exibição dupla entre as GPUs, mas o desempenho 3D mais lento.
O RV100 foi a base para a solução de notebook Mobility Radeon.

### RV200

A Radeon 7500 (RV200) é basicamente um die-shrink da R100 em um novo processo de fabricação de 150 nm. A densidade aumentada e vários ajustes na arquitetura permitiram que a GPU funcionasse em velocidades de clock mais altas. Também permitia que a placa operasse com clock assíncrono, enquanto o R100 original sempre funcionava em sincronia com a RAM. Foi a primeira GPU compatível com Direct3D 7 da ATI a incluir suporte para dois monitores (Hydravision).
A Radeon 7500 foi lançada no segundo semestre de 2001 junto com a Radeon 8500 (R200). Ele usava uma interface 4x de porta gráfica acelerada (AGP). Na época em que a Radeon 8500 e a 7500 foram anunciadas, a rival Nvidia lançou suas GeForce 3 Ti500 e Ti200, a 8500 e a Ti500 são concorrentes diretas, mas a 7500 e a Ti200 não.
A placa Radeon 7500 para desktop freqüentemente vinha com clock de 290 MHz de núcleo e 230 MHz de RAM. Ela competiu com a GeForce2 Ti e, posteriormente, com a GeForce4 MX440.

## Matriz de recursos do Radeon

A tabela a seguir mostra os recursos das GPUs da AMD / ATI (consulte também: Lista de unidades de processamento gráfico da AMD).
* ver
* discutir
| Nome da série de GPUs | Wonder | Mach | 3D Rage | Rage Pro | Rage 128 | R100 | R200 | R300 | R400 | R500 | R600 | RV670 | R700 | Evergreen | Northern Islands | Southern Islands | Sea Islands | Volcanic Islands | Arctic Islands/Polaris | Vega | Navi 1x | Navi 2x | Navi 3x |
| Lançamento | 1986 | 1991 | Abril 1996 | Março 1997 | Agosto 1998 | Abril 2000 | Agosto 2001 | Setembro 2002 | Maio 2004 | Outubro 2005 | Maio 2007 | Novembro 2007 | Junho 2008 | Setembro 2009 | Outubro 2010 | Janeiro 2012 | Setembro 2013 | Junho 2015 | Junho 2016, Abril 2017, Agosto 2019 | Junho 2017, Fevereiro 2019 | Julho 2019 | Novembro 2020 | Dezembro 2022 |
| Nome de marketing | Wonder | Mach | 3D Rage | Rage Pro | Rage 128 | Radeon 7000 | Radeon 8000 | Radeon 9000 | Radeon X700/X800 | Radeon X1000 | Radeon HD 2000 | Radeon HD 3000 | Radeon HD 4000 | Radeon HD 5000 | Radeon HD 6000 | Radeon HD 7000 | Radeon 200 | Radeon 300 | Radeon 400/500/600 | Radeon RX Vega, Radeon VII | Radeon RX 5000 | Radeon RX 6000 | Radeon RX 7000 |
| Suporte AMD | Terminou | Terminou | Terminou | Terminou | Terminou | Terminou | Terminou | Terminou | Terminou | Terminou | Terminou | Terminou | Terminou | Terminou | Terminou | Terminou | Terminou | Terminou | | | | | |
| Tipo | 2D | 2D | 3D | 3D | 3D | 3D | 3D | 3D | 3D | 3D | 3D | 3D | 3D | 3D | 3D | 3D | 3D | 3D | 3D | 3D | 3D | 3D | 3D |
| Conjunto de instruções | Não conhecido publicamente | Não conhecido publicamente | Não conhecido publicamente | Não conhecido publicamente | Não conhecido publicamente | Não conhecido publicamente | Não conhecido publicamente | Não conhecido publicamente | Não conhecido publicamente | Não conhecido publicamente | Conjunto de instruções TeraScale | Conjunto de instruções TeraScale | Conjunto de instruções TeraScale | Conjunto de instruções TeraScale | Conjunto de instruções TeraScale | Conjunto de instruções GCN | Conjunto de instruções GCN | Conjunto de instruções GCN | Conjunto de instruções GCN | Conjunto de instruções GCN | Conjunto de instruções RDNA | Conjunto de instruções RDNA | Conjunto de instruções RDNA |
| Microarquitetura | Não conhecido publicamente | Não conhecido publicamente | Não conhecido publicamente | Não conhecido publicamente | Não conhecido publicamente | Não conhecido publicamente | Não conhecido publicamente | Não conhecido publicamente | Não conhecido publicamente | Não conhecido publicamente | TeraScale 1 (VLIW) | TeraScale 1 (VLIW) | TeraScale 1 (VLIW) | TeraScale 2 (VLIW5) | TeraScale 2 (VLIW5) até 68xxTeraScale 3 (VLIW4) em 69xx | GCN 1st gen | GCN 2nd gen | GCN 3rd gen | GCN 4th gen | GCN 5th gen | RDNA | RDNA 2 | RDNA 3 |
| Tipo | Pipieline fixo | Pipieline fixo | Pipieline fixo | Pipieline fixo | Pipieline fixo | Pipieline fixo | Pipelies de pixel e vértice programáveis | Pipelies de pixel e vértice programáveis | Pipelies de pixel e vértice programáveis | Pipelies de pixel e vértice programáveis | Modelo de shader unificado | Modelo de shader unificado | Modelo de shader unificado | Modelo de shader unificado | Modelo de shader unificado | Modelo de shader unificado | Modelo de shader unificado | Modelo de shader unificado | Modelo de shader unificado | Modelo de shader unificado | Modelo de shader unificado | Modelo de shader unificado | Modelo de shader unificado |
| Direct3D | — | — | 5.0 | 6.0 | 6.0 | 7.0 | 8.1 | 9.0 11 (9_2) | 9.0b 11 (9_2) | 9.0c 11 (9_3) | 10.0 11 (10_0) | 10.1 11 (10_1) | 10.1 11 (10_1) | 11 (11_0) | 11 (11_0) | 11 (11_1) 12 (11_1) | 11 (12_0) 12 (12_0) | 11 (12_0) 12 (12_0) | 11 (12_0) 12 (12_0) | 11 (12_1) 12 (12_1) | 11 (12_1) 12 (12_1) | 11 (12_1) 12 (12_2) | 11 (12_1) 12 (12_2) |
| Modelo de shader | — | — | — | — | — | — | 1.4 | 2.0+ | 2.0b | 3.0 | 4.0 | 4.1 | 4.1 | 5.0 | 5.0 | 5.1 | 5.1 6.5 | 5.1 6.5 | 5.1 6.5 | 6.7 | 6.7 | 6.7 | 6.7 |
| OpenGL | — | — | — | 1.1 | 1.2 | 1.3 | 1.3 | 2.1 | 2.1 | 2.1 | 3.3 | 3.3 | 3.3 | 4.5 (no Linux: 4.5 (Mesa 3D 21.0)) | 4.5 (no Linux: 4.5 (Mesa 3D 21.0)) | 4.6 (no Linux: 4.6 (Mesa 3D 20.0)) | 4.6 (no Linux: 4.6 (Mesa 3D 20.0)) | 4.6 (no Linux: 4.6 (Mesa 3D 20.0)) | 4.6 (no Linux: 4.6 (Mesa 3D 20.0)) | 4.6 (no Linux: 4.6 (Mesa 3D 20.0)) | 4.6 (no Linux: 4.6 (Mesa 3D 20.0)) | 4.6 (no Linux: 4.6 (Mesa 3D 20.0)) | 4.6 (no Linux: 4.6 (Mesa 3D 20.0)) |
| Vulkan | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | 1.0 (Win 7+ ou Mesa 17+) | 1.2 (Adrenalin 20.1.2, Linux Mesa 3D 20.0) 1.3 (GCN 4 e superior (com Adrenalin 22.1.2, Mesa 22.0)) | 1.2 (Adrenalin 20.1.2, Linux Mesa 3D 20.0) 1.3 (GCN 4 e superior (com Adrenalin 22.1.2, Mesa 22.0)) | 1.2 (Adrenalin 20.1.2, Linux Mesa 3D 20.0) 1.3 (GCN 4 e superior (com Adrenalin 22.1.2, Mesa 22.0)) | 1.2 (Adrenalin 20.1.2, Linux Mesa 3D 20.0) 1.3 (GCN 4 e superior (com Adrenalin 22.1.2, Mesa 22.0)) | 1.2 (Adrenalin 20.1.2, Linux Mesa 3D 20.0) 1.3 (GCN 4 e superior (com Adrenalin 22.1.2, Mesa 22.0)) | 1.2 (Adrenalin 20.1.2, Linux Mesa 3D 20.0) 1.3 (GCN 4 e superior (com Adrenalin 22.1.2, Mesa 22.0)) | 1.3 |
| OpenCL | — | — | — | — | — | — | — | — | — | — | Close to Metal | Close to Metal | 1.1 (sem suporte Mesa 3D) | 1.2 (no Linux: 1.1 (sem suporte de imagem) com Mesa 3D) | 1.2 (no Linux: 1.1 (sem suporte de imagem) com Mesa 3D) | 1.2 (no Linux: 1.1 (sem suporte de imagem) com Mesa 3D) | 2.0 (Adrenalin driver no Win7+) (no Linux: 1.1 (sem suporte de imagem) com Mesa 3D, 2.0 com drivers AMD ou AMD ROCm) | 2.0 (Adrenalin driver no Win7+) (no Linux: 1.1 (sem suporte de imagem) com Mesa 3D, 2.0 com drivers AMD ou AMD ROCm) | 2.0 (Adrenalin driver no Win7+) (no Linux: 1.1 (sem suporte de imagem) com Mesa 3D, 2.0 com drivers AMD ou AMD ROCm) | 2.0 (Adrenalin driver no Win7+) (no Linux: 1.1 (sem suporte de imagem) com Mesa 3D, 2.0 com drivers AMD ou AMD ROCm) | 2.0 | 2.1 | ? |
| HSA / ROCm | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | | | | | | ? | ? | ? |
| Decodificação de vídeo ASIC | — | — | — | — | — | — | — | — | — | — | Avivo/UVD | UVD+ | UVD 2 | UVD 2.2 | UVD 3 | UVD 4 | UVD 4.2 | UVD 5.0 ou 6.0 | UVD 6.3 | UVD 7 | VCN 2.0 | VCN 3.0 | ? |
| Codificação de vídeo ASIC | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | VCE 1.0 | VCE 2.0 | VCE 3.0 or 3.1 | VCE 3.4 | VCE 4.0 | VCN 2.0 | VCN 3.0 | ? |
| Fluid Motion ASIC | Não | Não | Não | Não | Não | Não | Não | Não | Não | Não | Não | Não | Não | Não | Não | Não | | | | | Não | Não | ? |
| Economia de energia | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | PowerPlay | PowerPlay | PowerPlay | PowerPlay | PowerTune | PowerTune & ZeroCore Power | PowerTune & ZeroCore Power | PowerTune & ZeroCore Power | PowerTune & ZeroCore Power | PowerTune & ZeroCore Power | ? | ? | ? |
| TrueAudio | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | Através de DSP dedicado | Através de DSP dedicado | Através de shaders | Através de shaders | Através de shaders | ? | ? |
| FreeSync | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | 1 2 | 1 2 | 1 2 | 1 2 | 1 2 | 1 2 | ? |
| HDCP | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | 1.4 | 1.4 | 2.2 | 2.2 | 2.3 | 2.3 | 2.3 |
| PlayReady | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | 3.0 | Não | 3.0 | ? | ? |
| Exibições suportadas | | | | | | 1–2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2–6 | 2–6 | 2–6 | 2–6 | 2–6 | 2–6 | 2–6 | ? | ? | ? |
| Máx. resolução | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | 2–6 × 2560×1600 | 2–6 × 2560×1600 | 2–6 × 4096×2160 @ 30 Hz | 2–6 × 4096×2160 @ 30 Hz | 2–6 × 4096×2160 @ 30 Hz | 2–6 × 5120×2880 @ 60 Hz | 3 × 7680×4320 @ 60 Hz | 7680×4320 @ 60 Hz PowerColor | 7680×4320 @ 60 Hz PowerColor | ? |
| /drm/radeon | | | | | | | | | | | | | | | | | | — | — | — | — | — | ? |
| /drm/amdgpu | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | Não Experimental | Não Experimental | | | | | | ? |
* ↑ A série Radeon 100 possui sombreadores de pixel programáveis, mas não é totalmente compatível com DirectX 8 ou Pixel Shader 1.0. Veja o artigo sobre Pixel shaders do R100.
* ↑ Os cartões baseados em R300, R400 e R500 não são totalmente compatíveis com OpenGL 2+, pois o hardware não oferece suporte a todos os tipos de texturas não-potência de dois (NPOT).
* ↑ A conformidade com OpenGL 4+ requer suporte a shaders FP64 e estes são emulados em alguns chips TeraScale usando hardware de 32 bits.
* 1 2 3 O UVD e o VCE foram substituídos pelo Video Core Next (VCN) ASIC na APU Raven Ridge do Vega.
* ↑ Processamento de vídeo ASIC para técnica de interpolação de taxa de quadros de vídeo. No Windows funciona como um filtro DirectShow no seu player. No Linux, não há suporte por parte dos drivers e/ou da comunidade.
* 1 2 Para reproduzir conteúdo de vídeo protegido, também é necessário suporte a cartão, sistema operacional, driver e aplicativo. Um monitor HDCP compatível também é necessário para isso. O HDCP é obrigatório para a saída de certos formatos de áudio, colocando restrições adicionais na configuração de multimídia.
* ↑ Mais monitores podem ser suportados com conexões DisplayPort nativas ou dividindo a resolução máxima entre vários monitores com conversores ativos.
* 1 2 DRM (Direct Rendering Manager) é um componente do kernel do Linux. AMDgpu é o módulo do kernel do Linux. O suporte nesta tabela refere-se à versão mais atual.

## Chipsets concorrentes

* Nvidia GeForce 256 e GeForce2
* PowerVR Series 3
* 3dfx Voodoo 5
* S3 Savage 2000