Uma camada de tradução baseada em Vulkan para o Direct3D 10/11, que permite a execução de aplicativos 3D no Linux usando o vinho.
Para o status atual do projeto, consulte o Wiki do projeto.
Para instalar um pacote DXVK obtido na página de liberação em um determinado prefixo de vinho, execute os seguintes comandos do diretório DXVK:
export WINEPREFIX=/path/to/.wine-prefix
./setup_dxvk.sh install
Isso copiará as DLLs nos diretórios system32 e syswow64 do seu prefixo de vinho e configurará as substituições de DLL necessárias. Prefixos puros de 32 bits também são suportados.
O script de configuração opcionalmente leva os seguintes argumentos:
--symlink : Crie links simbólicos para os arquivos DLL em vez de copiá-los. Isso é especialmente útil para o desenvolvimento.--without-dxgi : Não instale a implementação do DXGI do DXVK e use o fornecido pelo vinho. Isso é necessário para que o VKD3D e o DXVK funcionem dentro do mesmo prefixo de vinho. Verifique se o seu aplicativo usa DXVK em vez de WINED3D, verificando a presença do arquivo de log d3d11.log no diretório do aplicativo ou ativando o HUD (veja as notas abaixo).
Para remover o DXVK de um prefixo, execute o seguinte comando:
export WINEPREFIX=/path/to/.wine-prefix
./setup_dxvk.sh uninstall
Dentro do diretório DXVK, execute:
./package-release.sh master /your/target/directory --no-package
Isso criará uma pasta dxvk-master IN /your/target/directory , que contém versões de 32 e 64 bits do DXVK, que podem ser configuradas da mesma maneira que as versões de liberação, conforme observado acima.
Para preservar os diretórios de construção para o desenvolvimento, passe --dev-build para o script. Esta opção implica --no-package . Depois de fazer alterações no código -fonte, você pode fazer o seguinte para reconstruir o DXVK:
# change to build.32 for 32-bit
cd /your/target/directory/build.64
ninja install
Uma compilação de Winelib pode ser criada adicionando o argumento --winelib .
# 64-bit build. For 32-bit builds, replace
# build-win64.txt with build-win32.txt
meson --cross-file build-win64.txt --buildtype release --prefix /your/dxvk/directory build.w64
cd build.w64
ninja install
As DLLs D3D10, D3D11 e DXGI estarão localizadas em /your/dxvk/directory/bin . A configuração deve ser feita manualmente neste caso.
Antes de relatar um problema, verifique a página do wiki no status atual do driver e certifique -se de executar uma versão de driver recente o suficiente para o seu hardware.
A manipulação das bibliotecas Direct3D em jogos multi-player pode ser considerada trapaça e pode ser proibida sua conta. Isso também pode se aplicar a jogos para um jogador com uma parte multiplayer incorporada ou dedicada. Use por sua conta e risco.
A variável de ambiente DXVK_HUD controla um HUD que pode exibir o quadros e alguns contadores de estatísticas. Ele aceita uma lista separada por vírgula das seguintes opções:
devinfo : exibe o nome da GPU e da versão do driver.fps : mostra a taxa de quadros atual.frametimes : Mostra um gráfico de tempo de quadro.submissions : mostra o número de buffers de comando enviados por quadro.drawcalls : mostra o número de chamadas de desenho e passes de renderização por quadro.pipelines : mostra o número total de gráficos e os pipelines de computação.memory : mostra a quantidade de memória do dispositivo alocada e usada.gpuload : Mostra carga de GPU estimada. Pode ser impreciso.version : mostra a versão dxvk.api : mostra o nível de recurso D3D usado pelo aplicativo. Não funciona corretamente para o D3D10 no momento.compiler : mostra a atividade do compilador de shader Além disso, DXVK_HUD=1 tem o mesmo efeito que DXVK_HUD=devinfo,fps e DXVK_HUD=full Ativa todos os elementos do HUD disponíveis.
Alguns aplicativos não fornecem um método para selecionar uma GPU diferente. Nesse caso, o DXVK pode ser forçado a usar um determinado dispositivo:
DXVK_FILTER_DEVICE_NAME="Device Name" seleciona dispositivos com um nome de dispositivo vulkan correspondente, que pode ser recuperado com ferramentas como vulkaninfo . As correspondências em substringas, portanto, "Vega" ou "AMD RADV Vega10" é suportado se o nome completo do dispositivo for "AMD RADV VEGA10 (LLVM 9.0.0)", por exemplo. Se a substring corresponder mais de um dispositivo, o primeiro dispositivo corresponde será usado.NOTA: Se o filtro do dispositivo estiver configurado incorretamente, ele poderá filtrar todos os dispositivos e aplicativos não poderão criar um dispositivo D3D.
DXVK Caches Pipeline State por padrão, para que os shaders possam ser recompilados antes do tempo nas execuções subsequentes de um aplicativo, mesmo que o próprio cache do shader do driver tenha sido invalidado nesse meio tempo. Esse cache é ativado por padrão e geralmente reduz a gagueira.
As seguintes variáveis de ambiente podem ser usadas para controlar o cache:
DXVK_STATE_CACHE=0 desativa o cache do estado.DXVK_STATE_CACHE_PATH=/some/directory especifica um diretório onde colocar os arquivos de cache. Padrões no diretório de trabalho atual do aplicativo.As seguintes variáveis de ambiente podem ser usadas para fins de depuração .
VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation permite camadas de depuração de vulkan. Altamente recomendado para solucionar problemas de renderização e falhas de motorista. Requer que o SDK vulkan seja instalado no sistema host.DXVK_LOG_LEVEL=none|error|warn|info|debug controla o log de mensagens.DXVK_LOG_PATH=/some/directory altera o caminho em que os arquivos de log são armazenados.DXVK_CONFIG_FILE=/xxx/dxvk.conf define o caminho para o arquivo de configuração. O DXVK requer suporte de encadeamento do seu ambiente de construção Mingw-W64. Se você está perdendo isso, pode ver "Erro: 'Mutex' não é um membro de 'std'". No Debian e Ubuntu, isso geralmente pode ser resolvido usando o POSIX Alternate, que suporta rosqueamento. Por exemplo, escolha o POSIX alternativo desses comandos (use i686 para 32 bits):
update-alternatives --config x86_64-w64-mingw32-gcc
update-alternatives --config x86_64-w64-mingw32-g++