---
title: Guia de Jogos no CachyOS
description: 'Abrange a instalação de pacotes essenciais, jogos na Steam com Proton, várias opções de versões do Proton, Lutris como central para todos os jogos e scripts de instalação para jogos populares.'
tableOfContents:
  minHeadingLevel: 1
  maxHeadingLevel: 4
ai_translated: true
---

import ImageComponent from '~/components/image-component.astro';
import MultipleImageComponent from '~/components/multiple-images-component.astro';
import { Tabs, TabItem, Steps, LinkButton, Icon } from '@astrojs/starlight/components';

Bem-vindo ao guia de jogos no CachyOS! Este irá orientá-lo através de tudo o que precisa de saber para configurar o seu sistema para jogos.

*Primeiro de tudo, compreenda que obter uma melhoria de dois dígitos no FPS nem sempre é possível. Às vezes, as otimizações podem levar a melhorias mínimas ou até nenhuma, dependendo do jogo e da configuração do hardware.*

*Não pode esperar que otimizações de software atuem como uma atualização de hardware gratuita.*

<ImageComponent imgsrc={import('~/assets/images/gaming-meme.jpeg')} />

## Pré-requisitos

:::caution
Antes de prosseguir, certifique-se de que os controladores da sua placa gráfica estão instalados e a funcionar corretamente, caso contrário poderá encontrar problemas ao jogar.
:::

### Pacotes Essenciais

Para tornar a configuração do CachyOS para jogos mais fácil, todos os pacotes de jogos necessários estão agrupados num único meta-pacote que inclui todas as dependências e bibliotecas necessárias para jogos em Linux, juntamente com um meta-pacote separado para ferramentas e lojas/launchers populares.

*Se verificar que faltam alguns pacotes, não hesite em informar a equipa do CachyOS.*

Siga os passos abaixo para começar com a configuração de jogos.
<Tabs>
  <TabItem label='CachyOS Hello'>
    - Abra o CachyOS Hello. Vá a **Apps/Tweaks** e clique em `Install Gaming packages`.
    <ImageComponent imgsrc={import('~/assets/images/cachyos_hello-gaming.png')} />
    *O CachyOS Hello instala tanto o `cachyos-gaming-meta` como o `cachyos-gaming-applications`.*
  </TabItem>
  <TabItem label='Meta Package'>
    O meta-pacote `cachyos-gaming-meta` inclui muitas bibliotecas relacionadas com jogos.
    ```sh
    sudo pacman -S cachyos-gaming-meta
    ```
  </TabItem>
  <TabItem label='Tools & Stores'>
    O meta-pacote `cachyos-gaming-applications` inclui o seguinte:
    - Tools
      - Gamescope, GOverlay, MangoHud
    - Launchers
      - Steam, Heroic Games Launcher, Lutris, Faugus Launcher
    ```sh
    sudo pacman -S cachyos-gaming-applications
    ```
  </TabItem>
</Tabs>

## Proton-CachyOS

O Proton-CachyOS é baseado no ramo `bleeding-edge` do Proton e aplica uma série de modificações sobre ele.
- **Patches do Wine-staging**
- **Wine Fullscreen FSR**
- **Inclui codecs de vídeo e áudio para cutscenes de jogos**
- **Suporte para umu-launcher incluindo UMU-Protonfixes**
- **Adiciona correções rápidas (hotfixes)/contornos antecipados para jogos**

:::note[O NTSync está ativado por padrão]
Pode desativá-lo definindo a variável de ambiente `PROTON_NO_NTSYNC=1`
:::

### Como Definir Corretamente Múltiplas Opções de Inicialização

As opções de inicialização na Steam são construídas utilizando o seguinte padrão.

```bash
[env variables] [wrappers] %command% [application arguments]
```

- **`[env variables]`**: Estas são opções no formato `VARIÁVEL=valor`
  ```bash title="Examples"
  PROTON_DXVK_D3D8=1
  # Ou
  DXVK_HUD="fps,memory,version,api"
  ```

- **`[wrappers]`**: Estas são aplicações e scripts que modificam como a aplicação real é executada. Argumentos para o wrapper geralmente vão após o executável do wrapper.
  ```bash title="Examples"
  mangohud --dlsym
  # Ou
  gamescope -W 1680 -H 1050 -w 1280 -h 720 -S fit -F fsr --mangoapp --
  ```

- **`%command%`**: Esta é a aplicação real. Isto deve ser especificado exatamente como está e a Steam irá substituí-lo pelo comando adequado quando a aplicação for executada.

- **`[application arguments]`**: Estes são vários argumentos para a aplicação real, e dependem da aplicação.
  ```bash title="Example"
  %command% -dx11
  ```

**Exemplo de uma opção de inicialização completa combinando todos os elementos:**
```bash
__GL_SHADER_DISK_CACHE_SKIP_CLEANUP=1 prime-run game-performance %command% -dx11
```

:::caution
Não adicione múltiplos `%command%` usando-os como separadores para múltiplas opções de inicialização.

Exemplo: `__GL_SHADER_DISK_CACHE_SKIP_CLEANUP=1 %command% game-performance %command% prime-run %command%`

Neste caso, tudo após o primeiro `%command%` vai ser ignorado porque está a ser tratado como argumentos do jogo, portanto apenas `__GL_SHADER_DISK_CACHE_SKIP_CLEANUP=1` é reconhecido como uma opção de inicialização.
:::

#### Variáveis de Ambiente
:::note
Versões personalizadas do Proton têm opções de configuração instáveis por padrão. Para as informações mais recentes sobre as respetivas opções de configuração, consulte a documentação delas.

Links para documentos do Proton-CachyOS:

<LinkButton icon="external" href="https://github.com/CachyOS/proton-cachyos/blob/cachyos_main/README.md#proton-cachyos-config-options">Readme</LinkButton>
<LinkButton icon="external" href="https://github.com/CachyOS/proton-cachyos/blob/cachyos_main/CHANGELOG.md">Changelog</LinkButton>

Links para documentos do Proton-EM:

<LinkButton icon="external" href="https://github.com/Etaash-mathamsetty/Proton/blob/em-11-hdr/README.md">Readme</LinkButton>
<LinkButton icon="external" href="https://github.com/Etaash-mathamsetty/Proton/blob/em-10-hdrtest/docs/EM-ADDITIONS.md">EM-ADDITIONS</LinkButton>
<LinkButton icon="external" href="https://github.com/Etaash-mathamsetty/Proton/blob/em-10-hdrtest/docs/FSR4.md">FSR4</LinkButton>
<LinkButton icon="external" href="https://github.com/Etaash-mathamsetty/Proton/blob/em-10-hdrtest/docs/CHANGES.md">Winewayland</LinkButton>
:::

### Configurar o Proton-CachyOS com Lutris e Heroic

Certifique-se de que tem o umu-launcher do CachyOS instalado no seu sistema. Instale-o com o seguinte comando.
```sh
sudo pacman -S cachyos/umu-launcher
```

<Tabs>
  <TabItem label='Lutris Global'>
    <Steps>
      1. No ecrã principal do Lutris, clique no ícone da engrenagem ao lado de Wine.
      2. Vá ao separador **Runner Options** e confirme que as suas definições correspondem ao seguinte:
          - **Wine version** = `proton-cachyos-slr` ou `proton-cachyos-native`
          - **Use System winetricks** = *Disabled*
          - **Graphics**
          - **Enable DXVK** = `Enabled`
            - Nota: Versões definidas pelo utilizador de **DXVK**, **VKD3D** e **DXVK-NVAPI** não são aplicadas ao usar `umu-launcher`.
      3. Navegue até ao separador **System Options**.
          - **Lutris**
          - **Disable Lutris Runtime** = `Enabled`
          - **Prefer system libraries** = `Enabled`
      4. Continue a descer até à secção **Game execution** e localize a tabela **Environment variables**.
      5. Adicione as seguintes variáveis de ambiente:
          - **Key**: `PROTON_VERB` *opcional*
          - **Value**: `waitforexitandrun`
            - *Isto permite que protonfixes funcionem com um GAMEID correspondente.*
      6. Clique em **Save** para aplicar as alterações.
    </Steps>
  </TabItem>
  <TabItem label='Lutris Per Game'>
    <Steps>
      1. Clique com o botão direito no jogo que deseja configurar, depois clique em **Configure**.
      2. Vá ao separador **Runner Options** e confirme que as suas definições correspondem ao seguinte:
          - **Wine version** = `proton-cachyos-slr` ou `proton-cachyos-native`
          - **Use System winetricks** = *Disabled*
          - **Graphics**
          - **Enable DXVK** = `Enabled`
            - Nota: Versões definidas pelo utilizador de **DXVK**, **VKD3D** e **DXVK-NVAPI** não são aplicadas ao usar `umu-launcher`.
      3. Navegue até ao separador **System Options**.
          - **Lutris**
          - **Disable Lutris Runtime** = `Enabled`
          - **Prefer system libraries** = `Enabled`
      4. Continue a descer até à secção **Game execution** e localize a tabela **Environment variables**.
      5. Adicione as seguintes variáveis de ambiente:
          - **Key**: `PROTON_VERB` *opcional*
          - **Value**: `waitforexitandrun`
            - *Isto permite que protonfixes funcionem com um GAMEID correspondente.*
      6. Clique em **Save** para aplicar as alterações.
    </Steps>
  </TabItem>
  <TabItem label='Heroic Games Launcher'>
    <Steps>
      1. Clique no botão `Configure` ao lado do botão `Play Now` no jogo que deseja executar.
      2. No separador `WINE`. Defina a Wine Version para `Proton - proton-cachyos-slr`.
    </Steps>
  </TabItem>
</Tabs>

### Suporte Anti-Cheat

:::caution[Importante]
Se encontrar problemas com jogos que usam **Easy Anti-Cheat** (EAC) ou **BattlEye** (BE), como recusa de login em servidores de jogo, pode usar a versão do [Proton-CachyOS construída usando Steam Linux Runtime](https://github.com/CachyOS/proton-cachyos/releases), também conhecida como **proton-cachyos-slr**.
:::

### Como Instalar proton-cachyos-slr

:::note[Este passo é apenas necessário se o pacote cachyos-gaming-meta não foi instalado. Se foi instalado, ignore esta parte.]
:::

<Tabs>

  <TabItem label='pacman'>
    ```sh title='Run the following command'
    sudo pacman -S proton-cachyos-slr
    ```
  </TabItem>

  <TabItem label='protonup'>

    <Steps>
      1. Abra um terminal e instale `protonup`.
          ```sh
          sudo pacman -S protonup-qt
          ```
      2. Abra **protonup-qt** e siga a captura de ecrã:
          <ImageComponent imgsrc={import('~/assets/images/steam-protonup.png')} />
          :::note
          Escolha a versão `x86-64_v3` se o seu CPU suportar **[AVX2](/pt/installation/installation_prepare#x86_64-microarchitecture-level-support)**.
          Caso contrário, descarregue a que termina em `x86-64`.
          :::
      3. Reinicie a Steam se a tivesse aberta.
    </Steps>
  </TabItem>

</Tabs>

<details>
  <summary>Instalação Manual (Avançado)</summary>

  <Steps>
    1. Descarregue a versão mais recente [aqui](https://github.com/CachyOS/proton-cachyos/releases) (desça até **Assets**).
        :::note
        Escolha descarregar a que termina em `x86-64`. Esta é a versão que a maioria dos utilizadores deve preferir.
        Escolha a que termina em `x86-64_v3` apenas se o seu CPU suportar **[AVX2](/pt/installation/installation_prepare#x86_64-microarchitecture-level-support)** e quiser experimentar.
        :::
    2. Descompacte o ficheiro e mova a pasta para `~/.steam/steam/compatibilitytools.d/`
    3. Reinicie a Steam se a tivesse aberta.
  </Steps>

</details>

## Wine-CachyOS

Este é o mesmo `Wine` que está no cerne do `Proton-CachyOS`, mas como um pacote independente. Pode ser usado no Lutris, Heroic, Bottles e outros. **Tenha em mente que não está destinado a ser usado para Steam.**

- **Todas as modificações do Wine incluídas com Proton-CachyOS**
- **Adiciona correções rápidas (hotfixes)/contornos antecipados para jogos**

:::note
Nos repositórios do CachyOS, o **Wine-CachyOS** é oferecido por dois pacotes diferentes. `wine-cachyos` instala-o como o Wine padrão do sistema e substitui `wine` ou `wine-staging`. `wine-cachyos-opt` instala-o num local diferente, o que permite que múltiplas versões do wine coexistam no sistema.
:::

:::caution
O uso pretendido principal do **Wine-CachyOS** é para **jogos**. Embora possa ser usado como Wine do sistema com aplicações de desktop, esteja ciente de que pode levar a comportamento inesperado e problemas devido às modificações focadas em jogos.

Se quiser usar aplicações de desktop, sugerimos usar `wine` ou `wine-staging` como o Wine do seu sistema e instalar `wine-cachyos-opt` para jogos.
:::

**Opções de configuração adicionais**

- `WINE_WMCLASS="[name]"`: Define o `WM_CLASS` de todas as janelas do Wine, permitindo que o gestor de janelas controle as janelas do Wine através de regras.
- `WINEUSERSANDBOX=1`: Desativa a criação de symlinks das pastas de utilizador do Wine (como Documentos e Imagens) para as pastas equivalentes no diretório `HOME` do utilizador.
- `WINE_NO_WM_DECORATION=1`: Desativa decorações de janela. Pode corrigir problemas com **ecrã inteiro sem bordas** e o rato a clicar através da janela.
- `WINE_PREFER_SDL_INPUT=1`: Contorno para problemas de deteção de controlador

### Como Usar wine-cachyos-opt

<Tabs>
  <TabItem label='Standalone'>
    Normalmente, executar `/opt/wine-cachyos/bin/wine` em vez de apenas `wine` deve ser suficiente para uma aplicação correr usando `wine-cachyos-opt`.

    Se for necessária uma configuração mais estrita, poderia parecer-se com isto:
    ```sh
    export PATH="/opt/wine-cachyos/bin/:$PATH"
    export WINEDLLPATH="/opt/wine-cachyos/lib/wine:/opt/wine-cachyos/lib32/wine:$WINEDLLPATH"
    export LD_LIBRARY_PATH="/opt/wine-cachyos/lib/:/opt/wine-cachyos/lib32/:$LD_LIBRARY_PATH"
    ```

    Se quiser usar `winetricks` com `wine-cachyos-opt`, pode invocá-lo assim:
    ```sh
    WINE=/opt/wine-cachyos/bin/wine WINEPREFIX=[your prefix] winetricks [verb]
    ```
  </TabItem>
  <TabItem label='Lutris'>
    :::note
    A segunda imagem também se aplica para configurar por jogo.
    :::
    <MultipleImageComponent
      images={[import('~/assets/images/lutris-guide-1.png'), import('~/assets/images/lutris-guide-2.png')]}
    />
  </TabItem>
  <TabItem label='Heroic Games Launcher'>
    <MultipleImageComponent
      images={[import('~/assets/images/heroic-wine.png'), import('~/assets/images/heroic-wine-2.png'), import('~/assets/images/heroic-wine-3.png')]}
    />
  </TabItem>
</Tabs>

## FAQ e Dicas da Steam

:::note
Utilizadores de portáteis com GPUs Nvidia dedicadas devem consultar o [guia de Dual GPU Laptops](/pt/configuration/dual_gpu/).
:::

:::tip
O CachyOS fornece várias versões do Proton que são construídas e mantidas para melhorias de desempenho adicionais:
- `proton-cachyos` (incluído no pacote `cachyos-gaming-meta`) é desenvolvido com alterações de QoL adicionais, patches cherry-picked, etc.
:::

:::tip
Para verificar se um jogo é compatível com Linux, ou como corre em Linux, visite
**[ProtonDB](https://www.protondb.com/)** ,
**[Are We Anti-Cheat Yet?](https://areweanticheatyet.com/)**
ou **[Gaming On Linux Anti Cheat Section](https://www.gamingonlinux.com/anticheat/)**
:::

### Como definir versões personalizadas do Proton na Steam

:::caution[É FORTEMENTE RECOMENDADO manter o Proton da Valve como padrão global.]
:::

- Para definir um Proton personalizado para um jogo específico, navegue à Biblioteca, clique com o botão direito no jogo
vá a **Properties** > **Compatibility**

marque a caixa `Force the use of a specific Steam Play compatibility tool`
e selecione a versão do proton desejada.

- Para definir o Proton da Valve como padrão global, navegue a **Settings** > **Compatibility** > **Default Compatibility tool**
e defina a versão estável mais recente do proton da Valve ou Proton Experimental.

### Qual Versão do Proton Devo Usar na Steam?

:::tip
Para novos utilizadores, sugerimos usar o Proton da Valve ou Proton Experimental.
:::

Versões oficiais do Proton:

**Proton Experimental:** é a versão bleeding edge da **Valve**. Use esta se o jogo que quer jogar for relativamente novo, não funcionar bem com a versão estável atual do Proton, ou se as pessoas o recomendarem no **[ProtonDB](https://www.protondb.com/)**.

**Proton 11.0:** é a versão estável da **Valve**. Use esta se o jogo que quer jogar for conhecido por funcionar bem com ela.

**Proton 10.0 ou inferior:** são as versões estáveis da **Valve**. *Use esta se o jogo que quer jogar apenas funcionar com uma versão anterior do Proton.*

:::tip
Para utilizadores mais experientes, que querem experimentar funcionalidades extras, usar Proton fora da Steam, ou precisam de correções não presentes no Proton da Valve, existem mais do que algumas variantes personalizadas do Proton que podem usar. Tenha em mente que elas não são suportadas pela Valve, são esforços da comunidade e são experimentais por natureza.
:::

Forks do Proton de terceiros:

**Proton-CachyOS:**
Construído e mantido por [CachyOS](https://github.com/CachyOS/proton-cachyos), contém funcionalidades extras de qualidade de vida, correções e alterações experimentais.

Pode encontrar duas variantes nos repositórios do CachyOS: [`proton-cachyos-native`](https://packages.cachyos.org/package/cachyos/x86_64/proton-cachyos-native) e [`proton-cachyos-slr`](https://packages.cachyos.org/package/cachyos/x86_64/proton-cachyos-slr).

Sugerimos usar o pacote `proton-cachyos-slr` em vez do `proton-cachyos-native`.

**Proton-EM:**
Uma construção personalizada orientada para desenvolvimento feita por [Etaash-mathamsetty](https://github.com/Etaash-mathamsetty/Proton). É uma opção muito boa se quiser usar **winewayland** e **FSR4** sem nenhuma das extras que o Proton-CachyOS oferece. Também é a fonte de várias melhorias que o Proton-CachyOS inclui.

*Se está interessado no mais recente e melhor em desenvolvimento **winewayland**, isto é para si.*

**dwproton:**
Uma construção personalizada feita por [Dawn Winery](https://dawn.wine/dawn-winery/dwproton), é um fork do Proton-CachyOS com **correções e patches extras para certos jogos anime**.

Se encontrar problemas com tais jogos com outras variantes do Proton, **dwproton** é a sua melhor opção.

**Proton-GE**:
Uma construção personalizada feita por [GloriousEggroll](https://github.com/GloriousEggroll/proton-ge-custom). Inclui várias correções, e pode ser útil ter em certas situações.

### Corrigir vídeos H264 que não reproduzem ou exibem barras de cor em jogos com o Proton da Valve
:::caution
Isto é opcional. Use apenas se estiver a ter o problema.
:::
Inicie a Steam com o seguinte comando. Aguarde que carregue, depois saia da Steam e inicie-a normalmente.

```sh
 steam steam://unlockh264/
```

### Corrigir Stuttering Causado pela Funcionalidade de Gravação de Jogos da Steam

:::caution
Adicionar esta variável de ambiente faz com que o **Overlay da Steam** deixe de funcionar.
:::

Adicione a seguinte opção de inicialização ao seu jogo.

```sh
LD_PRELOAD="" %command%
```

### Capturar e Partilhar Logs do Proton

:::note
Ao partilhar logs com o CachyOS, por favor carregue-os para o **[paste-cachyos](https://paste.cachyos.org/)** em vez de publicar diretamente.

Pode simplesmente arrastar e largar o ficheiro de log para o site, depois partilhar o link gerado.
:::

Para ativar o logging do Proton para um jogo:

<Steps>
  1. Clique com o botão direito no seu jogo na Steam e selecione **Properties**.
  2. Em **Launch Options**, defina a variável de ambiente `PROTON_LOG`:
      ```sh
      PROTON_LOG=1 %command%
      ```
      Isto criará um ficheiro de log no seu diretório pessoal chamado `steam-[AppID].log` (por exemplo, Counter Strike 2 usa AppID **730**, pelo que o ficheiro seria `steam-730.log`).
</Steps>

<details>
  <summary>Diretório de Log Personalizado</summary>

  Para definir um diretório de log personalizado, use `PROTON_LOG_DIR`:

  ```sh title='Example'
  PROTON_LOG=1 PROTON_LOG_DIR=/home/cachyos/steam-logs %command%
  ```
</details>

### Pré-cache de Shaders com Proton-CachyOS, -GE, e -EM

:::note
É aconselhado desativar a funcionalidade de pré-cache de shaders da Steam ao utilizar Proton-CachyOS, Proton-GE, ou Proton-EM. Eles já contêm todos os codecs necessários para reproduzir vídeos dentro dos jogos, e hoje em dia, um combo GPU-CPU relativamente moderno deve ser mais do que capaz de lidar com compilar shaders em jogo.

Se tiver tempo sobrando, então pode ignorar esta dica e deixar a Steam pré-compilar alguns shaders para o seu jogo.

**Tenha em mente que nem tudo é cacheado durante este processo, e atualizações à versão do Proton usada para compilar os shaders podem exigir recompilação completa de shaders.**
:::

#### Para desativar esta funcionalidade na Steam

Na Steam, clique em `Steam`->`Settings`, vá a `Downloads`, e desmarque estas definições:
- **Allow background processing of Vulkan shaders**
- **Enable Shader Pre-caching**

:::note
É altamente recomendado [aumentar o tamanho máximo do cache de shaders](#aumentar-tamanho-máximo-do-cache-de-shaders) após desativar o pré-cache de shaders na Steam.
:::

### Reutilizar uma Partição de Jogos Windows NTFS

:::caution
Evite usar Proton em unidades NTFS. A Valve não suporta esta configuração, e pode causar jogos a comportarem-se de forma imprevisível.

Se estiver disposto a prosseguir. Siga o seu **[guia não oficial](https://github.com/ValveSoftware/Proton/wiki/Using-a-NTFS-disk-with-Linux-and-Windows)**.
:::

### Iniciar sessão no gamescope

A Sessão Gamescope inicia o seu desktop dentro do gamescope, fornecendo um ambiente de jogo em ecrã inteiro dedicado com manuseamento de ecrã melhorado, gestão de entrada e otimizações de desempenho.

É ideal para sistemas focados em jogos ou dispositivos portáteis, oferecendo uma experiência semelhante a uma consola enquanto ainda permite acesso à sua sessão de desktop quando necessário.

Para o usar instale o pacote `gamescope-session-cachyos` (`pacman -S gamescope-session-cachyos`) e defina a sessão padrão para gamescope.

## [Lutris](https://lutris.net/)

O Lutris é um launcher de jogos no CachyOS. Com o Lutris, pode gerir facilmente os seus runners de jogos, incluindo Wine, Proton, e emuladores.

- Inicie jogos através do Lutris simplesmente clicando no botão **Play**.
- Adicione qualquer jogo que quiser clicando no **+** no canto superior esquerdo.
- Configure uma loja nas Sources no painel esquerdo e conecte a sua conta. Irá então proceder a instalar a dita loja, e então poderá executar jogos de dentro da loja, tal como faz no Windows.
- E muito mais!

*Lojas de jogos suportadas no Lutris:*

- [EA App](https://lutris.net/games/ea-app/)
- [Epic Games Store](https://lutris.net/games/epic-games-store/)
- [GOG Galaxy](https://lutris.net/games/gog-galaxy/)
- [Steam](https://lutris.net/games/steam/)
- [Ubisoft Connect](https://lutris.net/games/ubisoft-connect/)

### Como Definir Corretamente Múltiplas Opções de Inicialização e Variáveis de Ambiente no Lutris

- Opções de inicialização como `-dx11` ou `-fullscreen` devem ser adicionadas no campo **Arguments** sob o separador **Game options** usando um espaço como separador.
- Wrappers de comando, por exemplo `mangohud --dlsym` ou `game-performance`, devem ser adicionados no campo **Command prefix** sob o separador **System options** usando um espaço como separador.
- Variáveis de ambiente como `DXVK_HDR=1` devem ser adicionadas na tabela **Environment variables** sob o separador **System options** usando o botão `+` para adicionar uma nova entrada.
:::note
Não inclua `=` no campo Key. Este deve conter apenas o nome da variável.
:::

### Como Gerar Corretamente Logs no Lutris
- Defina Output debugging info para `Inherit from environment`.
- Em Environment variables adicione `PROTON_LOG` com o valor `1`.

## Desempenho e Dicas Diversas

### Não Combine gamemode e ananicy-cpp

Devido ao `gamemode` e ao `ananicy-cpp` ambos tentarem modificar a niceness de um processo ao mesmo tempo, pode levar a conflitos e comportamento inesperado. Se quiser usar gamemode, é recomendado desativar ou parar o ananicy-cpp primeiro.

Para parar o ananicy-cpp, execute o seguinte comando:

```sh
systemctl stop ananicy-cpp
```

### Alternância de Perfil de Energia On-Demand

:::note
Este comportamento difere ligeiramente com `intel_pstate`. Em Intel, o governor mantém-se em powersave, mas os valores EPP/EPB são ajustados para performance.
:::

:::caution[game-performance pode não fornecer qualquer benefício em CPUs antigos.]
:::

O CachyOS inclui um script wrapper [game-performance](https://github.com/CachyOS/CachyOS-Settings/blob/master/usr/bin/game-performance)
que usa `power-profiles-daemon` para alternar temporariamente o perfil de energia para `performance`.
O perfil aumenta os níveis de energia do sistema e define o CPU governor para `performance`, e também altera qualquer scheduler scx ativo para o seu perfil de jogo (se disponível).

Quando usado para iniciar um jogo, o sistema permanece em **modo de desempenho** até o jogo sair, momento em que o perfil anterior é restaurado.

O [Feral's GameMode](https://github.com/FeralInteractive/gamemode)
oferece funcionalidade semelhante.

### Como Adicionar game-performance à Steam, Lutris, e Heroic Games Launcher

<Tabs>

  <TabItem label='Steam'>

    <Steps>
        1. Abra a sua `Steam Library`.
        2. Clique com o botão direito no título do jogo e selecione `Properties`.
        3. No separador `General` encontrará a secção `Launch Options`.
        4. Adicione a seguinte opção de inicialização:
            ```sh
            game-performance %command%
            ```
    </Steps>

  </TabItem>

  <TabItem label='Heroic Games Launcher'>

    <Steps>
        1. No painel esquerdo abra `Settings`.
        2. Vá a `Game defaults` depois clique em `Advanced`.
        3. Na secção `wrapper` command. Adicione a seguinte linha sem qualquer argumento:
            ```sh
            game-performance
            ```
        4. Clique no sinal `+` para guardar alterações.
    </Steps>

  </TabItem>

  <TabItem label='Lutris'>

    <Steps>
      1. No canto superior direito abra o `hamburger menu`.
      2. Vá a `Preferences/Global options`.
      3. Ative `Advanced Mode` no canto superior direito.
      4. Desça até `Command prefix` e adicione a seguinte linha:
          ```sh
          game-performance
          ```
      5. Guarde alterações.
    </Steps>

  </TabItem>

</Tabs>

### Aumentar Tamanho Máximo do Cache de Shaders

Shaders de jogos são compilados automaticamente enquanto joga, o que pode causar tempos de carregamento longos e stuttering na primeira vez que os encontra. Estes shaders são armazenados no seu sistema para serem reutilizados quando necessário.

No entanto, existe um limite máximo para o tamanho do ficheiro do cache de shaders, fazendo com que shaders antigos sejam esquecidos ao exceder o tamanho padrão. Isto pode ser um problema já que jogos grandes podem ter shaders com mais de 1GB, fazendo-os recompilar shaders a cada lançamento.

Para evitar tempos de carregamento longos e stuttering, podemos aumentar o tamanho global do cache de shaders:

<Steps>

  1. Abra um terminal.
  2. Crie um diretório `environment.d` na sua pasta de configuração se não existir:
      ```sh
      mkdir -p ~/.config/environment.d
      ```
  3. Crie um novo ficheiro de configuração:
      ```sh
      touch ~/.config/environment.d/gaming.conf
      ```
  4. Abra o ficheiro com **Micro** (um editor de texto).
      ```sh
      micro ~/.config/environment.d/gaming.conf
      ```
      E cole o seguinte dependendo do seu fornecedor de GPU:
      <details>
        <summary>AMD</summary>
        ```sh
        # Increase AMD's shader cache size to 12GB
        MESA_SHADER_CACHE_MAX_SIZE=12G
        ```
      </details>
      <details>
        <summary>NVIDIA</summary>
        ```sh
        # Increase Nvidia's shader cache size to 12GB
        __GL_SHADER_DISK_CACHE_SIZE=12000000000
        ```
      </details>
  5. Guarde o ficheiro pressionando `CTRL+S` e `CTRL+Q` para sair do Micro. Reinicie o seu sistema.

</Steps>

Após reiniciar, o tamanho máximo do cache de shaders deve ser permanentemente aumentado. Obrigado ao [shader booster do psygreg](https://github.com/psygreg/shader-booster/) por ajudar este guia.

### Forçar o Preset de DLSS Mais Recente

#### Como adicionar dlss-swapper à Steam, Lutris, e Heroic Games Launcher

<Tabs>

  <TabItem label='Steam'>

    <Steps>
      1. Abra a sua `Steam Library`.
      2. Clique com o botão direito no título do jogo e selecione `Properties`.
      3. No separador `General` encontrará a secção `Launch Options`.
      4. Adicione a seguinte Launch Option:
          ```sh
          dlss-swapper %command%
          ```
    </Steps>

  </TabItem>

  <TabItem label='Heroic Games Launcher'>

    <Steps>
      1. No painel esquerdo abra `Settings`.
      2. Vá a `Game defaults` depois clique em `Advanced`.
      3. Na secção `wrapper` command. Adicione a seguinte linha sem qualquer argumento:
          ```sh
          dlss-swapper
          ```
      4. Clique no sinal `+` para guardar alterações.
    </Steps>

  </TabItem>

  <TabItem label='Lutris'>

    <Steps>
      1. No canto superior direito abra o `hamburger menu`.
      2. Vá a `Preferences/Global options`.
      3. Ative `Advanced Mode` no canto superior direito.
      4. Desça até `Command prefix` e adicione a seguinte linha:
          ```sh
          dlss-swapper
          ```
      5. Guarde alterações.
    </Steps>

  </TabItem>

</Tabs>

<details>
  <summary>Método de Substituição Manual de DLL</summary>

  Se `dlss-swapper` não estiver a funcionar ou estiver a causar problemas, tente atualizar a implementação DLSS do jogo manualmente substituindo `nvngx_dlss.dll` por uma versão atualizada e usando o script wrapper `dlss-swapper-dll` em vez disso.
</details>

### Suporte a Ray Tracing
A Arch Wiki já fornece instruções abrangentes sobre como ativar [ray tracing](https://wiki.archlinux.org/title/Hardware_raytracing) para várias plataformas de hardware.
- [Ray tracing na Nvidia](https://wiki.archlinux.org/title/Hardware_raytracing#NVIDIA)
- [Ray tracing na AMD](https://wiki.archlinux.org/title/Hardware_raytracing#AMD)
- [Ray tracing na Intel](https://wiki.archlinux.org/title/Hardware_raytracing#Intel)

### Queda de Desempenho na Nvidia em Jogos DirectX12

Alguns utilizadores relatam que o problema está relacionado com como os controladores Linux da Nvidia lidam com o scheduling do GPU — ao contrário do Windows, onde o scheduling adequado é imposto. Ainda não houve nenhum comunicado oficial da Nvidia sobre este assunto. Atualmente não existe contorno conhecido para este problema. Supostamente a Nvidia está a trabalhar numa correção, mas não está claro quando será lançada.

**Isto não tem nada a ver com o CachyOS.**

Em alguns títulos, a queda de desempenho é menos notável do que em outros. Consulte este [vídeo de comparação de benchmark](https://www.youtube.com/watch?v=SU2mFqCOh5A) para referência.

Siga o [fórum da Nvidia](https://forums.developer.nvidia.com/t/directx12-performance-is-terrible-on-linux/303207/488) para saber mais sobre este problema.
