GPUOpen é um conjunto de software middleware desenvolvido originalmente pelo Radeon Technologies Group da AMD que oferece efeitos visuais avançados para jogos de computador. Foi lançado em 2016. O GPUOpen serve como uma alternativa e um concorrente direto do Nvidia GameWorks. GPUOpen é semelhante ao GameWorks, pois abrange diversas tecnologias gráficas diferentes como seus principais componentes, que antes eram independentes e separados uns dos outros. Entretanto, o GPUOpen é um software parcialmente de código aberto, diferente do GameWorks, que é proprietário e fechado.

História O GPUOpen foi anunciado em 15 de dezembro de 2015, e lançado em 26 de janeiro de 2016.

Justificativa Nicolas Thibieroz, gerente sênior de engenharia de jogos mundial da AMD, argumenta que "pode ser difícil para os desenvolvedores alavancarem seus investimentos em P&D tanto em consoles quanto em PCs devido à disparidade entre as duas plataformas" e que "bibliotecas proprietárias ou cadeias de ferramentas com APIs de "caixa preta" impedem que os desenvolvedores acessem o código para fins de manutenção, portabilidade ou otimizações". Ele diz que as próximas arquiteturas, como a série RX 400 da AMD, "incluem muitos recursos não expostos hoje em APIs gráficas de PC".

A AMD projetou o GPUOpen para ser um middleware de código aberto concorrente lançado sob a licença MIT. As bibliotecas visam aumentar a portabilidade do software entre consoles de videogame, PCs e também computação de alto desempenho.

Componentes O GPUOpen unifica muitas das ferramentas e soluções anteriormente separadas da AMD em um único pacote, tornando-as também totalmente de código aberto sob a licença MIT. O GPUOpen também facilita para os desenvolvedores obterem acesso de baixo nível à GPU.

Além disso, a AMD quer conceder aos desenvolvedores interessados o tipo de "acesso direto" de baixo nível às suas GPUs baseadas em GCN, que supera as possibilidades do Direct3D 12 ou Vulkan. A AMD mencionou, por exemplo, um acesso de baixo nível aos Asynchronous Compute Engine (ACEs). O ACE implementa "Asynchronous Compute", mas não pode ser configurado livremente no Vulkan ou no Direct3D 12.

O GPUOpen é composto por vários componentes principais, ferramentas e SDKs.

Jogos e CGI Software para imagens geradas por computador (CGI) usado no desenvolvimento de jogos de computador e filmes.

Bibliotecas de efeitos visuais +Bibliotecas de efeitos visuais GPUOpen Nome API Fonte Descrição TressFX DirectX 12, Vulkan GitHub Esta biblioteca de efeitos visuais permite a criação de cabelos, pelos e grama realistas. GeometryFX DirectX 11 GitHub Esta biblioteca permite fácil acesso à filtragem de triângulos baseada em computação. DepthOfFieldFX DirectX 11 GitHub Esta biblioteca concede acesso a uma implementação de profundidade de campo otimizada para a arquitetura de GPU GCN por meio de um shader de computação. ShadowFX DirectX 11, DirectX 12 GitHub Esta biblioteca concede acesso a uma implementação para filtragem de sombra adiada que é otimizada para a arquitetura de GPU GCN. FidelityFX DirectX 11, DirectX 12, Vulkan GitHub FidelityFX é um conjunto de efeitos visuais e bibliotecas auxiliares de efeitos.

FidelityFX +Componentes FidelityFXNomeAlgoritmoFonteDescriçãoFidelityFX CASNitidez Adaptativa de Contraste (Contrast Adaptive Sharpening)GitHubEste algoritmo aprimora de forma adaptativa uma imagem ou cena, minimizando artefatos.FidelityFX CACAOOclusão de ambiente de computação adaptativa combinada (Combined Adaptive Compute Ambient Occlusion)GitHubEste algoritmo é uma implementação otimizada de oclusão de ambiente de amostragem adaptativa.FidelityFX LPMMapeador de preservação de luminância (Luminance Preserving Mapper)GitHubEste algoritmo é usado para mapear o tom da luminância de um pixel RGB em vez de mapear o tom da cor do pixel.FidelityFX SPDDownsampler de passagem única (Single Pass Downsampler)GitHubEste algoritmo, otimizado para a arquitetura de GPU RDNA, é usado para gerar 12 níveis de MIP para uma determinada textura.FidelityFX SSSRReflexões Estocásticas do Espaço da Tela (Stochastic Screen Space Reflections)GitHubEste algoritmo é usado para adicionar reflexos no espaço da tela a um quadro ou cena.FidelityFX VSSombreamento variável (Variable Shading)GitHubEste algoritmo é usado para gerar sombreamento de taxa variável baseado em imagem usando a luminância de amostras no quadro anterior.FidelityFX Parallel SortClassificação por Radix (Radix Sort)GitHubEste algoritmo fornece uma classificação de radix baseada em computação.FidelityFX DenoiserDenoiser de sombra e reflexão (Shadow & Reflection Denoiser)GitHubEste algoritmo fornece funcionalidade de redução de ruído para sombras ray-traced e reflexos traçados por raios ou no espaço da tela.FidelityFX Super Resolution 1Upsampler espacial (Spatial Upsampler)GitHubEste algoritmo é usado para ampliar uma imagem ou quadro para uma resolução mais alta usando apenas as informações espaciais fornecidas no quadro de entrada.FidelityFX Super Resolution 2Upscaler Temporal (Temporal Upscaler)GitHubEste algoritmo é usado para ampliar quadros para uma resolução mais alta usando as informações temporais fornecidas pelos quadros de entrada.

FidelityFX Super Resolution FidelityFX Super Resolution (FSR) é usado para aumentar a resolução de uma imagem de entrada para uma resolução mais alta. Existem várias versões do FSR com técnicas de upscaling e qualidade de imagem distintas:

O FSR 1 é um upscaler espacial baseado ou similar ao algoritmo Lanczos, exigindo uma imagem de baixa resolução com suavização de serrilhado. Ele também executa reconstrução de bordas e reversão de gradiente. Em seguida, é feita uma passagem de nitidez adaptativa de contraste (RCAS) para reintroduzir detalhes na imagem final. (veja a citação abaixo para mais informações) “O FSR é composto por duas passagens principais: Uma passagem de aumento de escala chamada EASU (Edge-Adaptive Spatial Upsampling) que também realiza reconstrução de bordas. Nessa passagem, o quadro de entrada é analisado e a parte principal do algoritmo detecta reversões de gradiente – essencialmente observando como os gradientes vizinhos diferem – de um conjunto de pixels de entrada. A intensidade das inversões de gradiente define os pesos a serem aplicados aos pixels reconstruídos na resolução de exibição. Uma passagem de nitidez chamada RCAS (Robust Contrast-Adaptive Sharpening) que extrai detalhes de pixels na imagem ampliada." O FSR 2 é um upscaler temporal baseado em um Lanczos modificado que requer uma imagem com resolução mais baixa e utiliza dados temporais (como vetores de movimento e histórico de quadros) e então aplica sua própria passagem de antialiasing que substitui a solução de antialiasing integrada do jogo. O FSR 3 adiciona geração de quadros e "antialiasing nativo". A geração de quadros aumenta a taxa de quadros percebida de um jogo. O "antialiasing nativo", semelhante ao DLAA da Nvidia, pode ser usado sem upscaling para melhorar o antialiasing; também pode ser combinado com geração de quadros e Anti-Lag+.

As predefinições padrão para FSR da AMD podem ser encontradas na tabela abaixo. Observe que essas predefinições não são a única maneira pela qual o algoritmo pode ser usado; elas são simplesmente predefinições para resoluções de entrada/saída. Certos títulos, como Dota 2, oferecem controles deslizantes de resolução para ajustar a porcentagem de escala ou dimensionar dinamicamente a resolução de renderização interna dependendo do limite de FPS. A AMD também criou uma ferramenta de interface de linha de comando que permite ao usuário aumentar a escala de qualquer imagem usando FSR1/EASU, além de outros métodos de upsampling, como Interpolação Bilinear. Ele também permite que o usuário execute vários estágios do pipeline FSR, como o RCAS, de forma independente.

+Histórico de lançamentosLançamentoData de lançamentoDestaques1.0 / 1.0.1Junho de 2021Lançamento do FidelityFX Super Resolution (FSR), código-fonte disponível em julho de 2021.1.0.2novembro de 2021Correção robusta de nitidez adaptativa de contraste (RCAS).1.1Julho de 2023Disponível como parte do FidelityFX SDK.2.0.1 / 2.0.1aMarço de 2022Lançamento do FidelityFX Super Resolution 2.0 (FSR 2), código-fonte disponível em junho de 2022.2.1.0Setembro de 2022Efeitos fantasmas reduzidos e qualidade de upscaling aprimorada. O Farming Simulator 2022 foi um dos primeiros a adotar o patch 1.7.1.2.1.1Setembro de 20222.1.2Outubro de 20222.2.0 / 2.2.0anovembro de 2022Melhorias na faixa de HDR, redução de artefatos fantasmas e cintilação. Código-fonte disponível em fevereiro de 2023.2.2.1Junho de 20232.2.2Julho de 2023Disponível como parte do FidelityFX SDK.3.0 / 3.0.3Setembro de 2023O FSR 3 adiciona geração de quadros combinada com FSR 2 e Anti-Lag+ e oferece suporte a GPUs da AMD, Nvidia e Intel. O FSR 3 também é compatível com a nona geração de consoles de videogame.Código-fonte disponível em dezembro de 2023 como parte do FidelityFX SDK.3.0.4Março de 20243.1.0Junho de 2024Redução de fantasmas, cintilação e cintilação, e estabilidade temporal aprimorada. Geração de quadros dissociada do upscaling. Arquivo-fonte facilmente atualizável para desenvolvedores. Suporte a Vulkan e Xbox Game Development Kit (GDK). Código-fonte disponível em julho de 2024 como parte do FidelityFX SDK 1.1.

+Predefinições FSR padrão Predefinição de qualidade Fator de escala Escala de renderização AA nativo (desde a versão 3.0) 1,00x 100% Qualidade Ultra (somente v1.0) 1,30x 77,0% Qualidade 1,50x 66,6% Equilibrado 1,70x 58,8% Desempenho 2,00x 50,0% Ultra Performance (desde a versão 2.0) 3,00x 33,3% O FSR 2 também pode ser modificado em quase qualquer jogo que suporte DLSS, trocando a DLL DLSS por uma DLL de camada de tradução que mapeia as chamadas de API DLSS para chamadas de API FSR 2.

Geração de quadros O FSR 3 adiciona geração de quadros (Frame Generation), uma técnica que cria novos quadros entre os existentes usando interpolação de movimento. Com lançamento previsto para setembro de 2023, o FSR 3 usa uma combinação de FSR 2 e análise de fluxo óptico, que é executado usando computação assíncrona (ao contrário do DLSS 3 da Nvidia, que usa hardware dedicado). Como o FSR 3 usa uma solução baseada em software, ele é compatível com GPUs da AMD, Nvidia e Intel, bem como com a nona geração de consoles de videogame. Para combater a latência adicional inerente ao processo de geração de quadros, a AMD possui um recurso de nível de driver chamado Anti-Lag, que só funciona em GPUs AMD.

AMD Fluid Motion Frames (AFMF) é uma tecnologia de geração de quadros em nível de driver que será lançada no primeiro trimestre de 2024 e é compatível com todos os jogos DirectX 11 e DirectX 12. No entanto, ela roda em GPUs RDNA 2 e RDNA 3. O AFMF usa análise de fluxo óptico, mas não vetores de movimento, portanto, ele só pode interpolar um novo quadro entre dois quadros renderizados tradicionalmente. AFMF atualmente não é compatível com VSYNC.

Ferramentas O diretório oficial da AMD lista: