Como dedicar mais RAM ao meu Nvidia GTX 1050 Ti
As outras respostas nesta faixa de "você não pode fazer isso" a "por que você? system ram é mais lento". A primeira é tecnicamente errada e será explicada abaixo, enquanto a segunda é tecnicamente verdadeira no sistema ram é invariavelmente mais lenta que a ram de vídeo, mas também é mais rápida (muito mais rápida) que a paginação repetida de texturas a partir do disco.
No melhor dos casos, você terá que pegar um método indireto para fazer com que seus jogos usem memória do sistema, além de memória de vídeo. Atualmente no Windows 10 (não conheço as versões anteriores do Windows já que não tenho nenhum sistema rodando), jogos que utilizam Direct3D 12 ou Vulkan podem fazer uso de memória de vídeo compartilhada em cima de memória de vídeo dedicada. Mas há uma maneira, com vários níveis de sucesso, que você pode cajular jogos mais antigos que utilizam, digamos, Direct3D 9 a 11, para usar memória de vídeo compartilhada, quando por padrão eles não só não utilizam, mas não podem.
A solução é DXVK. DXVK é um wrapper Vulkan para Direct3D9-11, que existe principalmente para permitir que usuários Linux rodem jogos Direct3D dentro do Wine, traduzindo as chamadas de função do Direct3D para o Vulkan's. Mas o engraçado é que as bibliotecas do Direct3D do DXVK funcionam muito bem também no Windows nativo, mas o sucesso real em pô-lo a funcionar vai variar de jogo para jogo devido a todos os vários hacks de desempenho específicos do fornecedor que os desenvolvedores têm utilizado ao longo dos anos para ekekear cada último aumento de frame.
Então o passo 1 seria baixar o último lançamento binário do DXVK, em 1.7.2 no momento desta escrita. Ignore o fato de que ele vem em um arquivo .tar.gz - novamente, o uso no Linux é esperado pelos desenvolvedores, mas você não deve ter nenhum problema para extraí-lo no Windows, independentemente disso. Agora, os arquivos serão organizados por um binário de 32-bit (x32) ou 64-bit (x64). Basta extrair os arquivos para algum lugar que você possa encontrá-los mais tarde, porque você vai ter que ser exigente sobre quais arquivos você usa, eles vão variar de jogo para jogo, nem todos os jogos vão funcionar com isso, e pode até ser interpretado como trapaça se você for estúpido/razy o suficiente para tentar isso com jogos multiplayer-only.
Passo 2, você terá que descobrir se o seu jogo alvo é 32-bit ou 64-bit, e então determinar qual versão do DirectX ele utiliza. Isso vai decidir em grande parte qual arquivo de DLL você vai cair no mesmo diretório do executável do jogo (regra geral: dxgi.dll + a dll correspondente para qualquer versão do DirectX que seu jogo usar; eu já tive vários jogos silenciosamente que não funcionam se eu não fizer isso). Isso não termina aí. Você precisa criar um arquivo de texto chamado dxvk.conf no mesmo diretório. Google dxvk.conf para ver o que seu conteúdo deve incluir, já que isto é parte da documentação online do dxvk. For the sake of providing an example, this is my dxvk.conf for Fallout 4:
- [Fallout4.exe]
- dxgi.deferSurfaceCreation = False
- dxgi.maxFrameLatency = 1
- dxgi.customDeviceId = 0x1f08
- dxgi.customVendorId = 0x10de
- dxgi.nvapiHack = True
- dxgi.maxDeviceMemory = 5980
- dxgi.maxSharedMemory = 16322
- dxgi.numBackBuffers = 0
- dxgi.syncInterval = -1
- dxgi.tearFree = Auto
- d3d11.constantBufferRangeCheck = False
- d3d11.dcSingleUseMode = True
- d3d11.maxFeatureLevel = 11_1
- d3d11.maxTessFactor = 64
- d3d11.relaxedBarriers = False
- d3d11.samplerAnisotropy = 16
- d3d11.invariantPosition = False
- d3d11.enableRtOutputNanFixup = False
- d3d11.zeroWorkgroupMemory = False
- dxvk.numCompilerThreads = 0
- dxvk.useRawSsbo = Auto
- dxvk.useEarlyDiscard = Auto
- dxvk.hud = compiler
Most of those settings will tend to work just fine for dx11 games, but four of them, customdeviceid, customvendorid, maxdevicememory, and maxsharedmemory, you’ll have to derive from running vulkaninfo-64.exe from the Vulkan SDK in order to tailor them to your specific hardware configuration. Para aqueles curiosos, o meu é um GeForce RTX 2060 6GB em um sistema com 32GB de ram.
Vai haver um pouco de tentativa-e-erro em fazer isso funcionar, e não é uma garantia de que vai funcionar. Eu consegui isso para funcionar no Fallout 4, Skyrim SE, Just Cause 3, Terminator: Resistência, Stellaris (no seu dx11 beta, nada menos), Assassin's Creed 4: Black Flag, Nelo, Nier: Automata (não surpreende desde que o dxvk foi originalmente desenvolvido para poder jogar este jogo no Linux), Supreme Commander, e Surviving Mars. Eu ainda não consegui que ele funcione em Subnautica, Encased, Deus Ex: Mankind Divided, ou Osiris: New Dawn.
EDIT: Prova de que isso funciona:
Monitor à direita está rodando Skyrim SE. O monitor da esquerda é a minha configuração usual de monitoramento do sistema. Os jogos DX11 não podem utilizar memória de vídeo compartilhada. DX12 e Vulkan podem. E sim, eu tenho muitos drives nesta plataforma.